Contents

Instalar DokuWiki como Wiki personal (Parte 2): Instalación de Apache, PHP y DokuWiki

Una vez respondidas las preguntas que podrían surgir antes de ponernos manos a la obra es hora de arremangarse y ponerse con la instalación de Apache + PHP y de Dokuwiki.

/wp-content/uploads/2014/06/banner-tutorial-dokuwiki_-instalacion-e1401993787279.png
Instalar Dokuwiki, Apache y PHP

Índice de tutoriales

  1. Preguntas y respuestas.
  2. Instalación de Apache, PHP y DokuWiki.
  3. Postinstalación de DokuWiki.

Como se explicó en la entrada anterior utilizaremos Debian Wheezy para la instalación de Dokuwiki. Asumiré que tenemos acceso vía SSH y una IP fija sobre nuestro servidor. (puedes ayudarte con esta entrada en caso de no tenerlo) En la propia Wiki del producto tenemos instrucciones para instalar Dokuwiki desde el gestor de paquetes, no obstante, en este tutorial utilizaremos la instalación “estándar” debido a que la versión de Dokuwiki que aparece en el repositorio stable está muy desfasada respecto a la que podemos encontrar en la sección de descargas de la web del programa.

Instalar Apache2 + PHP en modo Worker

Para nuestra instalación he decidido usar el MPM Worker de Apache básicamente debido a que se trata de un modo más respetuoso con la memoria RAM del servidor.

Habilitar los repositorios non-free en Debian Wheezy

Antes de nada habilitaremos los repositorios non-free para evitar que nos aparezca el error:

1
Package ‘libapache2-mod-fastcgi’ has no installation candidate

Por lo tanto, editaremos el archivo /etc/apt/sources.list y lo dejaremos parecido a esto:

1
2
3
4
5
6
7
8
9
deb http://ftp.es.debian.org/debian/ wheezy main non-free
deb-src http://ftp.es.debian.org/debian/ wheezy main non-free

deb http://security.debian.org/ wheezy/updates main non-free
deb-src http://security.debian.org/ wheezy/updates main non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.es.debian.org/debian/ wheezy-updates main
deb-src http://ftp.es.debian.org/debian/ wheezy-updates main

Si no sabemos como hacer esto hay miles de tutoriales como este  en la red para realizar el proceso.

Instalar Apache2 y PHP

Como siempre, con nuestro gestor de paquetes de cabecera instalamos los paquetes necesarios:

1
$ sudo apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php-apc
  • apache2-mpm-worker: Como hemos comentado más arriba instalaremos apache2 con modo mpm.
  • libapache2-mod-fastcgi: Como el módulo php de Apache no es compatible con el modo worker deberemos cargar php5-fpm vía este módulo de apache.
  • php5-fpm: El interprete de php que procesará las solicitudes de FastCGI.
  • php-apc: Caché alternativa de php.

Con esto hecho vamos a comprobar que todo ha salido bien. Abrimos nuestro navegador favorito y nos dirigimos la IP de nuestro servidor que debería mostrarnos el mítico:

It works!

Configurando PHP en Apache

Para configurar Apache con el módulo de php lo primero que deberemos hacer es habilitar los módulos necesarios con el script a2enmod:

1
$ sudo a2enmod actions alias fastcgi rewrite

Ahora crearemos el archivo de configuración para php5-fpm:

1
$ sudo nano /etc/apache2/conf.d/php5-fpm

Y pegaremos:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Configure all that stuff needed for using PHP-FPM as FastCGI

# Set handlers for PHP files.
 # application/x-httpd-php                        phtml pht php
 # application/x-httpd-php3                       php3
 # application/x-httpd-php4                       php4
 # application/x-httpd-php5                       php
 <FilesMatch ".+.ph(p[345]?|t|tml)$">
 SetHandler application/x-httpd-php
 </FilesMatch>

