Configurar Apache con PHP-FPM y MPM_event en Ubuntu 18.04
Apache FastCGI con PHP-FPM es una de las mejores pilas para alojar aplicaciones PHP. Esta pila no es tan fácil como configurar una pila LAMP básica, pero es mucho mejor que la pila LAMP básica en lo que respecta al rendimiento. El ingrediente clave en esta pila es FPM, que significa Fast Process Manager. En esta pila, Apache enviará todos los archivos PHP para su procesamiento a FPM. Luego devolverá la salida renderizada al navegador.
Hoy vamos a configurar PHP-FPM (FastCGI Process Manager) para Apache en un abrir y cerrar de ojos. Es muy fácil. Partimos de la instalación Ubuntu Server limpia, pero la explicación también vale para cualquier otra distro basada en Debian.
Instalar Apache con FastCGI
Ejecute los siguientes comandos en su servidor para instalar Apache y FastCGI.
sudo apt-get update sudo apt-get install apache2
Ahora, podemos pasar a instalar PHP en nuestro servidor. Instalar PHP es la tarea más fácil de todas las tareas que tenemos que realizar.
Instalar PHP FPM
Instalaremos solo un puñado de extensiones PHP junto con PHP-FPM. Pero puede instalar tantas extensiones como desee según sus requisitos. Iremos con la versión 7.2 de PHP en esta guía, de nuevo, puede instalar la versión de PHP que funcione mejor para usted.
Ejecute los siguientes comandos para instalar PHP-FPM con otras extensiones PHP en su servidor.
sudo apt-get install php-fpm php7.2-fpm sudo apt-get install php7.2-mysql php7.2-mbstring php7.2-curl php7.2-dom
Una vez que se completa el proceso, PHP está listo para usar en nuestro servidor. Si desea instalar una versión diferente de PHP, simplemente reemplácela 7.2
con 7.X
. Por ejemplo, la sustitución 7.2
con 7.1
instalará PHP7.1 en su servidor.
Verifique la instalación ejecutando el comando dado a continuación.
php -v
Debería ver la versión de PHP junto con alguna otra información sobre su instalación de PHP como resultado del comando. Una vez que PHP está listo, ahora podemos configurar nuestro servidor web Apache para pasar solicitudes PHP a FPM.
Configurar Apache con PHP-FPM
En este momento, nuestro servidor web Apache y PHP-FPM están configurados y pueden funcionar individualmente. Pero todavía tenemos que decirle a nuestro servidor web Apache que pase las solicitudes de PHP al administrador de procesos rápido de PHP.
sudo a2enconf php7.2-fpm
Si ya teniamos instalado PHP, nos mandará el siguiente mensaje:
NOTICE: Not enabling PHP 7.2 FPM by default. NOTICE: To enable PHP 7.2 FPM in Apache2 do: NOTICE: a2enmod proxy_fcgi setenvif NOTICE: a2enconf php7.2-fpm NOTICE: You are seeing this message because you have apache2 package installed. Created symlink /etc/systemd/system/multi-user.target.wants/php7.2-fpm.service → /lib/systemd/system/php7.2-fpm.service.
Básicamente no está diciendo que necesitamos habilitar módulos y configuraciones en Apache. También crea un enlace al archivo de configuración básica, la cual la puede ver en el siguiente archivo:
sudo nano /etc/apache2/conf-available/php7.2-fpm.conf
Ahora, también tenemos que habilitar este archivo de configuración para que Apache pueda pasar archivos PHP para su procesamiento a Fast Process Manager. Ejecute los siguientes comandos para habilitar los módulos y el archivo de configuración.
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm sudo a2enmod actions alias
Y desactivamos los que no necesitamos:
sudo a2dismod php7.2 mpm_prefork
Súper importante, instala y activa el módulo mpm_event:
sudo apt-get install apache2-mpm-event
sudo a2enmod mpm_event
Finalmente reiniciamos Apache:
sudo service apache2 restart
Si no ve ningún problema al volver a cargar la configuración de Apache, ¡felicidades! La instalación de Apache ahora puede funcionar con Fast Process Manager para manejar los archivos PHP.
Personalizar parámetros de PHP
En Apache, php.ini
generalmente se encuentra en /etc/php/7.2/apache2/php.ini
. Sustituir 7.2
con su propia versión.
Para editar:
sudo nano /etc/php/7.2/apache2/php.ini
Sin embargo, si está utilizando PHP FPM, puede estar ubicado en /etc/php/7.2/fpm/php.ini
. Sustituir 7.2
con su propia versión.
Para editar:
sudo nano /etc/php/7.2/fpm/php.ini
Para guardar el archivo y salir, presione CTRL
+ X
, presione Y
y luego presione ENTER
Debe reiniciar Apache después de la modificación php.ini
.
sudo systemctl restart apache2
Si está utilizando PHP-FPM, debe reiniciar ese servicio. Sustituir php7.2
con su propia versión.
sudo service php7.2-fpm restart
Referencias:
https://www.interserver.net/tips/kb/apache-php-fpm-ubuntu-18-04/
https://programarivm.com/superrapido-configurar-apache-con-php-fpm-y-mpm-event-en-ubuntu-server/
https://www.woktron.com/secure/knowledgebase/133/How-to-optimize-Apache-performance.html