Difference between revisions of "Visual Editor Install"
| m (Tag: Visual edit) | |||
| (16 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
| After you have MediaWiki installed (to a users' account NOT <code>/var/www/mediawiki</code> and working, do the following | After you have MediaWiki installed (to a users' account NOT <code>/var/www/mediawiki</code> and working, do the following | ||
| − | #<code>cd extensions | + | # Get the Package <ref>https://www.mediawiki.org/wiki/Extension:VisualEditor#Download</ref> | 
| − | git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git | + | ## <code>cd extensions</code>   | 
| − | cd VisualEditor | + | ## <code>git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git</code>    | 
| − | git submodule update --init</code> | + | ## <code>cd VisualEditor</code>     | 
| − | # Run This as Root from within the base wiki directory <code>curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -</code> | + | ## <code>git submodule update --init</code> | 
| + | # Run This as Root from within the base wiki directory <ref>https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora</ref> <code>curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -</code> | ||
| + | # 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>yum install -y policycoreutils-python</code>    | ||
| + | ## <code>mkdir src</code>   | ||
| + | ## <code>cd src</code>      | ||
| + | ## <code>git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid</code>   | ||
| + | ## <code>cp -rv parsoid /opt/</code>    | ||
| + | ## <code>cd /opt/parsoid/</code>     | ||
| + | ## <code>npm install</code>     | ||
| + | ## <code>nano config.example.yaml</code>    | ||
| + | ## FIND and EDIT below:  | ||
| + |  mwApis: | ||
| + |  <nowiki>#</nowiki> This is the only required parameter, | ||
| + |  <nowiki>#</nowiki> the URL of you MediaWiki API endpoint. | ||
| + |  uri: 'http://wiki.ssdcougars.tv/api.php' | ||
| + |  <nowiki>#</nowiki> The "domain" is used for communication with Visual Editor | ||
| + |  <nowiki>#</nowiki> and RESTBase.  It defaults to the hostname portion of | ||
| + |  <nowiki>#</nowiki> the `uri` property below, but you can manually set it | ||
| + |  <nowiki>#</nowiki> to an arbitrary string. | ||
| + |  domain: 'wiki.ssdcougars.tv'  # optional | ||
| + |  <nowiki>#</nowiki> To specify a proxy (or proxy headers) specific to this prefix | ||
| + |  <nowiki>#</nowiki> (which overrides defaultAPIProxyURI). Alternatively, set `proxy` | ||
| + |  <nowiki>#</nowiki> to `null` to override and force no proxying when a default proxy | ||
| + |  <nowiki>#</nowiki> has been set. | ||
| + |  <nowiki>#</nowiki>proxy: | ||
| + |  <nowiki>#</nowiki>    uri: 'http://my.proxy:1234/' | ||
| + |  <nowiki>#</nowiki>    headers:  # optional | ||
| + |  <nowiki>#</nowiki>        'X-Forwarded-Proto': 'https' | ||
| + | CTL+X, Y, and rename the file to <code>config.yaml</code> | ||
| + | |||
| + | Next we need to add a parsoid user and group. | ||
| + | |||
| + | <code>groupadd parsoid</code> | ||
| + | |||
| + | <code>useradd -g parsoid parsoid</code> | ||
| + | |||
| + | <code>cd /opt/</code> | ||
| + | |||
| + | <code>chown -Rv parsoid:parsoid 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> **ForSELinux Only - We can ignore | ||
| + | |||
| + | Port 8000 should already be open on the hosted server, so we'll continue. | ||
| + | |||
| + | ===== Create init.d service<ref>https://www.mediawiki.org/wiki/Topic:Sqzq4kxj3o5q8b1k</ref> ===== | ||
| + | <code>cd /etc/init.d/</code> | ||
| + | |||
| + | <code>nano parsoid</code> | ||
| + | |||
| + | 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 | ||
| + | |||
| + | <code>chown parsoid parsoid</code> | ||
| + | |||
| + | <code>chmod 0755 parsoid</code> | ||
| + | |||
| + | <code>/etc/init.d/parsoid start</code> | ||
| + | |||
| + | 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 <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>VisualEditor | ||
| + |  require_once "$IP/extensions/VisualEditor/VisualEditor.php"; | ||
| + |  // Enable by default for everybody | ||
| + | |||
| + |  $wgDefaultUserOptions['visualeditor-enable'] = 1; | ||
| + | |||
| + |  // Don't allow users to disable it | ||
| + | |||
| + |  <nowiki>#</nowiki>$wgHiddenPrefs[] = 'visualeditor-enable'; | ||
| + | |||
| + |  $wgVirtualRestConfig['modules']['parsoid'] = array( | ||
| + | |||
| + |  // URL to the Parsoid instance | ||
| + | |||
| + |  // Use port 8142 if you use the Debian package | ||
| + | |||
| + |  'url' => '<nowiki>http://wiki.ssdcougars.tv:8000'</nowiki>, | ||
| + | |||
| + |  // 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. | ||
| + | |||
| + | ====== Sources ====== | ||
| + | <references /> | ||
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.
