Configuración PHP · 3 min read · Dec 16, 2025
Cómo configurar suPHP con PHP4 y PHP5 - Página 2
4 Instalar PHP4-CGI
Primero describiré cómo usar suPHP con PHP4, luego más adelante en este tutorial cómo usarlo con PHP5, y al final cómo usarlo con ambos instalados al mismo tiempo.
Como mencioné anteriormente, suPHP necesita PHP como CGI en lugar del módulo de Apache. Por lo tanto, instalamos el paquete php4-cgi de esta manera:
apt-get install php4-cgi5 Instalar suPHP
A continuación, descargamos y descomprimimos las fuentes de suPHP. En el momento de escribir esto, la versión actual era 0.6.1:
cd /tmp
wget http://www.suphp.org/download/suphp-0.6.1.tar.gz
tar xvfz suphp-0.6.1.tar.gz
cd suphp-0.6.1Ahora debemos editar src/apache2/mod_suphp.c porque de lo contrario obtendrás un error como este:
| Forcing reload of web server: Apache2Syntax error on line 49 of /etc/apache2/sites-enabled/000-default: suPHP_AddHandler not allowed here |
cuando pongas algunas directivas de suPHP en tus vhosts de Apache. Abre el archivo, y en las líneas 316 y 317 (los números de línea pueden diferir si usas una versión de suPHP diferente a la 0.6.1) encontrarás la cadena ACCESS_CONF. Reemplázala con RSRC_CONF | ACCESS_CONF para que las dos líneas se vean así:
vi src/apache2/mod_suphp.c| AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Indica a mod_suphp que maneje estos tipos MIME"), AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Indica a mod_suphp que no maneje estos tipos MIME"), |
(Si prefieres editar el archivo en tu sistema Windows, asegúrate de guardarlo con saltos de línea de Unix en lugar de saltos de línea de Windows antes de transferir el archivo de vuelta a tu sistema Linux!)
Luego compilamos e instalamos suPHP:
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make installAhora necesitamos crear el archivo de configuración /etc/suphp.conf. Podemos hacer esto simplemente copiando la plantilla que viene con las fuentes:
cp /tmp/suphp-0.6.1/doc/suphp.conf-example /etc/suphp.confDebemos hacer algunos cambios en /etc/suphp.conf. Establece el valor de webserver_user en www-data (este es el nombre de usuario del usuario de Apache en el paquete predeterminado de Apache de Debian), y para x-httpd-php debemos especificar nuestro binario php4-cgi que es /usr/bin/php4-cgi, así que el archivo final se ve así:
vi /etc/suphp.conf| [global] ;Ruta al archivo de registro logfile=/var/log/suphp.log ;Nivel de registro loglevel=info ;Usuario con el que se ejecuta Apache webserver_user=www-data ;Ruta en la que deben estar todos los scripts docroot=/ ;Ruta a chroot() antes de ejecutar el script ;chroot=/mychroot ; Opciones de seguridad allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Verificar si el script está dentro de DOCUMENT_ROOT check_vhost_docroot=true ;Enviar mensajes de error menores al navegador errors_to_browser=false ;Variable de entorno PATH env_path=/bin:/usr/bin ;Umask a establecer, especificar en notación octal umask=0077 ; UID mínimo min_uid=100 ; GID mínimo min_gid=100 [handlers] ;Controlador para scripts php x-httpd-php=php:/usr/bin/php4-cgi ;Controlador para scripts CGI x-suphp-cgi=execute:!self |
Luego tenemos que agregar el módulo suPHP a la configuración de Apache. Agrega la siguiente línea a /etc/apache2/httpd.conf:
vi /etc/apache2/httpd.conf| LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |
Luego reinicia Apache:
/etc/init.d/apache2 restart6 Configuración de Apache
En este capítulo asumo que tenemos un sitio web www.example.com en la dirección IP 1.2.3.4 con el documento raíz /var/www y la siguiente configuración de vhost:
| |
Para habilitar suPHP para el vhost www.example.com y permitir que ejecute scripts PHP como el usuario testuser y el grupo test, modificamos el vhost de la siguiente manera:
| |
AddHandler x-httpd-php se refiere a suPHP_AddHandler x-httpd-php que luego se refiere a la línea x-httpd-php en /etc/suphp.conf, lo que significa que los scripts con las extensiones .php, .php3, .php4 y .php5 son interpretados por /usr/bin/php4-cgi.
Reinicia Apache:
/etc/init.d/apache2 restartAhora creamos un simple script phpinfo() y lo accedemos en nuestro navegador:
vi /var/www/info.php| |
Ve a http://www.example.com/info.php en tu navegador, y deberías ver que tienes PHP4 en funcionamiento:

Si encuentras problemas, por favor revisa /var/log/suphp.log y /var/log/apache2/error.log en busca de errores. La mayoría de las veces puedes solucionarlos cambiando la opción apropiada en /etc/suphp.conf o cambiando los permisos de archivos/directorios.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.