Instalar nginx + PHP 7.3 en CentOS 7

Hoy vamos a ver cómo instalar Ngnix, con la versión más reciente de PHP. PHP 7.3 la versión más reciente a fecha de publicación de este post. Antes que nada vamos a hacer sobre estos 2 protagonistas. Aunque si ya los conoces... Y has entrado a este post únicamente para saber cómo instalarlos, te animo que hagas scroll hasta el titular de Instalación paso a paso de Ngnix + PHP 7.3.

Sobre nginx

Nginx es bastante más que un servidor web veloz. Aunque es más conocido por ser un servidor web, también puede ser configurado como proxy inverso e incluso un proxy para protocolos de mail. Para nuestra fortuna, es software libre y el código esta disponible para quien quiera consultarlo, ya que es de código abierto, bajo Licencia BSD. Aunque también existe una versión comercial bastante más completa, llamada nginx plus.

Sobre PHP

PHP (del inglés PHP Hypertext Processor). Aunque inicialmente el nombre provenía de (Personal Home Page Tools). PHP es uno, de los diferentes lenguajes de programación Web, del lado del servidor. El código no es compilado, sino interpretado por un servidor web, con un módulo procesador de PHP. Además debido a su evolución, PHP puede ser ejecutado a través de una interfaz de línea de comandos.

Instalación paso a paso de ngnix + PHP 7.3

Ahora que ya sabemos ligeramente sobre estos 2 aliados, vamos a instalarlos y ponerlos a punto. Primero que todo vamos a necesitar tener instalado Centos 7, sobre nuestra VPS o servidor dedicado. Ahora que tenemos nuestro Centos 7 preparado... ¡Vamos a ello!  

Instalación de nginx

 

Primero que todo vamos a actualizar todos los paquetes instalados actualmente en nuestro Centos 7.

yum update -y

Instalamos el repositorio EPEL, para posteriormente instalar nginx.

yum install epel-release -y

Instalamos el paquete nginx.

yum -y install nginx

Arrancamos nuestro servidor nginx, ya instalado.

service nginx start

Vamos a habilitar el servicio nginx, para que arranque automáticamente al arrancar nuestro servidor Centos.

systemctl enable

Vamos a arrancar el servicio nginx.

systemctl start nginx

Toca comprobar el estado del servicio nginx.

systemctl status nginx
Que si hasta aquí lo hemos hecho correctamente, veremos el servicio como active (running):  

Vamos a habilitar las peticiones HTTP y HTTPS en nuestro firewall

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https

Vamos a "recargar" el firewall para aplicar las nuevas reglas añadidas

firewall-cmd --reload

Vamos a comprobar que el servidor nginx este funcionando

Para ello, vamos a abrir un navegador, vamos a introducir la IP de nuestro servidor. Y si hemos completado todos los pasos correctamente, deberíamos ver una pantalla similar a esta:  

Instalación de PHP 7.3

Lo primero es lo primero, así que vamos a instalar el repositorio de Remi.

yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Antes de pasar al siguiente paso, debemos activar la colección de utilidades de yum

yum install -y yum-utils --enablerepo="base"

Acto seguido, vamos a habilitar el repositorio de Remi, anteriormente instalado

yum-config-manager --enable remi-php73

Vamos a actualizar de nuevo, todos nuestros paquetes instalados.

yum update -y

Instalamos PHP 7.3, nuestro bien más preciado.

yum install -y php73

Vamos a instalar php73-php-fpm (PHP FastCGI Process Manager) conjuntamente con los módulos de PHP más utilizados

yum install -y php73-php-fpm php73-php-gd php73-php-json php73-php-mbstring php73-php-mysqlnd php73-php-xml php73-php-xmlrpc php73-php-opcache

Comprobamos la versión de PHP instalada

php73 -v
Si todo ha ido bien hasta este punto, deberías ver algo similar a esto:

PHP 7.3.4 (cli) (built: Apr  2 2019 13:48:50) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies

    with Zend OPcache v7.3.4, Copyright (c) 1999-2018, by Zend Technologies

 

Vamos a comprobar los módulos de PHP instalados en nuestro servidor

php73 --modules

Del mismo modo que hemos hecho con nginx... vamos a habilitar el servicio nginx en el arranque del sistema

systemctl enable php73-php-fpm.service

Arrancamos el servicio nginx

systemctl start php73-php-fpm.service

Comprovamos el estado del servicio nginx

systemctl status php73-php-fpm.service

Enlazar nginx con PHP7.3

Ahora viene lo más importante, vamos a "enlazar" nuestro servidor Web nginx, con PHP 7.3.

Vamos a comprobar que usuario del sistema, utiliza nuestro servidor nginx

egrep '^(user|group)' /etc/nginx/nginx.conf
Cuyo resultado será similar a este:

[root@bender ~]# egrep '^(user|group)' /etc/nginx/nginx.conf

user nginx;

Es decir, el usuario que estábamos buscando, en mi caso, y seguramente en el tuyo... es nginx.

Modificamos la configuración de nuestro PHP FPM, para definir el usuario Unix de procesos FPM

vi /etc/opt/remi/php73/php-fpm.d/www.conf
Quedando el fichero de configuración, de la siguiente manera:
...

; RPM: apache user chosen to provide access to the same directories as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

...

Reiniciamos el servicio PHP FPM para aplicar los cambios

systemctl restart php73-php-fpm.service

Ahora ya sólo nos queda acabar de realizar las últimas pinceladas en la configuración de nginx

Vamos a editar el fichero de configuración de nginx, para indicarle, que debe hacer con nuestros ficheros PHP. ¡Pasarlos por el interprete!
vi /etc/nginx/nginx.conf
La modificación se realizará dentro del aparatado "server" dentro del fichero de configuración. Quedando de esta manera, nuestra configuración.
server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    location ~ \.php$ {
            root /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }       

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

Acto seguido, reiniciaremos nuestro servicio nginx, para aplicar los cambios anteriormente realizados en nginx

service nginx restart

Vamos a crear un fichero PHP para comprobar que nginx es capaz de interpretarlo correctamente con la ayuda de PHP FPM

vi /usr/share/nginx/html/p.php

Cuyo contenido del fichero, os recomiendo que sea lanzar la instrucción phpinfo(); para poder comprobar la versión de PHP ejecutada, juntamente con los módulos activos.
<?php phpinfo();

Accederemos mediante nuestro navegador Web, a la dirección http://IP de nuestro servidor/p.php y si todo ha funcionado correctamente, ya tendremos funcionando nuestro servidor nginx juntamente con la última versión de PHP 7.3

 

Fecha: 07/04/2019

© Copyright 2025 Cristian Torrijos

Aviso Legal | Política de privacidad | Aviso de cookies

Aquest projecte ha rebut una subvenció per a l’autoocupació de joves inscrits al registre de Garantia Juvenil d’acord amb l’ORDRE TSF/181/2017, de 27 de juliol i convocatòria TSF/1688/2018, de 12 de juliol amb el finançament de: