Cómo instalar MediaWiki dentro de un sitio Django con Apache2

written by uve 4 May 2011

La idea es bastante sencilla. Disponemos de un sitio web en el que vamos a añadir MediaWiki en /wiki/. Así, por ejemplo, si nuestro dominio es http://www.plagaos.com/, en el cuál hay un proyecto Django en despliegue, vamos a tener http://www.plagaos.com/wiki/ sin que afecte al sitio. Además, MediaWiki hará uso de PostgreSQL.

Voy a asumir que Apache2 y PostgreSQL están instalados y funcionando correctamente, así que lo siguiente será asegurarnos de tener instalado PHP5 con soporte para PostgreSQL:

# apt-get install php5-pgsql
# service apache2 restart

Ahora vamos a crear la base de datos y el usuario que usaremos en MediaWiki:

# su postgres -c "psql -c \"CREATE ROLE wikiuser PASSWORD '****' NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN;\""
# su postgres -c "psql -c \"CREATE DATABASE wikidb OWNER wikiuser;\""

Y ahora vamos a instalarlo. Lo primero será movernos al directorio donde está el despliegue de nuestra aplicación, descargar los fuentes y extraerlos:

$ cd /path/to/django/deploy/
$ wget -c http://download.wikimedia.org/mediawiki/1.16/mediawiki-1.16.4.tar.gz
$ tar xvzf mediawiki-1.16.4.tar.gz
$ mv mediawiki-1.16.4 mediawiki
$ cd mediawiki

Ahora mismo, la versión estable es la 1.16.4, pero recomiendo utilizar la última versión disponible. Una vez que esto está listo, vamos a preparar para poder realizar la instalación. Necesitamos dar permisos de escritura al directorio config:

$ chmod a+w config

Y ahora vamos a configurar Apache2. El fichero con el despliegue de la aplicación Django tendrá una forma similar a esta:

<VirtualHost *:80>
    ServerName www.plagaos.com
    ...
    WSGIScriptAlias / /path/to/django/deploy/application.wsgi
    Alias /media/ /path/to/django/deploy/media/
    <Directory /path/to/django/deploy/media/>
        Order allow,deny
        Allow from all
    </Directory>
    ...
</VirtualHost>

Así que vamos a indicarle a Apache2 que tiene que servir también los ficheros del wiki. Para ello tenemos que añadir el siguiente fragmento:

<VirtualHost *:80>
    ...
    <Directory /path/to/django/deploy/mediawiki/>
        Order allow,deny
        Allow from all
    </Directory>
    Alias /wiki/ /home/web/sites/plagaos.com/mediawiki/
</VirtualHost>

Recargamos el servidor web y ya podemos proceder al asistente de configuración:

# service apache2 restart

Y una vez que se haya finalizado el proceso de instalación, por motivos de seguridad, vamos a reubicar el fichero LocalSettings.php:

$ mv config/LocalSettings.php .

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.