PHP es un lenguaje de scripting popular, gratuito y de código abierto que se utiliza principalmente para el desarrollo web. Por el momento, la versión actual de PHP (en el momento de escribir este tutorial) es PHP 7.3.14. Sin embargo, CentOS 7 viene con PHP 5.4 por defecto.
PHP 5.4 finalmente dejó de funcionar en septiembre de 2015 y ya no es compatible con las principales plataformas como WordPress, cPanel y WHM. Afortunadamente, ahora tenemos PHP 7 y el último, PHP 7.3, que es totalmente compatible con la mayoría de las aplicaciones.
En este tutorial, aprenderá cómo instalar PHP 7 en CentOS 7. Para ser más específico, aprenderá cómo instalar PHP 7.1, 7.2 y 7.3. A continuación, demostraremos cómo se puede integrar PHP 7 con Apache y servidores Nginx.
Prerrequisitos
Antes que nada, inicie sesión en su servidor como usuario habitual con sudo privilegios. Esta es la forma más recomendada en contraposición a ejecutar comandos como usuario root.
Habilitar el repositorio de Remi
El repositorio de Remi es un repositorio de terceros gratuito y popular que incluye los paquetes más recientes y de vanguardia que no están disponibles en su sistema CentOS 7.
El repositorio de Remi depende de EPEL (Paquetes adicionales para Enterprise Linux), por lo tanto, debe asegurarse de que tanto Remi como EPEL existan.
Por lo tanto, ejecute el siguiente comando para instalar EPEL usando el comando yum.
$ sudo yum install epel-release yum-utils
Para instalar Remi, ejecute el siguiente comando:
$ sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Con EPEL y Remi ya instalados, ahora procedamos e instalemos PHP 7 en CentOS 7.
Instale PHP 7.3 en CentOS 7
Comencemos instalando PHP 7.3, que es la última versión de PHP al momento de escribir esto. Esta es la última versión y se envía con los últimos sistemas de gestión de contenido, como WordPress y Joomla, y marcos como Laravel.
Paso 1: Habilite el repositorio PHP 7.3 Remi
Para habilitar el repositorio de PHP 7.3 Remi, ejecute el siguiente comando:
$ sudo yum-config-manager --enable remi-php73

Paso 2: Instale PHP 7.3 y los módulos asociados
Con php 7.3 Remi habilitado, ahora instale PHP 7.3 y sus módulos como se muestra:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

Una vez que se completa la instalación, puede verificar la versión de PHP usando el comando:
$ php -v

Instale PHP 7.2 en CentOS 7
Para la instalación de PHP 7.2 CentOS 7, asegúrese de seguir los pasos a continuación:
Paso 1: Habilite el repositorio de PHP 7.2 Remi
Como vimos antes, comience habilitando el repositorio Remi para PHP 7.2
$ sudo yum-config-manager --enable remi-php72

Paso 2: Instale PHP 7.2 y los módulos PHP asociados
A continuación, instale PHP 7.2 y los módulos asociados como se muestra:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

Cuando se le solicite importar el GPG, simplemente presione y y presione ENTER

Una vez que haya terminado con la instalación, verifique la versión de PHP usando el comando:
$ php -v

Instalar PHP 7.1 en CentOS 7
Finalmente, vamos a instalar PHP 7.1. Como vimos en las 2 versiones anteriores, siga los pasos a continuación:
Paso 1: Habilite el repositorio de PHP 7.1 Remi
Como vimos antes, comience habilitando el repositorio Remi para PHP 7.1
$ sudo yum-config-manager --enable remi-php71

Paso 2: Instale PHP 7.1 y sus módulos PHP asociados
Después de habilitar el repositorio Remi, proceda e instale PHP 7.1 usando el comando:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql

Cuando se le solicite la importación de la clave GPG, escriba y y presione ENTER

Para verificar la instalación, ejecute el comando:
$ php -v

Configure PHP 7.x para trabajar con el Apache Servidor web
Si Apache es su servidor web preferido, simplemente reinicie Apache servicio y el camino será suave para usted. No se necesitan configuraciones adicionales o complejas.
$ sudo systemctl restart httpd
Configure PHP 7.x para que funcione con el servidor web Nginx
a diferencia de Apache, La configuración de Nginx con PHP 7.x no es tan sencilla como crees. Nginx carece de soporte para procesar archivos PHP y, como tal, necesitamos instalar un conjunto adicional de paquetes llamado PHP FPM que procesará archivos PHP.
Para instalar el paquete PHP FPm, ejecute el comando:
$ sudo yum install php-fpm

Después de la instalación, diríjase al archivo de configuración ubicado en /etc/php-fpm.d/www.conf
Encontrará que hay un usuario llamado ‘apache’ escuchando el puerto 9000. Cambiaremos ese usuario a ‘nginx’ y luego ajustaremos las líneas como se muestra a continuación.
...
user = nginx
...
group = nginx
...
listen = /run/php-fpm/www.sock
...
listen.owner = nginx
listen.group = nginx
A continuación, establezca la propiedad correcta del archivo /var/lib/php
usando el comando chown como se muestra:
$ sudo chown -R root:nginx /var/lib/php
Luego habilite e inicie php-fpm como se muestra:
$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm

Verifique el estado ejecutando:
$ sudo systemctl status php-fpm

Si ha configurado su bloque Nginx, debe agregar las siguientes líneas de configuració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;
}
}
Y finalmente, reinicie su servidor web para que los cambios entren en vigencia.
$ sudo systemctl restart nginx
Conclusión
¡Y eso es todo, amigos! Hemos demostrado cómo puede instalar diferentes versiones de PHP 7 en CentOS 7 y, posteriormente, cómo puede configurar diferentes servidores web para procesar archivos PHP. Apache es bastante sencillo, pero debe prestar más atención al servidor web Nginx. Gracias por tu tiempo.