Cómo instalar PHP-FPM con Apache en Ubuntu 22.04. Hay dos opciones distintas para ejecutar PHP utilizando el servidor web. Uno está usando el CGI de PHP y el otro es FPM. FPM es un administrador de procesos para administrar FastCGI en PHP. Apache se envía con mod_php por defecto y funciona con todos los principales servidores web. Con mod_php hay un pequeño problema de rendimiento porque bloquea el proceso.
En esta guía, aprenderá cómo configurar PHP 8.1-FPM y configurarlo con Apache y también configurar variables de PHP.
Esta configuración también se puede realizar en otros VPS o máquinas virtuales dedicadas o en la nube. Esta configuración se prueba en Google Compute Engine, pero funciona en cualquier distribución Ubuntu o Debian Linux.
Primeros pasos
Asegúrese de que su servidor Ubuntu tenga los últimos paquetes ejecutando el siguiente comando.
sudo apt update
sudo apt upgrade
Esto actualizará el índice de paquetes y actualizará los paquetes instalados a la última versión.
Paso 1:Instalar PHP 8.1 FPM
De forma predeterminada, Ubuntu 22.04 tiene agregado el último repositorio de PHP 8.1. Entonces puedes instalar PHP usando el siguiente comando.
sudo apt install php8.1-fpm php8.1 libapache2-mod-php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y
Espere a que se complete la instalación.
Una vez que se complete la instalación, verifique la instalación con el siguiente comando.
sudo service php8.1-fpm status
Recibirá un resultado similar al siguiente.
Output
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-05-08 05:42:31 UTC; 2min ago
Docs: man:php-fpm8.1(8)
Process: 564 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.s>
... Paso 2:Instalar Apache
Una vez que tenga PHP-FPM en funcionamiento, puede instalar el servidor web Apache.
sudo apt install apache2
Verifique la versión de Apache usando el siguiente comando
sudo apachectl -v
Output Server version: Apache/2.4.52 (Ubuntu) Server built: 2022-03-25T00:35:40
Cada proceso en Apache se gestiona con el systemctl dominio. Verifique el estado de Apache con el siguiente comando.
sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-05-08 05:45:29 UTC; 1min 47s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 12782 (apache2)
Tasks: 55 (limit: 1151)
Memory: 5.1M
CPU: 52ms
CGroup: /system.slice/apache2.service
├─12782 /usr/sbin/apache2 -k start
├─12784 /usr/sbin/apache2 -k start
└─12785 /usr/sbin/apache2 -k start Paso 3:Configurar Apache con PHP-FPM
Por defecto, Apache usará mod_php ahora puede configurar Apache para usar PHP-FPM.
Deshabilite la configuración predeterminada de Apache vhost.
sudo a2dissite 000-default
Habilitar módulo de eventos de Apache
Deshabilite cualquier módulo de preforma predeterminado para cualquier versión de PHP existente.
sudo a2dismod php7.4
Deshabilite el módulo Apache Prefork.
sudo a2dismod mpm_prefork
Habilitar el módulo de eventos de Apache.
sudo a2enmod mpm_event proxy_fcgi setenvif
Habilitar configuración PHP FPM
Ahora puede habilitar la configuración de PHP-FPM.
sudo a2enconf php8.1-fpm
Habilitar HTTP2
Si necesita compatibilidad con HTTP 2, también puede habilitarla.
sudo a2enmod http2
Ahora Apache está configurado con PHP FPM.
Paso 4:Configurar PHP-FPM
Ahora configuramos PHP para Aplicaciones Web cambiando algunos valores en php.ini archivo.
Para PHP 8.1 con Nginx el php.ini la ubicación estará en el siguiente directorio.
sudo nano /etc/php/8.1/fpm/php.ini
Presiona F6 para buscar dentro del editor y actualizar los siguientes valores para un mejor rendimiento.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Una vez que haya modificado la configuración de PHP, debe reiniciar su PHP-FPM para que los cambios surtan efecto.
sudo service php8.1-fpm restart
Paso 5:Configurar servidores virtuales de Apache
Cree una nueva configuración de Apache vhost.
sudo nano /etc/apache2/sites-available/domain.conf
Pegue la siguiente configuración en el archivo.
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
Protocols h2 http/1.1
DocumentRoot /var/www/html/domain/public
<Directory /var/www/html/domain/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Presiona CTRL + X seguido de Y y Enter para guardar y salir del archivo.
Ahora puede habilitar la nueva configuración de Apache.
sudo a2ensite domain.conf
Reinicie Apache.
sudo service apache2 restart
Paso 6:Verificar PHP-FPM con Apache
Aquí hemos configurado /var/www/html/domain/public como raíz web en la configuración de Apache. Entonces ahora puede navegar a ese directorio y crear un phpinfo archivo para comprobar la configuración.
cd /var/www/html/domain/public
sudo nano info.php
Pegue lo siguiente.
<?php phpinfo();
Presiona CTRL + X seguido de Y y Enter para guardar y salir del archivo.
Ahora vaya a su navegador y diríjalo a la dirección IP de su servidor o nombre de dominio seguido del info.php . Entonces su dirección se verá así http://domain.com/info.php
Verá la página de información de PHP y confirmará que PHP-FPM se usa con Apache.
Prepárese para un puesto de trabajo como profesional de tecnología de la información con sistema operativo Linux
Conclusión
Ahora ha aprendido cómo instalar PHP 8.1-FPM con Apache y configurar PHP en Ubuntu 22.04. También ha aprendido a configurar grupos de PHP-FPM para múltiples usuarios.