wiki:AWIKIServer

Version 27 (modified by admin, 4 years ago) (diff)

--

Purpose

the awikiserver image is a mediawiki instance, with the visual editor by default everywhere, and ParserFunctions? enabled.

Install, Debian 8

First, install mediawiki.

  • sudo apt-get install mediawiki

Note that you will be asked to set the mysql root password.

Create and populate our mysql database:

  • mysql -u root -p
    • <enter your mysql root password>
    • create database my_wiki;
    • quit
  • mysql -u root -p my_wiki < /usr/share/mediawiki/maintenance/tables.sql

Create and enable an apache configuration for mediawiki:

  • sudo cp /etc/mediawiki/apache.conf /etc/apache2/sites-available/mediawiki.conf
  • edit /etc/apache2/sides-available/mediawiki.conf, and add the following two lines after the example, to redirect users properly:
    Alias /mediawiki /var/lib/mediawiki
    Alias /wiki /var/lib/mediawiki
    
  • sudo a2ensite mediawiki to enable the serving of mediawiki.

Finally, create the file /etc/mediawiki/LocalSettings.php with the following contents. make sure to properly replace the <mysql_password> with your own.

<?php
$wgUseTeX = true;
$wgDBuser = 'root';
$wgDBpassword = '<mysql_password>';
?>

Post Install, FAI CD

After installation with our FAI CD image, the mysql database still needs to be created and populated.

  • sudo /root/install_mediawiki.sh
    • It will ask you for the mysql root password twice.

Passwords

  • change the shell password for root.
  • change the shell password for demo.
  • change the mysql password for root.
    • update /etc/mediawiki/LocalSettings.php with the new password.
  • regenerate the SSH keys.

Building and installing Mediawiki 1.25.1

First, lets install dependencies for building mediawiki, followed by one dependency that is new to 1.25.1.

  • sudo apt-get install devscripts dpkg-dev dh-buildinfo ocaml-nox xsltproc docbook-xml docbook-xsl
  • sudo apt-get install php5-curl

Next, lets grab the newest mediawiki, extract it, and place our debian/ directory inside, so we can build it.

Now, run debuild to create .deb files.

  • debuild

Congratulations! If all has gone well, you now have MediaWiki? .deb files. Change to the previous directory and install them. Note that we're going to remove mediawiki-extensions-base, to avoid a conflict.

  • cd ..
  • sudo apt-get remove mediawiki-extensions-base
  • sudo dpkg -i mediawiki_1.25.1-0.1_all.deb
  • sudo dpkg -i mediawiki-classes_1.25.1-0.1_all.deb

Reset the Database, Debian 8

Next, re-create and re-populate our mysql database:

  • mysql -u root -p
    • <enter your mysql root password>
    • drop database my_wiki;
    • create database my_wiki;
    • quit
  • mysql -u root -p my_wiki < /usr/share/mediawiki/maintenance/tables.sql

Reset the Database, FAI CD

  • mysql -u root -p
    • DROP DATABASE my_wiki;
    • quit
  • sudo /root/install_mediawiki.sh

Enabling the Vector skin

  • as root, add wfLoadSkin( 'Vector'); to /etc/mediawiki/LocalSettings.php, as a new line between the <?php and ?>.

Bugs

trying to overwrite '/var/lib/mediawiki/extensions/InputBox', which is also in package mediawiki-extensions-base 3.7

VisualEditor?

Dependencies

Universal Language Selector

Parsoid

WARNING

parsoid's dependency on node.js is fragile! once you start parsoid, look for 'nodejs' processes. if you don't see any:

  • cd ~
  • cd parsoid
  • git pull origin master
  • debuild
  • cd ..
  • sudo dpkg -i parsoid_0.3.0_i386.deb
  • cd /usr/lib/parsoid
  • sudo rm -rf node_modules
  • sudo npm install

Wash. Rinse. Repeat.

Bugs

  • EATS ALL RAM. takes up 600 megs of ram to start. turn on your swap file...
    • on createvm hosts:
      • cd /home
      • sudo dd if=/dev/zero of=swapfile bs=1048576 count=1024
      • sudo chmod 600 swapfile
      • sudo mkswap swapfile
      • sudo swapon swapfile
      • cd ~
  • npm install -- installs dependencies not found in debian. they need audited and packaged.

Installing

  • cd /var/lib/mediawiki/extensions
  • sudo git clone -b REL1_25 https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
  • cd VisualEditor?
  • sudo git submodule update --init
  • add the following to /etc/mediawiki/LocalSettings.php to enable the Visual Editor:
    require_once "$IP/extensions/VisualEditor/VisualEditor.php";
    
    // URL to the Parsoid instance
    // MUST NOT end in a slash due to Parsoid bug
    $wgVisualEditorParsoidURL = 'http://localhost:8142';
    
    

Configuring

  • Add the following to /etc/mediawiki/LocalSettings.php:
    // Enable the visual editor by default for newly created users.
    $wgDefaultUserOptions['visualeditor-enable'] = 1;
    
    // Don't allow users to enable it
    // $wgHiddenPrefs[] = 'visualeditor-enable';
    
    // OPTIONAL: Enable VisualEditor's experimental code features
    // $wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
    

Other Extensions

ParserFunctions?

Add the following to /etc/mediawiki/LocalSettings.php:

wfLoadExtension( 'ParserFunctions' );

Running MediaWiki? behind proxies

mod_rpaf

RPAF is responsible for interpreting the 'X-Forwarded-IP' header for apache. This means that IP addresses show up properly in the access.log, and can be used for access control. It also sets the domain name presented to mediawiki "properly".

  • sudo apt-get install libapache2-mod-rpaf
  • edit /etc/apache2/mods-enabled/rpaf.conf as root, and add the ip of EACH of your proxies to the line that starts with RPAFproxy_ips.
  • edit /etc/mediawiki/LocalSettings.php as root, and add the line $wgServer=preg_replace('/, .*/','', $wgServer);, in order to make MediaWiki? see it's domain properly.

MediaWiki?

  • edit /etc/mediawiki/LocalSettings.php as root. add the following lines:
    $wgUsePrivateIPs = true;
    $wgSquidServers = array('172.16.0.1', '10.0.2.51');
    

Again, just like the above, make sure to list EACH of your proxy servers.

Parsoid

  • edit /etc/mediawiki/parsoid/settings.js, and add the following line inside of the function declaration that is the configuration:
    parsoidConfig.setMwApi( 'localhost', { uri: 'http://awiki.faikvm.com/wiki/api.php', proxy: { uri: 'http://localhost/' } } );
    
  • Make sure to swap out awiki.faikvm.com with the domain name of your wiki.
  • restart parsoid: sudo service parsoid restart

Apache

Finally, sudo service apache2 restart to make the above take effect.