Cosas de Linux
Inicio Info

Configurar phpmyadmin en Virtualmin

Cuando se instala Virtualmin, por defecto configura los virtual servers para que ejecuten los scripts php usando fcgi. Esto se hace para aumentar la seguridad, ya que así los scripts se ejecutarán con el usuario de cada servidor virtual, no afectando a los demás. Si se usara el módulo mod_php, todos los scripts se ejecutarían desde el usuario de apache www-data, lo cual siempre es más peligroso.

Sin embargo esto supone un problema cuando instalamos phpmyadmin, ya que por defecto presupone que php se ejecutará desde el módulo mod_php y no desde fcgi. Si intentamos lanzar phpmyadmin justo después de instalarlo, apache no ejecutará los ficheros php y se limitará a abrirlos como texto plano.

Para hacer que phpmyadmin corra usando el módulo mod_fcgi, hay que editar el archivo de configuracion /etc/phpmyadmin/apache.conf y añadir lo siguiente:

<Directory /usr/share/phpmyadmin>
...
Options +ExecCGI
...
<ifModule mod_gcgid.c>
AddHandler fcgid-script.php
FCGIWrapper /ruta_servidor/fcgi-bin/php5.fcgi.php
AllowOverride all
Order allow,deny
allow from all
</ifModule>
...
</Directory>

ruta_servidor En un entorno virtualmin suele ser siempre /home/nombre_servidor

Virtualmin añade el archivo php5.fcgi cuando creamos el servidor virtual.

El contenido del archivo php5.fcgi será algo como esto:

#!/bin/bash
PHPRC=$PWD/../etc/php5
export PHPRC
umask 022
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=99999
export PHP_FCGI_MAX_REQUESTS
SCRIPT_FILENAME=$PATH_TRANSLATED
export SCRIPT_FILENAME
exec /usr/bin/php5-cgi

Hay que notar que en este caso los archivos de configuración de php5 usados son los que hay dentro de cada servidor virtual $PWD/.../etc/php5 y no los genéricos de /etc/php5.

También hay que tener en cuenta que Virtualmin modifica las rutas de los scripts ejecutables por el módulo mod_suexec, que normalmente es /var/www, pero que este caso se cambia por /home. El fichero de configuración es /etc/apache2/suexec/www-data

2025 Alberto Picado