PHP y Apache · 5 min read · Dec 27, 2025
Usando PHP5-FPM Con Apache 2.4 (+ módulo mod_proxy_fcgi) En Fedora 18
Usando PHP5-FPM Con Apache 2.4 (+ módulo mod_proxy_fcgi) En Fedora 18
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
Este tutorial muestra cómo puedes instalar un servidor web Apache 2.4 en un servidor Fedora 18 con soporte para PHP5 (a través de PHP-FPM) y MySQL. PHP-FPM (FastCGI Process Manager) es una implementación alternativa de PHP FastCGI con algunas características adicionales útiles para sitios de cualquier tamaño, especialmente sitios más concurridos. En Apache 2.4, necesitamos el módulo mod_proxy_fcgi de Apache para que funcione.
No emito ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
En este tutorial uso el nombre de host server1.example.com con la dirección IP 192.168.0.100. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.
2 Instalando MySQL 5
Para instalar MySQL, hacemos esto:
yum install mysql mysql-serverLuego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que el sistema arranca) y comenzamos el servidor MySQL:
systemctl enable mysqld.service
systemctl start mysqld.serviceEstablece contraseñas para la cuenta root de MySQL:
mysql_secure_installation[root@server1 ~]# mysql_secure_installation
NOTA: ¡SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MySQL EN USO DE PRODUCCIÓN! ¡LEA CUIDADOSAMENTE CADA PASO!
Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MySQL, y no has establecido la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.
Introduce la contraseña actual para root (presiona enter si no hay):
OK, contraseña utilizada con éxito, continuando…
Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MySQL sin la autorización adecuada.
¿Establecer contraseña de root? [Y/n] <– ENTER
Nueva contraseña: <– tucontraseñaderootsql
Reingresa nueva contraseña: <– tucontraseñaderootsql
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
… ¡Éxito!
Por defecto, una instalación de MySQL tiene un usuario anónimo, permitiendo que cualquiera inicie sesión en MySQL sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas, y para hacer que la instalación sea un poco más fluida. Debes eliminarlos antes de pasar a un entorno de producción.
¿Eliminar usuarios anónimos? [Y/n] <– ENTER
… ¡Éxito!
Normalmente, solo se debería permitir que root se conecte desde ‘localhost’. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <– ENTER
… ¡Éxito!
Por defecto, MySQL viene con una base de datos llamada ‘test’ a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debe ser eliminado antes de pasar a un entorno de producción.
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <– ENTER
- Eliminando base de datos de prueba…
… ¡Éxito! - Eliminando privilegios sobre la base de datos de prueba…
… ¡Éxito!
Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.
¿Recargar tablas de privilegios ahora? [Y/n] <– ENTER
… ¡Éxito!
Limpiando…
¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MySQL debería estar ahora segura.
¡Gracias por usar MySQL!
[root@server1 ~]#
3 Instalando Apache2
Apache2 está disponible como un paquete de Fedora, por lo tanto, podemos instalarlo así:
yum install httpdEsta es la versión 2.4 de Apache que no funciona con el módulo mod_fastcgi que se usaba en Apache 2.2 para PHP-FPM (ver Usando PHP5-FPM Con Apache2 En Fedora 17); por lo tanto, usaremos el módulo mod_proxy_fcgi.
Ahora configura tu sistema para iniciar Apache al arrancar…
systemctl enable httpd.service… y comienza Apache:
systemctl start httpd.serviceAhora dirígete a tu navegador a http://192.168.0.100, y deberías ver la página de marcador de posición de Apache2:

La raíz del documento predeterminada de Apache es /var/www/html en Fedora, y el archivo de configuración es /etc/httpd/conf/httpd.conf. Las configuraciones adicionales se almacenan en el directorio /etc/httpd/conf.d/.
4 Instalando PHP5
Podemos hacer que PHP5 funcione en Apache2 a través de PHP-FPM y el módulo mod_proxy_fcgi de Apache. El módulo mod_proxy_fcgi ya debería estar instalado y habilitado:
ls -l /usr/lib64/httpd/modules/mod_proxy*[root@server1 modules]# ls -l /usr/lib64/httpd/modules/mod_proxy*
-rwxr-xr-x 1 root root 52128 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ajp.so
-rwxr-xr-x 1 root root 39984 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_balancer.so
-rwxr-xr-x 1 root root 19400 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_connect.so
-rwxr-xr-x 1 root root 11192 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_express.so
-rwxr-xr-x 1 root root 19368 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fcgi.so
-rwxr-xr-x 1 root root 11152 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fdpass.so
-rwxr-xr-x 1 root root 44184 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ftp.so
-rwxr-xr-x 1 root root 39968 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_http.so
-rwxr-xr-x 1 root root 19464 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_scgi.so
-rwxr-xr-x 1 root root 98016 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy.so
[root@server1 modules]#cat /etc/httpd/conf.modules.d/00-proxy.conf| [...] # Este archivo configura todos los módulos proxy: LoadModule proxy_module modules/mod_proxy.so LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so [...] |
Podemos instalar PHP-FPM de la siguiente manera:
yum install php-fpmLuego abre /etc/php.ini:
vi /etc/php.iniPara evitar errores como
[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): No es seguro confiar en la configuración de la zona horaria del sistema. Se *requiere* que uses la configuración date.timezone o la función date_default_timezone_set(). En caso de que hayas usado alguno de esos métodos y aún estés recibiendo esta advertencia, probablemente escribiste mal el identificador de la zona horaria. Seleccionamos 'Europe/Berlin' para 'CEST/2.0/DST' en /usr/share/nginx/html/info.php en la línea 2… en /var/log/php-fpm/www-error.log cuando llamas a un script PHP en tu navegador, debes establecer date.timezone en /etc/php.ini:
| [...] [Date] ; Define la zona horaria predeterminada utilizada por las funciones de fecha ; http://php.net/date.timezone date.timezone = "Europe/Berlin" [...] |
Puedes averiguar la zona horaria correcta para tu sistema ejecutando:
cat /etc/sysconfig/clock[root@server1 ~]# cat /etc/sysconfig/clock
ZONE="Europe/Berlin"
[root@server1 ~]#A continuación, crea los enlaces de inicio del sistema para php-fpm y inícialo:
systemctl enable php-fpm.service
systemctl start php-fpm.servicePHP-FPM es un proceso daemon (con el script de inicio /etc/init.d/php-fpm) que ejecuta un servidor FastCGI en el puerto 9000.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.