Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en Ubuntu 20.04 LTS
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á.
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á.
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.
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.
Anuncio 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á.
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.
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‘.
Para la base de datos phpmyadmin y la configuración del usuario, elija ‘Sí‘.
Y escriba el nuevo administrador PHPMyAdmin ‘FUERTE’ como ‘[email protected]#’.
Repite el ‘[email protected]#’ clave.
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’.
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á.
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.
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.
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.