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 ‘‘.

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 *