Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 20.04 LTS

Instalar Nginx

Nginx (pronunciado ¬ęmotor x¬Ľ) es un servidor HTTP gratuito, de c√≥digo abierto y de alto rendimiento. Nginx es conocido por su alta velocidad, estabilidad, amplio conjunto de funciones, configuraci√≥n simple y bajo consumo de recursos. Este tutorial muestra c√≥mo puede instalar Nginx en un servidor Ubuntu 20.04 LTS con compatibilidad con PHP 7.4 (a trav√©s de PHP-FPM) y compatibilidad con MySQL (LEMP = Linux + Nginx (pronunciado ¬ęmotor x¬Ľ) + MySQL + PHP).

requisitos previos

  • Servidor Ubuntu 20.04 LTS
  • Privilegios de ra√≠z

¬ŅLo que haremos?

  • Instalar Nginx
  • Instalar MySQL
  • Instalar PHP-FPM
  • Configurar Nginx y PHP-FPM
  • Instalar PhpMyAdmin
  • Configurar PhpMyAdmin
  • Pruebas

Paso 1 – Instalar Nginx

Nginx o motor x es un servidor proxy y HTTP de alto rendimiento con bajo consumo de memoria. La mayoría de los sitios web a gran escala como Netflix, Pinterest, CloudFlare, GitHub utilizan Nginx.

En este paso, instalaremos el servidor web Nginx desde el repositorio de Ubuntu.

Actualice todos los repositorios en el sistema Ubuntu e instale los paquetes Nginx usando el comando apt a continuación.

sudo apt update
sudo apt install nginx

Una vez completada la instalación, inicie el servicio Nginx y permita que se inicie cada vez que se inicia el sistema.

systemctl start nginx
systemctl enable nginx

Ahora que se completó la instalación del servidor web Nginx, verifique el servicio Nginx usando el siguiente comando.

systemctl status nginx

A continuación se muestra el resultado que obtendrá.

Instalar Nginx

Adem√°s, verifique el puerto HTTP en el sistema Ubuntu y aseg√ļrese de que lo use el servicio Nginx.

ss -plt4

A continuación se muestra el resultado que obtendrá.

Comprobar puerto

Como resultado, el servicio Nginx utiliza el protocolo HTTP.

A continuación, aseguraremos nuestra instalación de Nginx usando el firewall UFW.

Agregue el protocolo HTTP y HTTPS a la configuración del firewall UFW usando el siguiente comando.

for fw in ssh http https
do
ufw allow $fw
done

Ahora habilite el firewall UFW y verifique su estado.

ufw enable
ufw status numbered

Y el protocolo HTTP y HTTPS se ha agregado a la configuración del firewall UFW.

Abra el puerto HTTP y HTTPS UFW Firewall

Paso 2 – Instalar MySQL

MySQL es el sistema de gesti√≥n de bases de datos relacionales (RDBMS) de c√≥digo abierto m√°s popular creado por Oracle Corporation. Es un componente central de LEMP Stack e instalaremos la √ļltima versi√≥n de MySQL desde el repositorio de Ubuntu.

Instale MySQL usando el comando apt a continuación.

sudo apt install mysql-server mysql-client

Una vez completada la instalación de MySQL, inicie el servicio MySQL y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl start mysql
systemctl enable mysql

Ahora verifique el servicio MySQL usando el siguiente comando.

systemctl status mysql

El servicio MySQL est√° en funcionamiento.

Instalar servidor MySQLAnuncio publicitario

A continuaci√≥n, configuraremos la contrase√Īa de root para el servidor MySQL.

Ejecute el comando ‘mysql_secure_installation’ a continuaci√≥n.

mysql_secure_installation

Ahora se le pedir√° la siguiente configuraci√≥n y aseg√ļrese de escribir su contrase√Īa segura para el usuario root de MySQL.

Press y|Y for Yes, any other key for No: Press Enter

New password:
Re-enter new password:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y


Y la contrase√Īa de root de MySQL ha sido configurada.

Como resultado, se completó la instalación y configuración de la base de datos MySQL en Ubuntu 20.04.

Paso 3: instalar y configurar PHP-FPM

PHP-FPM o FastCGI Process Manager es una alternativa para el antiguo PHP FastCGI que proporciona funciones adicionales y mejoras de velocidad. Se adapta bien a sitios peque√Īos o grandes basados ‚Äč‚Äčen el lenguaje de programaci√≥n PHP.

En este paso, instalaremos el PHP7.4-FPM predeterminado con algunas extensiones adicionales requeridas por PHPMyAdmin.

Instale PHP-FPM usando el siguiente comando.

sudo apt install php-fpm php-cli php-curl php-mysql php-curl php-gd php-mbstring php-pear -y

Una vez completada la instalaci√≥n de PHP-FPM, vaya al directorio ‘/etc/php/7.4/fpm’ y edite la configuraci√≥n de php.ini usando el editor vim.

cd /etc/php/7.4/fpm/
vim php.ini

Descomente la siguiente configuraci√≥n y cambie el valor a ‘0’.

cgi.fix_pathinfo = 0

Guardar y cerrar.

Ahora inicie el servicio PHP7.4-FPM y permita que se inicie cada vez que se inicia el sistema

systemctl start php7.4-fpm
systemctl enable php7.4-fpm

El servicio PHP-FPM está en funcionamiento, verifíquelo con el siguiente comando.

systemctl status php7.4-fpm

A continuación se muestra el resultado que obtendrá.

Instalar php-fpm

De forma predeterminada, PHP-FPM se ejecuta en el archivo sock, compruébelo con el comando ss a continuación.

ss -pl | grep php

A continuación se muestra la respuesta que obtendrá.

u_str   LISTEN   0     511   /run/php/php7.4-fpm.sock 67702   * 0

Y se completó la instalación de PHP-FPM 7.4 en Ubuntu 20.04.

Paso 4: configurar Nginx y PHP-FPM

En este paso, configuraremos el servidor web Nginx y PHP-FPM.

Vaya al directorio de configuraci√≥n ‘/etc/nginx’ y edite el archivo ‘nginx.conf’ usando vim o nano.

cd /etc/nginx/
vim nginx.conf

Descomente la siguiente línea para ocultar la versión de Nginx.

server_tokens off;

Guardar y cerrar.

A continuaci√≥n, edite la configuraci√≥n de host virtual ¬ępredeterminada¬Ľ en el directorio ¬ęsitios disponibles¬Ľ.

vim sites-available/default

Descomente la línea PHP que se muestra a continuación y cambie la línea del archivo sock.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

Guardar y cerrar.

Pruebe la configuraci√≥n de Nginx y aseg√ļrese de que no haya ning√ļn error, luego reinicie el servicio.

nginx -t
systemctl restart nginx

Como resultado, se completó la configuración de Nginx y PHP-FPM.

Configurar Nginx y PHP-FPM

Paso 5 – Instalar phpMyAdmin

PhpMyAdmin es una aplicación basada en PHP para administrar bases de datos MySQL o MariaDB desde un navegador web. En este paso, instalaremos y configuraremos PHPMyAdmin bajo la pila LEMP (Linux, Nginx, MySQL y PHP-FPM).

Instale PHPMyAdmin usando el comando apt a continuación.

sudo apt install phpmyadmin

Durante la instalación, le preguntará sobre la configuración del servidor web para phpmyadmin.

Elija ninguna opci√≥n y mueva el cursor a ‘OK‘.

Configurar servidor web para phpMyAdmin

Para la base de datos phpmyadmin y la configuraci√≥n del usuario, elija ‘S√≠‘.

Configurar la base de datos y el usuario de phpMyAdmin

Y escriba el nuevo administrador PHPMyAdmin ‘FUERTE’ como ‘[email¬†protected]#’.

Contrase√Īa de configuraci√≥n para la base de datos y el usuario de phpMyAdmin

Repite el ‘[email¬†protected]#’ clave.

Configurar servidor web para phpMyAdmin

Y se completó la instalación de phpMyAdmin en Ubuntu 20.04.

