Cómo instalar PHP y PHP-FPM en Rocky Linux 9
José Rafael Gutierrez
hace 2 meses
Introducción
PHP (Hypertext Preprocessor) es un lenguaje de secuencias de comandos del lado del servidor de código abierto que permite desarrollar aplicaciones web dinámicas. PHP-FPM (FastCGI Process Manager) es una implementación de PHP FastCGI que permite procesar solicitudes de PHP usando configuraciones de grupos, con un rendimiento optimizado y tiempos de respuesta más rápidos.
Este artículo explica cómo instalar PHP y PHP-FPM en Rocky Linux 9, configurar el grupo predeterminado para permitir integraciones con otras aplicaciones como servidores web y ejecutar aplicaciones web dinámicas de ejemplo.
Requisitos previos
Antes de comenzar:
- Despliega una instancia de Rocky Linux 9 en Vultr.
- Accede al servidor usando SSH como usuario no root con privilegios sudo.
- Actualiza el servidor.
Instalar PHP
PHP está disponible en los repositorios predeterminados de Rocky Linux 9 con la versión más reciente. Sigue los pasos a continuación para instalar PHP y PHP-FPM utilizando el gestor de paquetes DNF predeterminado en tu servidor.
- Actualiza el índice de paquetes del servidor.
sudo dnf update -y
- Instala PHP.
sudo dnf install -y php
- Verifica la versión instalada de PHP en tu servidor.
php -v
Salida:
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
- Verifica la versión instalada de PHP-FPM y asegúrate de que coincida con tu versión de PHP.
php-fpm -v
Salida:
PHP 8.0.30 (fpm-fcgi) (built: Aug 3 2023 17:13:08)
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
Instalar extensiones de PHP
Las extensiones de PHP permiten funcionalidades adicionales e integraciones con características dinámicas requeridas por las aplicaciones web modernas. Sigue los pasos a continuación para instalar extensiones comunes de PHP necesarias para la mayoría de las aplicaciones web.
- Instala extensiones comunes de PHP.
sudo dnf install -y php-mysqlnd php-pgsql php-redis php-curl php-json php-gd php-xml php-mbstring php-zip
El comando anterior instala las siguientes extensiones:
- php-mysqlnd: Habilita la conexión e interacción de PHP con bases de datos MySQL.
- php-pgsql: Habilita la interacción de PHP con bases de datos PostgreSQL.
- php-redis: Permite que los scripts de PHP interactúen con bases de datos Redis.
- php-curl: Habilita a las aplicaciones PHP a realizar solicitudes a otros servidores o servicios HTTP.
- php-json: Proporciona funciones de manejo de JSON.
- php-gd: Habilita a PHP para crear y manipular imágenes.
- php-xml: Proporciona funciones para analizar y generar contenido XML en aplicaciones PHP.
- php-mbstring: Permite que PHP procese codificaciones multibyte.
- php-zip: Permite que PHP lea y modifique archivos ZIP.
- Verifica los módulos PHP instalados en tu servidor.
php -m
Salida:
[PHP Modules]
............
json
libxml
mbstring
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
readline
redis
Reflection
session
SimpleXML
..............
[Zend Modules]
Zend OPcache
Configurar PHP-FPM
PHP-FPM está disponible e incluido en el paquete PHP durante la instalación. PHP-FPM actúa como un intermediario para los procesos PHP y maneja múltiples solicitudes PHP según las configuraciones de tu grupo. Sigue los pasos a continuación para configurar el grupo predeterminado de PHP-FPM para procesar solicitudes según el rendimiento de tu servidor.
- Cambia al directorio de archivos de configuración de PHP-FPM.
cd /etc/php-fpm.d/
- Abre la configuración del grupo predeterminado de PHP-FPM
www.conf
.
sudo nano /etc/php-fpm.d/www.conf
- Verifica el nombre del grupo predeterminado
www
.
[www]
- Busca las directivas
user
ygroup
y cambia los valores para que PHP-FPM se ejecute con el mismo usuario que tu servidor web. Por ejemplo, cambia el valorapache
anginx
si estás usando Nginx.
user = nginx
group = nginx
- Verifica la ruta del socket UNIX de PHP-FPM en la directiva
listen
para conectar al grupo.
listen = /run/php-fpm/www.sock
- Ajusta la directiva
pm.max_children
según la memoria disponible en tu servidor.
pm.max_children = 50
- Descomenta la directiva
pm.max_requests
para definir cuántos procesos puede manejar cada hijo antes de ser terminado.
pm.max_requests = 500
Guarda y cierra el archivo.
- Habilita el servicio PHP-FPM para que inicie automáticamente al arrancar.
sudo systemctl enable php-fpm
- Inicia el servicio PHP-FPM.
sudo systemctl start php-fpm
- Verifica el estado del servicio PHP-FPM.
sudo systemctl status php-fpm
Probar PHP y PHP-FPM
PHP incluye un servidor web predeterminado que te permite ejecutar aplicaciones especificando una dirección de escucha. Sigue los pasos a continuación para configurar una aplicación PHP de ejemplo y usar la utilidad de servidor web incorporada en PHP para ejecutar la aplicación.
- Crea un nuevo directorio para almacenar los archivos de tu aplicación PHP, por ejemplo,
/var/www/php-test
.
sudo mkdir -p /var/www/php-test
- Crea un nuevo archivo de aplicación PHP de ejemplo
info.php
.
sudo nano /var/www/php-test/info.php
Agrega el siguiente contenido al archivo.
<?php
phpinfo();
?>
Guarda y cierra el archivo.
- Ejecuta el directorio de la aplicación utilizando la utilidad del servidor web PHP en el puerto HTTP 80.
php -S 0.0.0.0:80 -t /var/www/php-test &
Salida:
PHP 8.0.30 Development Server (http://0.0.0.0:80) started
- Permite conexiones al puerto HTTP 80 a través del firewall predeterminado
firewalld
.
sudo firewall-cmd --permanent --add-service=http
- Recarga la configuración del firewall para aplicar los cambios.
sudo firewall-cmd --reload
- Accede a la IP de tu servidor usando un navegador web y carga la ruta
/info.php
para ver la información de tu instalación PHP.
http://SERVER-IP/info.php
Instalar múltiples versiones de PHP
Si ejecutas varios proyectos PHP, puedes necesitar versiones específicas de PHP. Sigue los pasos a continuación para instalar phpbrew
y gestionar múltiples versiones de PHP.
- Instala los repositorios y dependencias necesarias y sigue instalando PHP versions como se describe en la documentación oficial.
Conclusión
Has instalado PHP y PHP-FPM en tu servidor Rocky Linux 9 para procesar eficientemente aplicaciones web dinámicas. Además, instalaste extensiones comunes y configuraste PHP-FPM para ajustarse a las necesidades de tu servidor. Para más información sobre la configuración de PHP-FPM, consulta la documentación oficial de PHP.