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.