PHP es uno de los lenguajes de programación del lado del servidor más utilizados. Muchos CMS y frameworks populares, como WordPress, Magento y Laravel, están integrados en PHP.
En esta guía, analizaremos cómo instalar PHP 7.2, 7.3 o 7.4 en CentOS 8. Antes de elegir qué versión de PHP instalar, asegúrese de que sus aplicaciones la admitan.
También le mostraremos cómo integrar PHP con Nginx y Apache.
Instalando PHP en CentOS 8 #
CentOS 8 se distribuye con PHP 7.2. Esta versión es compatible con la mayoría de las aplicaciones PHP modernas, pero ya no se mantendrá activamente a partir de noviembre de 2019. Las versiones más nuevas de PHP están disponibles en el repositorio de Remi.
Habilitar el repositorio Remi #
Si va a instalar la versión estable de PHP 7.2 de la distribución, omita este paso. De lo contrario, si desea instalar PHP 7.3 o 7.4, habilite el repositorio de Remi ejecutando el siguiente comando como root o usuario con privilegios sudo:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
El comando anterior también habilitará el repositorio EPEL.
Una vez que se complete la instalación, ejecute el siguiente comando para obtener una lista de todas las versiones de PHP disponibles:
sudo dnf module list php
El resultado mostrará una lista de todos los módulos disponibles, incluidos los perfiles de flujo, versión e instalación asociados.
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
El módulo PHP predeterminado está configurado en PHP 7.2. Para instalar una versión más reciente de PHP, habilite la versión adecuada:
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Ahora está listo para instalar PHP en su servidor CentOS.
Instalar PHP #
El siguiente comando instalará PHP y algunos de los módulos PHP más comunes:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
FPM se instala como dependencia y se utiliza como servidor FastCGI. Inicie el servicio FPM y habilítelo para que se inicie automáticamente al arrancar:
sudo systemctl enable --now php-fpm
Configurando PHP para trabajar con Apache #
Si SELinux se está ejecutando en su sistema, deberá actualizar el contexto de seguridad de SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
Si está utilizando Apache como su servidor web, reinicie el httpd
servicio usando el siguiente comando, y está listo para comenzar:
sudo systemctl restart httpd
Configurar PHP para trabajar con Nginx #
De forma predeterminada, PHP FPM se ejecuta como usuario apache
. Para evitar problemas de permisos, cambiaremos el usuario a nginx
. Para hacerlo, edite las líneas resaltadas en amarillo:
sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf...
user = nginx
...
group = nginx
Asegúrese de que /var/lib/php
directorio tiene la propiedad correcta:
chown -R root:nginx /var/lib/php
Una vez hecho esto, reinicie el servicio PHP FPM:
sudo systemctl restart php-fpm
A continuación, edite la directiva de host virtual de Nginx y agregue el siguiente bloque de ubicación para que Nginx pueda procesar archivos PHP:
server {
# . . . other code
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;
}
}
Para que la nueva configuración surta efecto, reinicie el servicio Nginx:
sudo systemctl restart nginx
Actualice el contexto de seguridad de SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www