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

27 feb 2021 4 min di lettura
Cómo instalar Linux Nginx MySQL PHP (LEMP) en Ubuntu 18.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 18.04 LTS.

Si su intención es instalar LEMP en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar LEMP en su computadora local, 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á la contraseña para la autenticación.

Para conectarse al servidor como root, escriba este comando:

ssh root@IP_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root.

Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

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

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 root 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, debe 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 |
 +------------------+-------------------------------------------+-----------------------+-----------+
 | root | | auth_socket | localhost |
 | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
 | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
 | debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
 +------------------+-------------------------------------------+-----------------------+-----------+
 4 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 |
 +------------------+-------------------------------------------+-----------------------+-----------+
 | root | *E6A3377941E640ADEDCC8907E390B06B0C863862 | mysql_native_password | localhost |
 | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
 | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
 | debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
 +------------------+-------------------------------------------+-----------------------+-----------+
 4 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

Instalación de PHP

Para instalar PHP desde la terminal:

sudo apt install php-fpm php-mysql

ATENCIÓN: En el momento de escribir PHP 7.2 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.2/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.2-fpm

Configure Nginx para usar PHP:

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

ATENCIÓN: En el momento de escribir PHP 7.2 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 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.2-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 18.04 LTS.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.