PHP y Apache · 5 min read · Jan 09, 2026

Usando PHP5-FPM Con Apache2 En Ubuntu 12.04 LTS

Usando PHP5-FPM Con Apache2 En Ubuntu 12.04 LTS

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 Ubuntu 12.04 LTS con PHP5 (a través de PHP-FPM) y soporte para 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 para sitios más concurridos.

¡No emito ninguna garantía de 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.

Estoy ejecutando todos los pasos en este tutorial con privilegios de root, así que asegúrate de haber iniciado sesión como root:

sudo su

2 Instalando MySQL 5

Primero instalamos MySQL 5 de esta manera:

apt-get install mysql-server mysql-client

Se te pedirá que proporciones una contraseña para el usuario root de MySQL - esta contraseña es válida para el usuario root@localhost así como para [email protected], así que no tenemos que especificar una contraseña de root de MySQL manualmente más adelante:

Nueva contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql
Repetir contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql

3 Instalando Apache2

Apache2 está disponible como un paquete de Ubuntu. Necesitamos el paquete apache2-mpm-worker que podemos instalar de la siguiente manera:

apt-get install apache2-mpm-worker

Ahora dirige tu navegador a http://192.168.0.100, y deberías ver la página de marcador de posición de Apache2 (¡Funciona!):

La raíz del documento predeterminada de Apache es /var/www en Ubuntu, y el archivo de configuración es /etc/apache2/apache2.conf. Las configuraciones adicionales se almacenan en subdirectorios del directorio /etc/apache2 como /etc/apache2/mods-enabled (para módulos de Apache), /etc/apache2/sites-enabled (para hosts virtuales), y /etc/apache2/conf.d.

4 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:

apt-get install libapache2-mod-fastcgi php5-fpm php5

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

A continuación, habilita los siguientes módulos de Apache…

a2enmod actions fastcgi alias

… y reinicia Apache:

/etc/init.d/apache2 restart

5 Configurando Apache

Para hacer que Apache funcione con PHP-FPM, necesitamos la siguiente configuración:

| AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

(Para aprender más sobre la directiva FastCgiExternalServer, echa un vistazo a http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer.)

Puedes ponerlo en la configuración global de Apache (así está habilitado para todos los vhosts), por ejemplo en /etc/apache2/conf.d/php5-fpm.conf (este archivo no existe, así que debes crearlo), o puedes colocarlo en cada vhost que debería usar PHP-FPM. Quiero usar PHP-FPM con el vhost predeterminado, así que abro su archivo de configuración de vhost /etc/apache2/sites-available/default…

vi /etc/apache2/sites-available/default

… y pongo la siguiente sección en algún lugar entre :

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization [...] |

Reinicia Apache después:

/etc/init.d/apache2 restart

Ahora crea el siguiente archivo PHP en la raíz del documento /var/www:

vi /var/www/info.php

| |

Ahora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.0.100/info.php):

Como puedes ver, PHP5 está funcionando, y está funcionando a través de FPM/FastCGI, como se muestra en la línea de API del servidor. Si desplazas hacia abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL no está listado allí, lo que significa que aún no tenemos soporte para MySQL en PHP5.

6 Obteniendo Soporte para MySQL En PHP5

Para obtener soporte para MySQL en PHP, podemos instalar el paquete php5-mysql. Es una buena idea instalar algunos otros módulos de PHP5 también, ya que podrías necesitarlos para tus aplicaciones. Puedes buscar módulos de PHP5 disponibles de esta manera:

apt-cache search php5

Elige los que necesites e instálalos de esta manera:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Ahora recarga PHP-FPM:

/etc/init.d/php5-fpm reload

Ahora recarga http://192.168.0.100/info.php en tu navegador y desplázate hacia abajo a la sección de módulos nuevamente. Ahora deberías encontrar muchos nuevos módulos allí, incluido el módulo de MySQL:

7 phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL. Es una buena idea instalarlo:

apt-get install phpmyadmin

Verás las siguientes preguntas:

Servidor web para reconfigurar automáticamente: <– apache2
¿Configurar la base de datos para phpmyadmin con dbconfig-common? <– No

Después, puedes acceder a phpMyAdmin en http://192.168.0.100/phpmyadmin/:

8 Haciendo que PHP-FPM Use un Socket Unix

Por defecto, PHP-FPM está escuchando en el puerto 9000 en 127.0.0.1. También es posible hacer que PHP-FPM use un socket Unix, lo que evita la sobrecarga de TCP. Para hacer esto, abre /etc/php5/fpm/pool.d/www.conf…

vi /etc/php5/fpm/pool.d/www.conf

… y haz que la línea listen se vea como sigue:

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

Luego recarga PHP-FPM:

/etc/init.d/php5-fpm reload

A continuación, revisa tu configuración de Apache y todos tus vhosts y cambia la línea FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization a FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization, por ejemplo, así:

vi /etc/apache2/sites-available/default

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization [...] |

Finalmente, recarga Apache:

/etc/init.d/apache2 reload

9 Enlaces

Sobre El Autor

Falko Timme es el propietario de Timme Hosting (alojamiento web nginx ultra-rápido). Es el mantenedor principal de HowtoForge (desde 2005) y uno de los desarrolladores principales de ISPConfig (desde 2000). También ha contribuido al libro de O’Reilly “Administración del Sistema Linux”.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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