Cómo instalar Linux Nginx MySQL PHP (LEMP) en Ubuntu 20.04 LTS

1 mar 2021 4 min di lettura
Cómo instalar Linux Nginx MySQL PHP (LEMP) en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

LEMP es un grupo de software de código abierto que normalmente se instala junto para permitir que un servidor aloje sitios web y aplicaciones web dinámicos. LEMP incluye Nginx, MySQL, PHP.

En este tutorial instalaremos LEMP en Ubuntu 20.04 LTS Focal Fossa.

Si desea instalar LEMP en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Ahora está conectado a su servidor, está listo para comenzar la instalación de LEMP.

Instalación de Nginx

Los repositorios de paquetes oficiales de Ubuntu incluyen una versión actualizada de Nginx, luego podemos instalar los paquetes necesarios usando apt.

Actualice la lista de paquetes de Ubuntu para tener la última versión de las listas de repositorios, desde la terminal:

sudo apt update

Para instalar Nginx abre la terminal y da estos comandos:

sudo apt install nginx

Si el firewall de Ubuntu está activo, debe habilitar el tráfico para Nginx:

sudo ufw allow 'Nginx HTTP'

En este punto, el servidor está listo con las configuraciones predeterminadas. Simplemente conéctese a su dirección IP pública o localhost:

http://localhost

Para reiniciar Nginx:

sudo service nginx restart

Para detener Nginx:

sudo service nginx stop

Para iniciar Nginx:

sudo service nginx start

Instalar MySQL

Puede instalar MySQL usando el repositorio oficial de Ubuntu con apt. Instale MySQL:

sudo apt install mysql-server

Asegurar MySQL

Inicie un script MySQL para cambiar algunas configuraciones:

sudo mysql_secure_installation

Se le pedirá que ingrese una contraseña para el usuario root, que utilizará para iniciar sesión en el servidor MySQL.

Ingrese "y" para "sí" o cualquier otra letra para "no".

Se le preguntará si desea probar la seguridad de la contraseña.

Entonces se recomienda presionar "y" y luego "sí".

  • Eliminar usuarios anónimos
  • Deshabilitar el inicio de sesión de root de forma remota
  • Eliminar la base de datos de prueba
  • Actualizar las nuevas reglas

Cambiar el método de autenticación

A partir de la versión 5.7 de MySQL, el usuario raíz de MySQL está configurado para autenticarse a través del complemento auth_socket de forma predeterminada en lugar de una contraseña.

Para usar una contraseña para conectarse a MySQL como usuario root, necesita cambiar el método de autenticación, de auth_socket a mysql_native_password.

Como aún no se ha establecido una contraseña, puede conectarse al servidor MySQL simplemente usando el comando mysql o sudo mysql si ha iniciado sesión como usuario normal. A continuación, deberá usar el comando mysql -u root -p como root, de lo contrario sudo mysql -u root -p como usuario normal.

Entonces, si ha iniciado sesión como root, escriba en la terminal:

mysql

De lo contrario, si ha iniciado sesión como un usuario normal con privilegios de sudo:

sudo mysql

Para verificar el método de autenticación asociado con las cuentas mysql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Debería recibir un mensaje similar a este:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user | authentication_string | plugin | host |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$u3KbW* y@aUv+#3LNVNBBcGIT0Q2RfuDwKRUDgRa2wnAAFeL4m2I06vi/| caching_sha2_password | localhost |
 | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | root | | auth_socket | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)

Como puede ver, el método de autenticación auth_socket está configurado por defecto para el usuario root.

Para utilizar la autenticación de contraseña para la cuenta raíz, realice los siguientes cambios:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Atención:Your password does not satisfy the current policy requirements.este tutorial

Actualizar las tablas:

FLUSH PRIVILEGES;

Ahora puede verificar el nuevo método de autenticación asociado con el usuario raíz:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Debería recibir un mensaje similar a este:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | user | authentication_string | plugin | host |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 | debian-sys-maint | $A$005$u3KbW* y@aUv+#3LNVNBBcGIT0Q2RfuDwKRUDgRa2wnAAFeL4m2I06vi/| caching_sha2_password | localhost |
 | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
 | root | *13097EDBBF2AB852D55D47ED1477E2901F60DFE1 | mysql_native_password | localhost |
 +------------------+------------------------------------------------------------------------+-----------------------+-----------+
 5 rows in set (0.00 sec)

Salga del indicador de MySQL:

exit;

Para iniciar sesión nuevamente en el servidor MySQL ahora, deberá ingresar una contraseña, luego desde la terminal:

Si ha iniciado sesión como root, escriba en la terminal:

mysql -u root -p

De lo contrario, si ha iniciado sesión como un usuario normal con privilegios de sudo:

sudo mysql -u root -p

Instalar PHP

Para instalar PHP desde la terminal:

sudo apt install php-fpm php-mysql

ATENCIÓN: En el momento de escribir PHP 7.4 es la última versión, por lo que es posible que deba cambiar la ruta del archivo con la versión que está utilizando.

Para que la instalación de PHP sea más segura, escriba el siguiente comando:

sudo nano /etc/php/7.4/fpm/php.ini

Busque esta línea ; cgi.fix_pathinfo, elimine el ";" e inserte el parámetro "0". Entonces:

cgi.fix_pathinfo=0

Reinicie PHP:

sudo systemctl restart php7.4-fpm

Configure Nginx para usar PHP:

sudo nano /etc/nginx/sites-available/default

ATENCIÓN: En el momento de escribir PHP 7.4 es la última versión, por lo que es posible que deba cambiar la ruta del archivo a la versión que está usando dentro del bloque de ubicación ~ \.php $.

Realice los cambios necesarios agregando:

index.php
 location ~ \.php$
 fastcgi_pass unix:/var/run/php/php7.X-fpm.sock;

Entonces:

server {
 listen 80 default_server;
 listen [::]:80 default_server;
 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name server_domain_or_IP;
 location /{
 try_files $uri $uri/=404;
 }
 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
 }
 location ~ /\.ht {
 deny all;
 }
 }

Probemos la configuración correcta:

sudo nginx -t

Reinicie Nginx:

sudo service nginx restart

Revisemos la instalación de PHP. Creemos un archivo con la extensión.php:

sudo nano /var/www/html/info.php

Pega este código:

<?php phpinfo(); ?>

Guarde y cierre el archivo.

Conéctese a su dirección IP pública o localhost:

http://localhost/info.php

Conclusión

Ha finalizado la instalación y configuración básica de un servidor web Nginx con MySQL y PHP en Ubuntu 20.04 LTS.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.