MediaWiki

MediaWiki is a free and open source wiki software written in PHP, originally developed for Wikipedia. It also powers this wiki (see Special:Version and the GitHub repository).

Installation

To run MediaWiki you need three things:

To install MediaWiki on XAMPP, see mw:Manual:Installing MediaWiki on XAMPP

Configuration

The steps to achieve a working MediaWiki configuration involve editing the PHP settings and adding the MediaWiki configuration snippets.

Note: This guide assumes that mediawiki depends on php7.

PHP

MediaWiki requires the iconv extension, so you need to uncomment extension=iconv in /etc/php7/php.ini.

Optional dependencies:

Enable the API for your DBMS:

  • If you use MariaDB, uncomment extension=mysqli.
  • If you use PostgreSQL, install and uncomment .
  • If you use SQLite, install and uncomment .

Second, tweak the session handling or you might get a fatal error () by finding the session.save_path path. A good choice can be /var/lib/php/sessions or .

You will need to create the directory if it does not exist and then restrict its permissions:

# mkdir -p /var/lib/php/sessions/
# chown http:http /var/lib/php/sessions
# chmod go-rwx /var/lib/php/sessions

If you use PHP's open_basedir and want to allow file uploads, you need to include ( symlinks to ).

Apache

Follow Apache HTTP Server#PHP.

Copy to and edit it as needed.

Add the following line to :

Include conf/extra/mediawiki.conf

Restart the daemon.

Note: The default file from /etc/webapps/mediawiki/apache.example.conf will overwrite the PHP open_basedir setting, possibly conflicting with other pages. This behavior can be changed by moving line starting with php_admin_value between the <Directory> tags. Further, if you are running multiple applications that depend on the same server, this value could also be added to the open_basedir value in /etc/php7/php.ini instead of /etc/httpd/conf/extra/mediawiki.conf

Nginx

To get MediaWiki working with Nginx, create the following file:

/etc/nginx/mediawiki.conf
location / {
   index index.php;
   try_files $uri $uri/ @mediawiki;
}
location @mediawiki {
   rewrite ^/(.*)$ /index.php;
}
location ~ \.php$ {
   include /etc/nginx/fastcgi_params;
   fastcgi_pass unix:/var/run/php-fpm7/php-fpm.sock;
   fastcgi_index index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   try_files $uri @mediawiki;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
   try_files $uri /index.php;
   expires max;
   log_not_found off;
}
# Restrictions based on the .htaccess files
location ~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
   deny all;
}
location ~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
   internal;
}
location ^~ /images/ {
   try_files $uri /index.php;
}
location ~ /\. {
   access_log off;
   log_not_found off; 
   deny all;
}
location /rest.php {
   try_files $uri $uri/ /rest.php?$args;
}

Ensure that is installed and is started.

Include a server directive, similar to this

Finally, restart and daemons.

Lighttpd

You should have Lighttpd installed and configured. "mod_alias" and "mod_rewrite" in server.modules array of lighttpd is required. Append to the lighttpd configuration file the following lines

Restart the daemon.

Database

Set up a database server as explained in the article of your DBMS: MariaDB, PostgreSQL, SQLite or MySQL.

If you have set a non-empty root password for the database server, MediaWiki can automatically create the database during the next step. (See MariaDB#Reset the root password for how to set this password retrospectively for MariaDB.) Otherwise the database needs to be created manually - see upstream instructions.

LocalSettings.php

Open the wiki URL (usually ) in a browser and do the initial configuration. Follow upstream instructions.

The generated file is offered for download, save it to .

Since 1.38.0 it has a symbolic link included in /usr/share/webapps/mediawiki/LocalSettings.php.

This file defines the specific settings of your wiki. Whenever you upgrade the mediawiki package, it will not be replaced.

LDAP Auth

Use PluggableAuth and LDAP Stack. Pay attention to "Compatibility Matrix" section. Currently LDAP works only with PluggableAuth-5.7.

You need to install and add to config ldap stack extensions and PluggableAuth:

Then set up at least 3 variables:

  • $LDAPProviderDomainConfigProvider - whole ldap config (can be in json file)
  • - list of auth plugins
$wgPluggableAuth_Config = array(
       array('plugin' => 'LDAPAuthentication2'),
       array('plugin' => 'LDAPAuthorization'),
);
  • and

Do not forget to run after configuration.

Upgrading

See mw:Manual:Upgrading, and do not forget to run:

# cd /usr/share/webapps/mediawiki
# php maintenance/update.php

Tips and tricks

Mathematics (texvc)

Usually installing and enabling it in the configuration is enough:

$wgUseTeX = true;

If you get problems, try to increase limits for shell commands:

Unicode

Check that PHP, Apache HTTP Server and MariaDB all use UTF-8. Otherwise you may face strange bugs because of encoding mismatch.

VisualEditor

The VisualEditor MediaWiki extension provides a rich-text editor for MediaWiki. Follow mw:Extension:VisualEditor to install it.

Before MediaWiki 1.35, you need the Parsoid Node.js backend (available in parsoid-gitAUR) before you could edit or save pages. This is not necessary for MediaWiki 1.35 and later, unless you are running a pre-release version of VisualEditor from git. (See for details.)

Adjust the path to MediaWiki in :

parsoidConfig.setInterwiki( 'localhost', 'http://localhost/mediawiki/api.php' );

After that enable and start .

Alternatively, one may also use the package, and configure the service via the yaml file, where the following lines should be present:

/usr/share/webapps/parsoid/config.yaml
uri: 'http://localhost/mediawiki/api.php'
domain: 'localhost'

The matching part in the mediawiki settings:

After configuration, the service may be started (restarted) and (if not done yet) enabled.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.