# application/x-httpd-php-source                 phps
 <FilesMatch ".+.phps$">
 SetHandler application/x-httpd-php-source
 # Deny access to raw php sources by default
 # To re-enable it's recommended to enable access to the files
 # only in specific virtual host or directory
 Order Deny,Allow
 Deny from all
 </FilesMatch>

# Deny access to files without filename (e.g. '.php')
 <FilesMatch "^.ph(p[345]?|t|tml|ps)$">
 Order Deny,Allow
 Deny from all
 </FilesMatch>

# Define Action and Alias needed for FastCGI external server.
 Action application/x-httpd-php /fcgi-bin/php5-fpm virtual
 Alias /fcgi-bin/php5-fpm /fcgi-bin-php5-fpm
 <Location /fcgi-bin/php5-fpm>
 # here we prevent direct access to this Location url,
 # env=REDIRECT_STATUS will let us use this fcgi-bin url
 # only after an internal redirect (by Action upper)
 Order Deny,Allow
 Deny from All
 Allow from env=REDIRECT_STATUS
 </Location>

FastCgiExternalServer /fcgi-bin-php5-fpm -socket /var/run/php5-fpm.sock -pass-header Authorization

Archivo de configuración sacado de aquí.

Para aplicar los cambios deberemos reiniciar el servicio de Apache:

1
$ sudo service apache2 restart

Comprobar que Apache y PHP se entienden

Lo último que nos queda antes de instalar DokuWiki en nuestro servidor es comprobar que la combinación Apache + PHP está funcionando. Una forma fácil de hacer esto será ejecutar:

1
echo "<?php phpinfo(); ?>" > /var/www/info.php

Y posteriormente dirigirnos a http://IP_DEL_SERVER/info.php, que debería mostrarnos la configuración de PHP en nuestro servidor. Después de la comprobación podemos eliminar el archivo que hemos generado:

1
$ sudo rm /var/www/info.php

Instalar DokuWiki

Como apuntaba al inicio del tutorial instalaremos DokuWiki de la forma tradicional, sin apt por enmedio. Se trata de descargar la aplicación desde la web oficial, descomprimirla en el document root de nuestro apache y realizar la instalación desde nuestro navegador.

Para ello nos dirigiremos al document root por defecto de apache2:

1
$ cd /var/www

Y descargaremos el archivo .tgz correspondiente:

1
$ sudo wget http://download.dokuwiki.org/out/dokuwiki-382d0ca15f9eeceea6bc3c0c5a145a62.tgz

Descomprimiremos el archivo descargado:

1
$ sudo tar -xvzf dokuwiki-382d0ca15f9eeceea6bc3c0c5a145a62.tgz

Y estableceremos al usuario y grupo www-data (usuario con el que corre apache2) como propietario de la carpeta:

1
sudo chown -R www-data:www-data dokuwiki/

Y por último reiniciamos el servicio de apache:

1
$ sudo service apache2 restart

Hecho esto nos dirigiremos a la página de instalación de Dokuwiki que se encuentra en: http://ip_del_servidor/dokuwiki/install.php y rellenaremos los campos correspondientes:

/wp-content/uploads/2014/06/DokuWiki-Installphp.png
DokuWiki - Installphp

Una vez rellenados los campos guardamos la configuración y debería aparecer esta magnífica pantalla indicando que hemos instalado correctamente nuestro DokuWiki:

/wp-content/uploads/2014/06/DokuWiki-Installphp2-e1401994149913.png
DokuWiki - Installphp2

Para comprobar que esto es así nos dirigiremos a: http://ip_del_servidor/dokuwiki que debería mostrarnos la página principal de nuestra recién estrenada Wiki.

Y hasta aquí esta segunda parte del tutorial. Cabe destacar que a la instalación de Apache + PHP se le puede sacar muchísimo más jugo, y os animo a que echéis un ojo a los miles de tutoriales que existen en Internet al respecto. En la próxima entrada veremos las acciones a realizar después de instalar DokuWiki en nuestro servidor antes de empezar a añadir contenido en la Wiki.