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

13 dic 2020 4 min di lettura
Cómo instalar Linux Nginx MySQL PHP (LEMP) en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

LEMP incluye Nginx, MySQL, PHP.LEMP es un grupo de software de código abierto normalmente se instala junto a permitir que un servidor de páginas web dinámicas de acogida y Web.

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 está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando 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

Se il firewall di Ubuntu è attivo dovete abilitare il traffico per Nginx:

sudo ufw allow 'Nginx HTTP'

A questo punto il server è pronto con le configurazioni di default.
Basta collegarsi al proprio indirizzo IP pubblico oppure in localhost:

http://localhost

Per riavviare Nginx:

sudo service nginx restart

Per fermare Nginx:

sudo service nginx stop

Per avviare Nginx:

sudo service nginx start

Installare MySQL

È possibile installare MySQL utilizzando il repository ufficiale di Ubuntu con apt.
Installare MySQL:

sudo apt install mysql-server

Mettere in sicurezza MySQL

Avviare uno script di MySQL per modificare alcune impostazioni:

sudo mysql_secure_installation

Vi verrà chiesto di inserire una password per l'utente root, che utilizzerete per accedere al server MySQL.

Inserire "y" per "si" oppure qualsiasi altra lettera per "no".

Vi verrà chiesto se si vuole testare la sicurezza della password.

Successivamente è consigliato premere "y" quindi "si".

  • Rimuovere gli utenti anonimi
  • Disabilitare il login root da remoto
  • Rimuovere il database test
  • Aggiornare le nuove regole

Modificare il metodo di autenticazione

A partire dalla versione 5.7 di MySQL, l'utente root di MySQL è impostato per l'autenticazione tramite il plug-in auth_socket per impostazione di default anziché con una password.

Per utilizzare una password per connettersi a MySQL come utente root è necessario modificare il metodo di autenticazione, da auth_socket a mysql_native_password.

Poiché non è stata impostata ancora nessuna password, è possibile connettersi al server MySQL utilizzando semplicemente il comando mysql oppure sudo mysql se si è loggati come utente normale. Successivamente sarà necessario utilizzare il comando mysql -u root -p da utente root, altrimenti sudo mysql -u root -p da utente normale.

Quindi se siete loggati come utente root, scrivere nel terminale:

mysql

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql

Per verificare il metodo di autenticazione associato agli account di mysql:

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

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| 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)

Come potete vedere per l'utente root è impostato di default il metodo di autenticazione auth_socket.

Per utilizzare l'autenticazione con password per l'account root effettuare le seguenti modifiche:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Attenzione:
Potresti ricevere un messaggio di output simile al seguente: Your password does not satisfy the current policy requirements. Leggi questo tutorial per risolvere il problema.

Effettuare un refresh delle tabelle:

FLUSH PRIVILEGES;

Adesso è possibile verificare il nuovo metodo di autenticazione associato all'utente root:

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

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| 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)

Uscire dal prompt di MySQL:

exit;

Per effettuare nuovamente il login al server MySQL adesso sarà necessario inserire una password, quindi da terminale:

Se siete loggati come utente root, scrivere nel terminale:

mysql -u root -p

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql -u root -p

Installazione PHP

Per installare PHP da terminale:

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". Por lo tanto:

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 de ubicación ~ \ .php $ .

Realice los cambios necesarios agregando:

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

Por lo tanto:

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

Obtén 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

La instalación y configuración básica de un servidor web Nginx con MySQL y PHP en Ubuntu 18.04 LTS está completa.

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.