PHP, Apache · 4 min read · Jan 07, 2026

Usando PHP5-FPM Con Apache2 En Fedora 17

Usando PHP5-FPM Con Apache2 En Fedora 17

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Este tutorial muestra cómo puedes instalar un servidor web Apache2 en un servidor Fedora 17 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.

¡No garantizo que esto funcione para ti!

1 Nota Preliminar

En este tutorial utilizo 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 Habilitando Repositorios Adicionales

Necesitamos instalar mod_fastcgi más adelante, que está disponible en los repositorios de RPMforge. RPMforge se puede habilitar de la siguiente manera:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

cd /tmp
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

3 Instalando MySQL 5

Para instalar MySQL, hacemos esto:

yum install mysql mysql-server

Luego 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.service

Establecer 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 EN PRODUCCIÓN! ¡LEA CADA PASO CUIDADOSAMENTE!

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, se utilizó la contraseña correctamente, 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ñadeSQLroot
Reingresar nueva contraseña: <– tucontraseñadeSQLroot
¡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 en 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 ~]#

4 Instalando Apache2

Apache2 está disponible como un paquete de Fedora, por lo tanto, podemos instalarlo de esta manera:

yum install httpd

Ahora configura tu sistema para iniciar Apache al arrancar…

 systemctl enable httpd.service

… y comienza Apache:

 systemctl start httpd.service

Ahora 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 por defecto 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/.

5 Instalando PHP5

Podemos hacer que PHP5 funcione en Apache2 a través de PHP-FPM y el módulo mod_fastcgi de Apache que instalamos de la siguiente manera:

yum install mod_fastcgi php-fpm

Luego abre /etc/php.ini:

vi /etc/php.ini

Para evitar errores como

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /usr/share/nginx/html/info.php on line 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.service

PHP-FPM es un proceso daemon (con el script de inicio /etc/init.d/php-fpm) que ejecuta un servidor FastCGI en el puerto 9000.

A continuación, reinicia Apache:

systemctl restart httpd.service
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.