Cómo instalar PHP en CentOS Stream 9

PHP es un lenguaje de programación del lado del servidor ampliamente utilizado, diseñado para el desarrollo web, pero también utilizado como lenguaje de programación de propósito general. Es particularmente preferido para crear sitios web dinámicos e interactivos. La instalación de las últimas versiones de PHP, como 8.3, 8.2 u 8.1, garantiza que tendrá acceso a las últimas funciones, mejoras de rendimiento y parches de seguridad. En CentOS Stream 9, puede instalar fácilmente estas versiones utilizando el repositorio Remi RPM, conocido por proporcionar paquetes PHP actualizados.

Esta guía lo guiará a través del proceso de habilitar el repositorio Remi e instalar las últimas versiones de PHP en CentOS Stream 9.

Importar Remi PHP RPM en CentOS

Actualización de CentOS Stream antes de la instalación de PHP

Es fundamental comenzar actualizando su sistema CentOS Stream para garantizar que todos los paquetes existentes estén actualizados. Este paso es esencial para la estabilidad y seguridad del sistema.

Abra su terminal y ejecute el siguiente comando para actualizar su sistema:

sudo dnf upgrade --refresh

Este comando actualiza su base de datos de paquetes y actualiza todos los paquetes instalados a sus últimas versiones disponibles.

Importación del repositorio Remi PHP RPM

El repositorio PHP de Remi es un repositorio de terceros que ofrece las últimas versiones de PHP. Antes de agregar el repositorio Remi, debe instalar el repositorio EPEL, que proporciona paquetes adicionales para Enterprise Linux.

En primer lugar, se recomienda habilitar el repositorio CodeReady Linux Builder (CRB), aunque es opcional. Proporciona bibliotecas y herramientas de desarrollo adicionales. Habilite CRB con:

sudo dnf config-manager --set-enabled crb

Después de habilitar CRB, instale el repositorio EPEL para EL9 usando:

sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm

Finalmente, importe el repositorio PHP de Remi para EL9:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

Habilitación del repositorio PHP Remi en CentOS Stream

Listado de módulos PHP disponibles

Antes de instalar PHP, es esencial identificar las versiones de PHP disponibles en el repositorio de Remi. Este paso le ayuda a tomar una decisión informada sobre qué versión instalar.

Utilice el siguiente comando para enumerar todos los módulos PHP:

dnf module list php

Este comando muestra todas las versiones de PHP disponibles en el repositorio de Remi. Es un paso crucial para asegurarse de elegir la versión que mejor se adapte a sus necesidades.

Importación de clave GPG para el repositorio de Remi

Cuando se le solicite, debe confirmar la importación de la clave GPG para el repositorio de Remi. Este paso es vital por razones de seguridad, ya que verifica la autenticidad de los paquetes que está a punto de instalar. Ingrese 'Y' cuando se le solicite continuar con la importación.

Activando su versión PHP deseada

Después de confirmar las versiones de PHP disponibles, puede habilitar la versión específica que se ajuste a sus necesidades. Es recomendable seleccionar una versión estable y bien soportada de PHP para sus proyectos.

Para habilitar una versión específica de PHP desde el repositorio de Remi, use los siguientes comandos:

sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y

Cada comando activa una versión diferente de PHP desde el repositorio de Remi. Elija el comando que corresponda a la versión que desea instalar. El indicador '-y' en estos comandos indica la confirmación automática de la instalación, lo que agiliza el proceso.

Instale PHP 8.3, 8.2 u 8.1 en CentOS Stream

Elegir el servidor web para la instalación de PHP

Seleccionar el servidor web apropiado es un paso clave en la configuración de PHP. CentOS Stream es compatible con Apache y Nginx, y cada uno requiere diferentes paquetes PHP.

Instalación PHP de Apache (httpd)

Para aquellos que usan Apache como servidor web, el siguiente comando instala PHP junto con la interfaz de línea de comandos (CLI) de PHP, que es esencial para ejecutar scripts PHP desde la línea de comandos:

sudo dnf install php php-cli -y

Instalación PHP de Nginx

Si está utilizando Nginx, necesitará instalar PHP FastCGI Process Manager (FPM) junto con PHP CLI. PHP-FPM es una implementación alternativa de PHP FastCGI que es altamente eficiente para sitios con mucho tráfico:

sudo dnf install php-fpm php-cli -y

Verificando la instalación de PHP

Después de la instalación, es importante confirmar que PHP esté instalado correctamente. Ejecute el siguiente comando para verificar la versión de PHP instalada:

php -v

Este comando muestra la versión actual de PHP, verificando la instalación exitosa.

Instalación de extensiones PHP comunes

Para mejorar la funcionalidad de PHP, es posible que necesite instalar extensiones adicionales. El siguiente comando instala extensiones PHP de uso común, que son vitales para diversas plataformas CMS y necesidades de desarrollo:

sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache

Es recomendable revisar y omitir cualquier extensión que no sea necesaria para su configuración.

Visualización de módulos PHP cargados

Para inspeccionar los módulos PHP actualmente cargados, ejecute:

php -m

Se recomienda monitorear y eliminar periódicamente los módulos innecesarios para mantener un rendimiento óptimo del sistema.

Instalación de la rama de desarrollo PHP

Para requisitos de desarrollo específicos, es posible que necesite la rama de desarrollo PHP. Instálalo con:

sudo dnf install php-devel

Nota: Esta instalación introduce múltiples dependencias. Continúe solo si hay una necesidad específica en su entorno de desarrollo PHP.

Agregar herramientas de desarrollo PHP

