Finalmente encontré un buen tutorial orientado a hacer precisamente esto. Voy a describir los pasos que tomé ya que tenía mi pila LAMP instalada, pero el tutorial completo se puede encontrar aquí .
Nota para lo nuevo:
En el tutorial, comienza cambiando al usuario raíz con:
sudo su
En mi caso, simplemente prefijo esos comandos en sudo
lugar de cambiar de usuario, por lo que documentaré mis pasos de esa manera.
Empezar
Paso uno: Instale el Apache Worker MPM (Módulos de procesamiento múltiple)
sudo apt-get install apache2-mpm-worker
Esto reemplaza el prefork que había instalado, que es el predeterminado al instalar Apache.
Paso 2: instale PHP5 y los módulos necesarios
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
En este punto, puede obtener un error al instalar 'libapache2-mod-fastcgi':
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Esta parte no está en el tutorial anterior
Para conciliar esto, el multiverse
repositorio debe agregarse a las fuentes apt.
Para hacer esto:
sudo nano /etc/apt/sources.list
A lo que adjunté las siguientes líneas:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
en este caso se refiere a mi versión de Ubuntu " Precise Pangolin ".
Así que ahora, guarde esos cambios y regrese a la terminal:
sudo apt-get update
y otra vez:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
que ahora (debería) funcionar.
Ahora habilite estos módulos de Apache:
sudo a2enmod actions fastcgi alias
reiniciar apache
sudo service apache2 restart
Paso 3: configuración de Apache
Para hacer que Apache funcione con PHP-FPM, necesitamos la siguiente configuración:
<IfModule mod_fastcgi.c>
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
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Nota:
Si está utilizando una versión anterior de Apache (2.3.xo anterior), omita la línea
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Puede verificar su versión instalada con el comando
apache2 -version
Puede ponerlo en la configuración global de Apache (por lo que está habilitado para todos los vhosts), por ejemplo en /etc/apache2/conf.d/php5-fpm.conf
(este archivo no existe, por lo que debe crearlo), o puede colocarlo en cada vhost que debería usar PHP-FPM.
Elijo ir a la ruta global, entonces:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
pegue en el bloque de código anterior y guarde, salga. Este nuevo archivo se cargará automáticamente mediante la configuración predeterminada de Apache que carga todos los archivos en el /etc/apache2/conf.d/
directorio.
reiniciar Apache:
sudo service apache2 restart
Ahora cree el siguiente archivo PHP en la raíz del documento /var/www
:
sudo nano /var/www/info.php
Añadir:
<?php phpinfo();
guardar la salida.
Ahora llamamos a ese archivo en un navegador (por ejemplo http://your-server-ip/info.php
)
En la API del servidor en la parte superior, debería ver FPM/FastCGI
.
¡Éxito!
Para obtener más información sobre cómo cambiar PHP-FPM para usar un socket Unix en lugar del puerto TCP predeterminado o cómo configurarlo para hosts virtuales individuales en lugar de todos ellos, consulte el tutorial de origen vinculado en la parte superior.