MediaWiki
Contents
Installation
You need to have a web server, such as Apache installed, configured to be able to use PHP.
Install the php-gd, php-intl and mediawiki packages.
You will also need a database system, such as MySQL, PostgreSQL or SQLite.
Configuration
The steps to achieve a working MediaWiki configuration involve editing the PHP settings and adding the MediaWiki configuration snippets.
PHP
First, adjust the open_basedir
in /etc/php/php.ini
to include the mediawiki data directory (/var/lib/mediawiki
by default):
/etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/var/lib/mediawiki/
Then, also in /etc/php/php.ini
, uncomment the following lines: (in the Dynamic Extensions
section)
extension=gd.so extension=intl.so extension=iconv.so
Second, tweak the session handling or you might get a fatal error (PHP Fatal error: session_start(): Failed to initialize storage module[...]
) by finding the session.save_path
path. A good choice can be /var/lib/php/sessions
or /tmp/
.
/etc/php/php.ini
session.save_path = "/var/lib/php/sessions"
You will need to create the directory if it doesn't 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
Web server
Apache
Copy /etc/webapps/mediawiki/apache.example.conf
to /etc/httpd/conf/extra/mediawiki.conf
and edit it as needed.
Add the following lines to /etc/httpd/conf/httpd.conf
Include conf/extra/mediawiki.conf
Restart the httpd.service
daemon.
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 ~ \.php5?$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php5; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; try_files $uri @mediawiki; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { 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; }
Ensure that php-fpm is installed and started.
Include a server directive, similar to this
/etc/nginx/nginx.conf
server { listen 80; server_name mediawiki; root /usr/share/webapps/mediawiki; index index.php; charset utf-8; # For correct file uploads client_max_body_size 100m; # Equal or more than upload_max_filesize in /etc/php/php.ini client_body_timeout 60; include mediawiki.conf; }
Finally, restart nginx.service
and php-fpm.service
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
/etc/lighttpd/lighttpd.conf
alias.url += ("/mediawiki" => "/usr/share/webapps/mediawiki/") url.rewrite-once += ( "^/mediawiki/wiki/upload/(.+)" => "/mediawiki/wiki/upload/$1", "^/mediawiki/wiki/$" => "/mediawiki/index.php", "^/mediawiki/wiki/([^?]*)(?:\?(.*))?" => "/mediawiki/index.php?title=$1&$2" )
Restart the lighttpd.service
daemon.
Database
If the database server is already set up, MediaWiki can automatically create the database (provided that the database root password is supplied) during the next step. Otherwise the database needs to be created manually, see upstream instructions.
LocalSettings.php
Open the wiki url (usually http://your_server/mediawiki/
) in a browser and do the initial configuration. Follow upstream instructions.
The generated LocalSettings.php
file is offered for download, save it to /usr/share/webapps/mediawiki/LocalSettings.php
. This file defines the specific settings of your wiki. Whenever you upgrade the mediawiki package, it is not replaced.
Tips and tricks
Mathematics (texvc)
Usually installing texvc and enabling it in the config are enough:
$wgUseTeX = true;
If you get problems, try to increase limits for shell commands:
$wgMaxShellMemory = 8000000; $wgMaxShellFileSize = 1000000; $wgMaxShellTime = 300;
Unicode
Check that php, apache and mysql uses UTF-8. Otherwise you may face strange bugs because of encoding mismatch.
VisualEditor
After following this instruction on how to install the VisualEditor, you need a backend nodejs application on your server, called Parsoid, to get it finally working.
Simply install parsoid-gitAUR from the AUR and adjust the path to your MediaWiki in following file:
/usr/share/webapps/parsoid/api/localsettings.js
parsoidConfig.setInterwiki( 'localhost', 'http://localhost/mediawiki/api.php' );
After that simply enable and start parsoid.service
.