Para funciones de desarrollo avanzadas, incluida la depuración, instale herramientas adicionales usando:

sudo dnf install php-xdebug php-pcov

Estas herramientas son esenciales para la depuración y el análisis de cobertura de código en PHP, pero tenga cuidado con las dependencias adicionales que introducen.

Configuración del usuario Nginx para PHP-FPM en CentOS Stream

Edición de la configuración PHP-FPM para Nginx

En CentOS Stream, el usuario predeterminado para PHP-FPM está configurado en 'Apache', que no es compatible con las configuraciones de Nginx. Para optimizar PHP-FPM para Nginx, es necesario un cambio de configuración.

Accediendo a la configuración PHP-FPM

Comience abriendo el archivo de configuración PHP-FPM. Este archivo contiene configuraciones específicas sobre cómo PHP-FPM interactúa con su servidor web. Utilice el siguiente comando para editar el archivo www.conf:

sudo nano /etc/php-fpm.d/www.conf

Este comando inicia el editor de texto Nano con el archivo de configuración PHP-FPM.

Modificar la configuración de usuario y grupo

En el archivo de configuración, ubique las líneas que especifican el usuario y el grupo. De forma predeterminada, están configurados en 'Apache'. Cambie tanto el usuario como el grupo a 'Nginx' para alinear el servicio PHP-FPM con Nginx:

; Usuario/grupo de procesos Unix; Nota: El usuario es obligatorio. Si el grupo no está configurado, el grupo de usuarios predeterminado; será utilizado. ; RPM: apache eligió poder acceder a algún directorio como httpd usuario = nginx; RPM: mantenga un grupo con permiso para escribir en el directorio de registro. grupo = nginx

A continuación se muestran ejemplos visuales funcionales:

Guardar y salir del archivo de configuración

Después de realizar los cambios, guarde el archivo presionando CTRL+O y luego salga con CTRL+X. Esta acción guarda las modificaciones y cierra el editor Nano.

Reiniciar el servicio PHP-FPM

Para aplicar los cambios, reinicie el servicio PHP-FPM usando:

sudo systemctl restart php-fpm

Este comando garantiza que PHP-FPM comience a ejecutarse bajo el usuario y grupo de Nginx, lo que garantiza la compatibilidad y la seguridad mejorada para la configuración de su servidor web Nginx en CentOS Stream.

Ejemplo de código de bloque de servidor Nginx PHP-FPM

Configuración del bloque del servidor Nginx para procesamiento PHP

Para habilitar el procesamiento de PHP en Nginx en CentOS Stream, se debe modificar el bloque de servidor dentro del archivo de configuración de Nginx. El siguiente ejemplo demuestra la configuración necesaria para manejar archivos PHP. Esta configuración requiere especificar el bloque de ubicación de PHP.

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Este código garantiza que Nginx maneje correctamente los archivos PHP y los redirija al procesador PHP-FPM. Aquí hay un desglose rápido:

  • ubicación ~ .php$: esta directiva le dice a Nginx que aplique las siguientes reglas a cualquier archivo que termine en .php. La tilde ~ indica que se trata de una coincidencia de expresión regular.
  • try_files $uri =404: esta línea verifica si el archivo PHP existe en el URI especificado. Si no es así, Nginx devuelve un error 404. Esta es una medida de seguridad para evitar la ejecución de scripts no autorizados.
  • fastcgi_pass unix:/run/php-fpm/www.sock;: esta directiva especifica el socket donde escucha el servicio PHP-FPM. En este caso, Nginx pasa las solicitudes PHP al proceso PHP-FPM a través del socket /run/php-fpm/www.sock.
  • fastcgi_index index.php;: Esto establece index.php como el script predeterminado que se ejecutará cuando se acceda a un directorio.
  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: esta línea establece el parámetro SCRIPT_FILENAME, que es esencial para que PHP-FPM encuentre el archivo de script en el sistema de archivos. Combina la raíz del documento con el nombre del script.
  • incluir fastcgi_params;: Esto incluye los parámetros FastCGI predeterminados proporcionados por Nginx. Estas son configuraciones estándar necesarias para que PHP-FPM funcione correctamente.

Esta configuración garantiza que Nginx maneje correctamente las solicitudes PHP pasándolas al servicio PHP-FPM para su procesamiento, un paso crucial para ejecutar sitios web y aplicaciones basadas en PHP en un servidor Nginx.

Verificando la configuración de Nginx

Después de actualizar el bloque del servidor, verifique la configuración de Nginx para detectar errores de sintaxis con el siguiente comando:

sudo nginx -t

Salida de ejemplo que confirma una verificación de sintaxis exitosa:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Este paso garantiza que su configuración de Nginx esté libre de errores de sintaxis y lista para implementar.

Reiniciar el servicio Nginx

Para aplicar los cambios de configuración de PHP-FPM, reinicie el servicio Nginx:

sudo systemctl restart nginx

Este reinicio hace que los cambios sean efectivos, lo que permite a Nginx procesar archivos PHP utilizando la configuración de bloque del servidor actualizada.

Conclusión

Al instalar PHP a través del repositorio Remi RPM en CentOS Stream 9, se asegura de que su sistema esté equipado con las últimas versiones estables de PHP, incluidas 8.3, 8.2 y 8.1. Esta configuración le proporciona un rendimiento mejorado, acceso a las funciones más recientes y seguridad mejorada para sus aplicaciones web. La actualización periódica de PHP a través del repositorio de Remi mantendrá su sistema seguro y actualizado con los últimos desarrollos en PHP. Disfrute de la flexibilidad y el poder que ofrece PHP para crear y mantener aplicaciones web dinámicas.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario