Para configurar PHP-FPM en Ubuntu 18.04 hacemos lo siguiente:
sudo apt install php7.2 php7.2-fpm
A continuación, comprobamos que se instaló el paquete correspondiente al FastCGI Process Manager, y que el servicio está ejecutándose:
sudo systemctl status php7.2-fpm
Si quisieramos instalar también la versión 5.6, sería necesario añadir el repositorio y, a continuación, instalar PHP 5.6:
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php5.6 php5.6-fpm
Para listar los módulos de PHP 5.6 que tenemos instalados, primero nos aseguramos de la versión que estamos consultando:
sudo update-alternatives --config php php -m
Para saber los nombres de los módulos de la versión 5.6 que deseamos instalar, obtenemos la lista así:
sudo apt-cache search php5-*
Configuración de Apache
A continuación habilitamos el módulo proxy_fcgi (y ninguno más es necesario):
sudo a2enmod proxy_fcgi
Seguidamente, configuramos nuestro host virtual para que utilice el proxy:
<VirtualHost *:80> ServerName php72.test.me DocumentRoot /var/www/php72 <Directory /var/www/php72> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <IfModule mod_proxy_fcgi.c> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/" </FilesMatch> </IfModule> </VirtualHost>
Nota: observe que usamos un handler para conectar los scripts php con el proxy. Lo hacemos así para evitar el uso del módulo fastcgi de Apache. Se pueden usar (eficientes) sockets a partir de la versión 2.4.10 de Apache.
Modificamos el archivo hosts, para incluir ahí el nombre del servidor:
sudo nano /etc/hosts 127.0.0.1 php72.test.me
Guardamos el archivo hosts.
Una vez que tenemos configurado el FPM, ya no vamos a necesitar el módulo PHP 7.2 de Apache (opcionalmente, es también posible desinstalar):
sudo a2dismod php7.2 sudo apt purge --auto-remove libapache2-mod-php7.2
Si deseamos conocer la lista de módulos instalados en Apache (habilitados o no), simplemente listamos:
ls -hals /usr/lib/apache2/modules
Para terminar, reiniciamos el Apache.
Para los amantes del saber: https://serverfault.com/questions/783173/differences-between-mod-fastcgi-and-mod-proxy-fcgi