Cómo instalar el stack Nginx, MySQL, PHP v7 (LEMP) en CentOS 7

Nginx es un software de servidor web de código abierto en crecimiento y PHP v7 es la última versión del motor PHP. En este tutorial, lo usaremos para construir un servidor stack LEMP (Linux, ENginx, MySQL, PHP). Nginx reemplaza el popular paquete Apache que se encuentra en el stack LAMP.

Lo que necesitarás

Antes de comenzar con esta guía, necesitarás lo siguiente:

  • acceso root al VPS

Paso 1 – Instalar Nginx en CentOS 7

Como Nginx no está disponible en los repositorios CentOS por defecto, instalaremos el repositorio EPEL ejecutando este comando:

yum install epel-release -y

A continuación, instalaremos Nginx como tal:

yum install nginx -y

Una vez completada la instalación, habilita el inicio en el arranque de Nginx y ejecútalo:

systemctl start nginx
systemctl enable nginx

Para verificar si Nginx se está ejecutando, puedes visitar tu dirección IP a través del navegador. En primer lugar, identifica tu IP:

dig +short myip.opendns.com @resolver1.opendns.com

Luego, solo cópiala y pégala en el navegador y verás una página similar a esta:

nginx-default

Paso 2 – Instalar MySQL (MariaDB)

Una vez que el servidor web esté instalado, podemos continuar con la instalación de MySQL. MariaDB es una bifurcación (fork) de la comunidad del viejo y conocido servicio MySQL. Como MariaDB viene con repositorios CentOS predeterminados, podemos ejecutar Yum para instalarlo:

yum install mariadb-server mariadb -y

Después de terminar la instalación, habilita e inicia el servicio:

systemctl start mariadb
systemctl enable mariadb

Por último, ejecuta el script de configuración inicial que eliminará algunas de las configuraciones predeterminadas:

mysql_secure_installation

Sin embargo, MariaDB te pedirá la contraseña de root, pero como esta es la instalación inicial, no tienes ninguna, así que solo presiona ENTER. El siguiente mensaje te preguntará si quieres establecer una contraseña root, ingresa Y y sigue las instrucciones:

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorization.

New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
 ... Success!

Puedes presionar con seguridad la tecla ENTER y aceptar la configuración predeterminada para todas las demás preguntas. Después de completar la configuración, continúa con la instalación de PHP.

Paso 3 – Instalar PHP v7.1.0

Lo primero que haremos es instalar el repositorio de CentOS adicional que contiene los paquetes necesarios para PHP v7.1:

wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

Habilita el repositorio php71 que está deshabilitado de manera predeterminada:

yum install yum-utils -y
yum-config-manager --enable remi-php71

En segundo lugar, instala el paquete PHP:

yum --enablerepo=remi,remi-php71 install php-fpm php-common

Instala los módulos comunes, como CLIMongoDB, entre otros:

yum --enablerepo=remi,remi-php71 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Paso 4 – Configurar Nginx para que funcione con PHP 7

Crea un nuevo archivo de configuración de Nginx ejecutando vim o el editor de texto nano:

nano /etc/nginx/conf.d/default.conf

Ingresa este código:

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

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

Importante. Reemplaza your_server_ip con la IP real de tu servidor.

Guarda el archivo presionando CTRL + X (CMD + X para usuarios de Mac). Reinicia Nginx para que el cambio surta efecto:

systemctl restart nginx

Ahora, abre la configuración de PHP-FPM:

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

Encuentra y reemplaza estas líneas:

user = apache por user = nginx

group = apache por group = nginx

listen.owner = nobody por listen.owner = nginx

listen.group = nobody por listen.group = nginx

Y, por último, debajo de ;listen = 127.0.0.1:9000 agrega esta línea:

listen = /var/run/php-fpm/php-fpm.sock

Una vez más, guarda el archivo presionando CTRL + X. Y finalmente, inicia php-fpm y habilítalo en el arranque:

systemctl start php-fpm.service
systemctl enable php-fpm.service

Conclusión

Tal vez la instalación del stack LEMP requiera más configuraciones que la muy conocida configuración LAMP, pero puedes estar seguro de que estarás utilizando la última tecnología de ambos mundos: un paquete rápido de procesadores PHP-FPM v7 con servicio web moderno de Nginx. Eso es todo por ahora, no dudes en consultar otros tutoriales de VPS en nuestra página de tutoriales de VPS.

Author
El autor

Gustavo B.

Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.