Difference between revisions of "Visual Editor Install"
| m (Tag: Visual edit) | m (Tag: Visual edit) | ||
| (7 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
| # Next we need to install Parsiod <ref>https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372</ref>      | # Next we need to install Parsiod <ref>https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372</ref>      | ||
| ## <code>cd /opt</code>     | ## <code>cd /opt</code>     | ||
| + | ## <code>yum install -y policycoreutils-python</code>    | ||
| ## <code>mkdir src</code>    | ## <code>mkdir src</code>    | ||
| ## <code>cd src</code>       | ## <code>cd src</code>       | ||
| − | ## <code>clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid</code>    | + | ## <code>git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid</code>    | 
| − | ## <code>cp -rv  | + | ## <code>cp -rv parsoid /opt/</code>     | 
| ## <code>cd /opt/parsoid/</code>      | ## <code>cd /opt/parsoid/</code>      | ||
| ## <code>npm install</code>      | ## <code>npm install</code>      | ||
| Line 41: | Line 42: | ||
| <code>groupadd parsoid</code> | <code>groupadd parsoid</code> | ||
| − | <code>useradd - | + | <code>useradd -g parsoid parsoid</code> | 
| <code>cd /opt/</code> | <code>cd /opt/</code> | ||
| Line 49: | Line 50: | ||
| <code>chmod -Rv u+rw,g+r,o+r parsoid</code> | <code>chmod -Rv u+rw,g+r,o+r parsoid</code> | ||
| − | <code>chcon -Rv --type=system_u:object_r:usr_t:s0 parsoid</code> | + | <code>chcon -Rv --type=system_u:object_r:usr_t:s0 parsoid</code> **ForSELinux Only - We can ignore | 
| Port 8000 should already be open on the hosted server, so we'll continue. | Port 8000 should already be open on the hosted server, so we'll continue. | ||
| Line 60: | Line 61: | ||
| paste the following: | paste the following: | ||
| − | + |     #!/bin/sh | |
| − | + |     # | |
| − | + |     # chkconfig: 35 99 99 | |
| − | + |     # description: Node.js /opt/services/parsoid/api/server.js | |
| − | + |     # | |
| − | + |     . /etc/rc.d/init.d/functions | |
| − | + |     USER="parsoid" | |
| − | + |     DAEMON="/usr/bin/node" | |
| − | + |     ROOT_DIR="/opt/services/parsoid/api" | |
| − | + |     SERVER="$ROOT_DIR/server.js" | |
| − | + |     LOG_FILE="$ROOT_DIR/server.js.log" | |
| − | + |     LOCK_FILE="/var/lock/subsys/node-server" | |
| − | + |     do_start() | |
| − | + |     { | |
| − | + |     if [ ! -f "$LOCK_FILE" ] ; then | |
| − | + |     echo -n $"Starting $SERVER: " | |
| − | + |     runuser -l "$USER" -c "$DAEMON $SERVER >> $LOG_FILE &" && echo_success || echo_failure | |
| − | + |     RETVAL=$? | |
| − | + |     echo | |
| − | + |     [ $RETVAL -eq 0 ] && touch $LOCK_FILE | |
| − | + |     else | |
| − | + |     echo "$SERVER is locked." | |
| − | + |     RETVAL=1 | |
| − | + |     fi | |
| − | + |        } | |
| − | + |         do_stop() | |
| − | + |        { | |
| − | + |     echo -n $"Stopping $SERVER: " | |
| − | + |     pid=`ps -aefw | grep "$DAEMON $SERVER" | grep -v " grep " | awk '{print $2}'` | |
| − | + |     kill -9 $pid > /dev/null 2>&1 && echo_success || echo_failure | |
| − | + |         RETVAL=$? | |
| − | + |         echo | |
| − | + |         [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE | |
| − | + |     } | |
| − | + |     case "$1" in | |
| − | + |     start) | |
| − | + |       do_start | |
| − | + |     ;; | |
| − | + |     stop) | |
| − | + |       do_stop | |
| − | + |     ;; | |
| − | + |     restart) | |
| − | + |       do_stop | |
| − | + |       do_start | |
| − | + |     ;; | |
| − | + |     *) | |
| − | + |     echo "Usage: $0 {start|stop|restart}" | |
| − | + |     RETVAL=1 | |
| − | + |         esac | |
| − | + |     exit $RETVAL | |
| + | |||
| CTRL+X, Y, Enter | CTRL+X, Y, Enter | ||
| Line 120: | Line 122: | ||
| Navigate to http://wiki.ssdcougars.tv:8000 and you should see a webpage loaded with links about Parsoid. | Navigate to http://wiki.ssdcougars.tv:8000 and you should see a webpage loaded with links about Parsoid. | ||
| − | 4. Edit MediaWiki <code>LocalSettings. | + | NOTE: At the time of this writing, there was a page displayed about parsoid. Some browsers will show "SERVER TOOK TOO LONG TO RESPOND" | 
| + | |||
| + | Use SSH and run <code>nmap -sT -O localhost</code> | ||
| + | |||
| + | Verify you see: <code>8000/tcp open http-alt</code> | ||
| + | |||
| + | 4. Edit MediaWiki <code>LocalSettings.php</code> | ||
|   <nowiki>#</nowiki> Add more configuration options below. |   <nowiki>#</nowiki> Add more configuration options below. | ||
Latest revision as of 17:13, 2 March 2017
Mediawiki's Visual Editor is not included with Mediawiki. It is an external add-on that requires a LOT of work to get working.
After you have MediaWiki installed (to a users' account NOT /var/www/mediawiki and working, do the following
-  Get the Package [1]
-  cd extensions
-  git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
-  cd VisualEditor
-  git submodule update --init
 
-  
-  Run This as Root from within the base wiki directory [2] curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
-  Next we need to install Parsiod [3]    
-  cd /opt
-  yum install -y policycoreutils-python
-  mkdir src
-  cd src
-  git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid
-  cp -rv parsoid /opt/
-  cd /opt/parsoid/
-  npm install
-  nano config.example.yaml
- FIND and EDIT below:
 
-  
mwApis: # This is the only required parameter, # the URL of you MediaWiki API endpoint. uri: 'http://wiki.ssdcougars.tv/api.php' # The "domain" is used for communication with Visual Editor # and RESTBase. It defaults to the hostname portion of # the `uri` property below, but you can manually set it # to an arbitrary string. domain: 'wiki.ssdcougars.tv' # optional # To specify a proxy (or proxy headers) specific to this prefix # (which overrides defaultAPIProxyURI). Alternatively, set `proxy` # to `null` to override and force no proxying when a default proxy # has been set. #proxy: # uri: 'http://my.proxy:1234/' # headers: # optional # 'X-Forwarded-Proto': 'https'
CTL+X, Y, and rename the file to config.yaml
Next we need to add a parsoid user and group.
groupadd parsoid
useradd -g parsoid parsoid
cd /opt/
chown -Rv parsoid:parsoid parsoid
chmod -Rv u+rw,g+r,o+r parsoid
chcon -Rv --type=system_u:object_r:usr_t:s0 parsoid **ForSELinux Only - We can ignore
Port 8000 should already be open on the hosted server, so we'll continue.
Create init.d service[4]
cd /etc/init.d/
nano parsoid
paste the following:
   #!/bin/sh
   #
   # chkconfig: 35 99 99
   # description: Node.js /opt/services/parsoid/api/server.js
   #
   . /etc/rc.d/init.d/functions
   USER="parsoid"
   DAEMON="/usr/bin/node"
   ROOT_DIR="/opt/services/parsoid/api"
   SERVER="$ROOT_DIR/server.js"
   LOG_FILE="$ROOT_DIR/server.js.log"
   LOCK_FILE="/var/lock/subsys/node-server"
   do_start()
   {
   if [ ! -f "$LOCK_FILE" ] ; then
   echo -n $"Starting $SERVER: "
   runuser -l "$USER" -c "$DAEMON $SERVER >> $LOG_FILE &" && echo_success || echo_failure
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch $LOCK_FILE
   else
   echo "$SERVER is locked."
   RETVAL=1
   fi
      }
       do_stop()
      {
   echo -n $"Stopping $SERVER: "
   pid=`ps -aefw | grep "$DAEMON $SERVER" | grep -v " grep " | awk '{print $2}'`
   kill -9 $pid > /dev/null 2>&1 && echo_success || echo_failure
       RETVAL=$?
       echo
       [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
   }
   case "$1" in
   start)
     do_start
   ;;
   stop)
     do_stop
   ;;
   restart)
     do_stop
     do_start
   ;;
   *)
   echo "Usage: $0 {start|stop|restart}"
   RETVAL=1
       esac
   exit $RETVAL
CTRL+X, Y, Enter
chown parsoid parsoid
chmod 0755 parsoid
/etc/init.d/parsoid start
Navigate to http://wiki.ssdcougars.tv:8000 and you should see a webpage loaded with links about Parsoid.
NOTE: At the time of this writing, there was a page displayed about parsoid. Some browsers will show "SERVER TOOK TOO LONG TO RESPOND"
Use SSH and run nmap -sT -O localhost
Verify you see: 8000/tcp open http-alt
4. Edit MediaWiki LocalSettings.php
# Add more configuration options below. #VisualEditor require_once "$IP/extensions/VisualEditor/VisualEditor.php"; // Enable by default for everybody $wgDefaultUserOptions['visualeditor-enable'] = 1; // Don't allow users to disable it #$wgHiddenPrefs[] = 'visualeditor-enable'; $wgVirtualRestConfig['modules']['parsoid'] = array( // URL to the Parsoid instance // Use port 8142 if you use the Debian package 'url' => 'http://wiki.ssdcougars.tv:8000', // Parsoid "domain", see below (optional) 'domain' => 'wiki.ssdcougars.tv', // Parsoid "prefix", see below (optional) 'prefix' => 'localhost' );
Now, if you did everything correctly, when you go to a Wikipage, you should see 'EDIT' AND 'EDIT SOURCE' on the page. 'EDIT' will take you to the visual editor.
If it didn't work, go through the steps again.