Paso 6: configure phpMyAdmin con Nginx y MySQL

Después de la instalación de phpmyadmin, debemos configurar phpmyadmin para que se ejecute en el servidor web Nginx y configurar el acceso de phpmyadmin del usuario de MySQL. Para ejecutar PHPMyAdmin en el servidor web Nginx, debemos agregar la configuración al archivo de configuración del host virtual.

Configurar phpMyAdmin con el servidor web Nginx

Ahora vaya al directorio de configuraci√≥n ‘/etc/nginx’ y edite el archivo de host virtual predeterminado.

cd /etc/nginx/sites-available/
vim default

Pegue la siguiente configuraci√≥n de Nginx para PHPMyAdmin dentro del corchete ‘servidor {…}’.

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;
location ~ ^/phpmyadmin/(doc|sql|setup)/ {
deny all;
}

location ~ /phpmyadmin/(.+\.php)$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
}

Guardar y Salir.

Pruebe la configuraci√≥n de nginx y aseg√ļrese de que no haya ning√ļn error, luego reinicie el servicio de nginx.

nginx -t
systemctl reload nginx

Y hemos agregado la configuraci√≥n de Nginx para nuestra instalaci√≥n de phpMyAdmin, se puede acceder a ella a trav√©s de la ruta URL como ‘http://server-ip/phpmyadmin’.

Configurar Nginx para phpMyAdmin

Permitir que el usuario de phpMyAdmin acceda a las bases de datos

Para este tutorial, usaremos usuarios de MySQL no root para PHPMyAdmin. Crearemos un nuevo usuario y otorgaremos todos los privilegios de todas las bases de datos dentro del servidor al usuario.

Inicie sesión en el shell de MySQL usando el siguiente comando.

mysql -u root -p

Ahora cree un nuevo usuario de MySQL ‘hakase’ y otorgue todos los privilegios de la base de datos.

create user [email protected]'localhost' identified by '[email protected]#';
grant all privileges on *.* to [email protected]'localhost';
flush privileges;

Ahora escriba ‘salir’ para cerrar sesi√≥n en el shell de MySQL.

exit

Como resultado, hemos creado un nuevo usuario de MySQL para phpMyAdmin.

Paso 7 – Prueba

En este paso, probaremos nuestra configuración de LEMP Stack y phpMyAdmin.

Probar archivo PHP

Vaya al directorio ‘/var/www/html’ y cree un nuevo archivo de script ‘info.php’ usando el editor vim.

cd /var/www/html
vim info.php

Pegue el siguiente script en él.

<?php
phpinfo();
?>

Guardar y cerrar.

A continuaci√≥n, abra su navegador web y escriba la direcci√≥n IP de su servidor siguiendo la ruta de su script ‘info.php’.

http://ip-del-servidor/info.php

A continuación se muestra el resultado que obtendrá.

phpinfo con pila LEMP

Como resultado, tenemos una configuración detallada de nuestro PHP-FPM 7.4 en el servidor Ubuntu 20.04 y el script PHP se ejecuta en nuestro servidor LEMP Stack.

Prueba phpMyAdmin

Para probar nuestra instalaci√≥n de phpMyAdmin, escriba la direcci√≥n IP de su servidor siguiendo la ruta ‘phpmyadmin’ en la URL.

http://ip-del-servidor/phpmyadmin/

Y obtendrá la página de inicio de sesión de phpMyAdmin.

Página de inicio de sesión de phpMyAdmin

Para iniciar sesi√≥n en phpMyAdmin, escriba el usuario que hemos creado en la parte superior. El usuario es ‘hakase’ con la contrase√Īa ‘[email¬†protected]#’, luego haga clic en ‘Vamos‘ bot√≥n.

Y obtendrá el panel de phpMyAdmin como se muestra a continuación.

Panel de control de phpMyAdmin

phpMyAdmin est√° trabajando bajo el entorno LEMP Stack.

Como resultado, la instalación y configuración de LEMP Stack en Ubuntu 20.04 se completó con éxito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *