Difference between revisions of "MediaWiki"
(Added note to add /usr/share/webapps to php.ini's open_basedir setting) |
m (→Nginx: Update config) |
||
(18 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Web Server]] | [[Category:Web Server]] | ||
− | {{Note| If you are using xampp, there are different steps you need to take after installing. More info [https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_XAMPP#381 here] }} | + | {{Note| If you are using xampp, instead of [[LAMP]], there are different steps you need to take after installing. More info [https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_XAMPP#381 here] }} |
== Installation == | == Installation == | ||
− | |||
− | + | You need to have a web server installed, configured to be able to use {{Pkg|php}}. You can follow the [[LAMP]] guide for that purpose. | |
+ | |||
+ | [[Pacman|Install]] the {{pkg|php-gd}}, {{pkg|php-intl}}, {{pkg|php-xcache}} and {{pkg|mediawiki}}, all available from the [[official repositories]]. | ||
+ | |||
+ | Instead of {{pkg|mysql}} you can use sqlite (which requires {{pkg|php-sqlite}} and {{pkg|sqlite}}) or {{pkg|postgresql}}. | ||
+ | |||
+ | {{Note|Since PHP 5.1.0, SQLite depends on PDO. You should uncomment the following line in your php.ini if you wish to use SQLite with Mediawiki: | ||
+ | |||
+ | '''extension1=pdo_sqlite.so'''}} | ||
==Configuration== | ==Configuration== | ||
+ | First, adjust the {{ic|open_basedir}} in {{ic|/etc/php/php.ini}} to include the webapps directory (allows '''update.php''' to be run from the command line): | ||
+ | {{hc|/etc/php/php.ini|<nowiki> | ||
+ | open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/ | ||
+ | </nowiki>}} | ||
+ | Then, still on {{ic|/etc/php/php.ini}}, look for the {{ic|Dynamic Extensions}} section and uncomment {{ic|1=;extension=gd.so}}, uncomment {{ic|1=;extension=intl.so}} and add {{ic|1=extension=xcache.so}}. | ||
− | Create {{ic|/etc/webapps/mediawiki/httpd-mediawiki.conf}} from the provided example {{ic|apache.example.conf}} in the same directory. | + | Now do the steps corresponding to your web server. |
+ | === Web server === | ||
+ | ==== Apache ==== | ||
+ | Create {{ic|/etc/webapps/mediawiki/httpd-mediawiki.conf}} from the provided example {{ic|apache.example.conf}} in the same directory. Edit it to remove the {{ic|php_admin_value open_basedir}} line, which is already in {{ic|php.ini}}. | ||
*Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}} | *Add the following lines to {{ic|/etc/httpd/conf/httpd.conf}} | ||
− | + | {{bc| | |
− | + | LoadModule php5_module modules/libphp5.so | |
− | + | Include conf/extra/php5_module.conf | |
− | + | Include /etc/webapps/mediawiki/httpd-mediawiki.conf | |
− | + | }} | |
− | |||
− | |||
− | Adjust permissions in {{ic|/usr/share/webapps/mediawiki/.htaccess}} | + | * Adjust permissions in {{ic|/usr/share/webapps/mediawiki/.htaccess}}, e.g. to |
+ | {{bc|allow from all}} | ||
− | Restart | + | [[Daemons|Restart]] the {{ic|httpd.service}} daemon. |
− | |||
− | == Nginx == | + | ==== Nginx ==== |
− | To get MediaWiki working with Nginx, create the following file | + | To get MediaWiki working with Nginx, create the following file: |
− | + | {{hc|/etc/nginx/mediawiki.conf|<nowiki> | |
+ | |||
+ | location / { | ||
index index.php; | index index.php; | ||
− | try_files $uri @mediawiki; | + | try_files $uri $uri/ @mediawiki; |
− | + | } | |
− | + | location @mediawiki { | |
− | rewrite ^/ | + | rewrite ^/(.*)$ /index.php?title=$1&$args; |
− | + | } | |
− | + | location ~ \.php?$ { | |
include fastcgi.conf; | include fastcgi.conf; | ||
fastcgi_pass php; | fastcgi_pass php; | ||
− | + | } | |
− | + | location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { | |
try_files $uri /index.php; | try_files $uri /index.php; | ||
expires max; | expires max; | ||
log_not_found off; | log_not_found off; | ||
− | + | } | |
− | + | # Restrictions based on the .htaccess files | |
− | + | location ^~ /(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ { | |
− | |||
− | |||
deny all; | deny all; | ||
− | + | } | |
+ | </nowiki>}} | ||
Ensure that {{ic|php-fpm}} is installed, and in your {{ic|/etc/nginx/nginx.conf}} file, ensure that you have an {{ic|upstream}} directive named {{ic|php}}, similar to this one: | Ensure that {{ic|php-fpm}} is installed, and in your {{ic|/etc/nginx/nginx.conf}} file, ensure that you have an {{ic|upstream}} directive named {{ic|php}}, similar to this one: | ||
− | + | {{hc|/etc/nginx/nginx.conf|<nowiki> | |
+ | upstream php { | ||
server unix:/var/run/php-fpm/php-fpm.sock; | server unix:/var/run/php-fpm/php-fpm.sock; | ||
− | + | } | |
+ | </nowiki>}} | ||
− | Include a server directive, similar to this | + | Include a server directive, similar to this |
− | + | {{hc|/etc/nginx/nginx.conf| | |
− | + | server { | |
− | + | listen 80; | |
− | + | server_name mediawiki; | |
− | + | root /usr/share/webapps/mediawiki; | |
− | include mediawiki.conf; | + | 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; | ||
+ | |||
+ | } | ||
+ | }} | ||
− | + | ==== Lighttpd ==== | |
+ | You should have [[Lighttpd]] installed and configured. Append to the lighttpd configuration file the following lines | ||
+ | {{hc|/etc/lighttpd/lighttpd.conf|<nowiki> | ||
+ | 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" | ||
+ | ) | ||
+ | </nowiki>}} | ||
+ | [[Daemons|Restart]] the {{ic|lighttpd.service}} daemon. | ||
+ | === LocalSettings.php === | ||
+ | Open the wiki url (is {{ic|http://''your_server''/mediawiki/}}) in a browser and do the initial setup to create {{ic|LocalSettings.php}}. Then save it to {{ic|/usr/share/webapps/mediawiki/LocalSettings.php}}. | ||
− | == Tips == | + | == Tips and tricks == |
=== Mathematics (texvc) === | === Mathematics (texvc) === | ||
Usually installing texvc package and enabling it in config are enough: | Usually installing texvc package and enabling it in config are enough: | ||
− | + | ||
+ | {{bc|1=$wgUseTeX = true;}} | ||
If you get problems, try to increase limits for shell commands: | If you get problems, try to increase limits for shell commands: | ||
− | + | {{bc|<nowiki> | |
− | + | $wgMaxShellMemory = 8000000; | |
− | + | $wgMaxShellFileSize = 1000000; | |
− | + | $wgMaxShellTime = 300; | |
+ | </nowiki>}} | ||
=== Unicode === | === Unicode === | ||
Check that php, apache and mysql uses UTF-8. Otherwise you may face strange bugs because of encoding mismatch. | Check that php, apache and mysql uses UTF-8. Otherwise you may face strange bugs because of encoding mismatch. |
Revision as of 05:01, 22 February 2013
Contents
Installation
You need to have a web server installed, configured to be able to use php. You can follow the LAMP guide for that purpose.
Install the php-gd, php-intl, php-xcache and mediawiki, all available from the official repositories.
Instead of mysql you can use sqlite (which requires php-sqlite and sqlite) or postgresql.
Configuration
First, adjust the open_basedir
in /etc/php/php.ini
to include the webapps directory (allows update.php to be run from the command line):
/etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/
Then, still on /etc/php/php.ini
, look for the Dynamic Extensions
section and uncomment ;extension=gd.so
, uncomment ;extension=intl.so
and add extension=xcache.so
.
Now do the steps corresponding to your web server.
Web server
Apache
Create /etc/webapps/mediawiki/httpd-mediawiki.conf
from the provided example apache.example.conf
in the same directory. Edit it to remove the php_admin_value open_basedir
line, which is already in php.ini
.
- Add the following lines to
/etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so Include conf/extra/php5_module.conf Include /etc/webapps/mediawiki/httpd-mediawiki.conf
- Adjust permissions in
/usr/share/webapps/mediawiki/.htaccess
, e.g. to
allow from all
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?title=$1&$args; } location ~ \.php?$ { include fastcgi.conf; fastcgi_pass php; } 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; }
Ensure that php-fpm
is installed, and in your /etc/nginx/nginx.conf
file, ensure that you have an upstream
directive named php
, similar to this one:
/etc/nginx/nginx.conf
upstream php { server unix:/var/run/php-fpm/php-fpm.sock; }
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; }
Lighttpd
You should have Lighttpd installed and configured. 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.
LocalSettings.php
Open the wiki url (is http://your_server/mediawiki/
) in a browser and do the initial setup to create LocalSettings.php
. Then save it to /usr/share/webapps/mediawiki/LocalSettings.php
.
Tips and tricks
Mathematics (texvc)
Usually installing texvc package and enabling it in 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.