GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare LEMP Stack Nginx, MySQL, PHP su Ubuntu 22.04

Come installare LEMP Stack Nginx, MySQL, PHP su Ubuntu 22.04. In questa guida imparerai come installare Nginx, MySQL 8.0 e PHP 8.1.

Installerai anche alcune estensioni PHP comuni e regolerai le configurazioni PHP. Infine proteggerai la tua configurazione con Let's Encrypt SSL e configurerai il reindirizzamento HTTPS.

Questa configurazione è stata testata su Google cloud, quindi funzionerà su tutti i servizi di hosting cloud come AWS, Azure o qualsiasi VPS o qualsiasi server dedicato che esegue Ubuntu 22.04.

Prerequisiti

  • Accesso root al tuo server o utente con privilegi sudo.
  • Dominio ha puntato all'IP del tuo server per installare Let'sEncrypt SSL

Fase 1:inizializzazione della configurazione

Inizia aggiornando i pacchetti all'ultima versione disponibile utilizzando il comando seguente.

sudo apt update
sudo apt upgrade

Dopo aver aggiornato la configurazione, puoi iniziare la configurazione.

Fase 2:installa Nignx

Installa Nginx usando il seguente comando.

sudo apt install nginx

Questo installerà nginx e tutte le dipendenze richieste.

Fase 3:imposta il firewall

Ora puoi configurare Uncomplicated Firewall (UFW) con Nginx per consentire l'accesso pubblico alle porte Web predefinite per HTTP e HTTPS

sudo ufw app list

Vedrai tutte le applicazioni elencate.

Output
Available applications:
   Nginx Full
   Nignx HTTP
   Nginx HTTPS
   OpenSSH
  • Nginx HTTP :Questo profilo apre la porta 80 (traffico web normale, non crittografato)
  • Nginx completo :Questo profilo apre entrambe le porte 80 (traffico web normale, non crittografato) e porta 443 (traffico crittografato TLS/SSL)
  • Nginx HTTPS :Questo profilo apre solo la porta 443 (traffico crittografato TLS/SSL)
  • OpenSSH :Questo profilo apre la porta 22 per l'accesso SSH.

Se non intendi utilizzare SSL devi abilitare solo il profilo HTTP Nginx.

Ora abiliteremo Nginx Full.

sudo uff allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Con questo comando puoi visualizzare lo stato di UFW.

sudo ufw status

Vedrai l'output come segue.

Output
Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 OpenSSH                    ALLOW       Anywhere                  
 Nginx Full (v6)            ALLOW       Anywhere (v6)             
 OpenSSH (v6)               ALLOW       Anywhere (v6)

Passaggio:4 Verifica installazione Nginx

Poiché abbiamo installato Nginx nel passaggio 2, dovrebbe essere avviato automaticamente ed essere già attivo e funzionante.

Ogni processo in Nginx è gestito con systemctl comando. Controlla lo stato di Nginx con il seguente comando.

sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 05:36:49 UTC; 44s ago
       Docs: man:nginx(8)
    Process: 10272 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCC>
    Process: 10273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 10274 (nginx)
      Tasks: 3 (limit: 1151)
     Memory: 5.3M
        CPU: 35ms
     CGroup: /system.slice/nginx.service

Ora abbiamo Nignx installato e configurato Firewall.

Passaggio 5:installa MySQL

In Ubuntu 22.04 MySQL 8 è incluso per impostazione predefinita nei repository Jammy Jellyfish, quindi puoi installarlo facilmente usando il apt install comando.

sudo apt install mysql-server

Una volta completata l'installazione, il servizio MySQL si avvierà automaticamente. Per verificare che il server MySQL sia in esecuzione, digita:

sudo service mysql status

L'output dovrebbe mostrare che il servizio è abilitato e in esecuzione:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 00:38:45 UTC; 11s ago
    Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
   Main PID: 13844 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1151)
     Memory: 351.4M
        CPU: 1.043s
     CGroup: /system.slice/mysql.service
             └─13844 /usr/sbin/mysqld

Controlla la versione di MySQl usando il comando seguente.

sudo mysql -V
Output
mysql  Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))

Passaggio 6:proteggi MySQL

L'installazione di MySQL include uno script chiamato mysql_secure_installation che ti consente di migliorare facilmente la sicurezza del server MySQL.

sudo mysql_secure_installation

Ti verrà chiesto di configurare il VALIDATE PASSWORD PLUGIN che viene utilizzato per testare la forza delle password degli utenti MySQL e migliorare la sicurezza.

Premi y se desideri impostare il plug-in di convalida della password o qualsiasi altra chiave per passare al passaggio successivo.

Esistono tre livelli di criteri di convalida delle password, basso, medio e forte.

Immettere 2 per la convalida della password complessa.

Al prompt successivo, ti verrà chiesto di impostare una password per l'utente root di MySQL.

Se imposti il ​​plug-in di convalida della password, lo script ti mostrerà la forza della tua nuova password. Digita y per confermare la password.

Successivamente, ti verrà chiesto di rimuovere l'utente anonimo, limitare l'accesso dell'utente root al computer locale, rimuovere il database di test e ricaricare le tabelle dei privilegi. Dovresti rispondere a y a tutte le domande.

Passaggio 7:installa PHP

Per impostazione predefinita, Ubuntu 22.04 ha l'ultimo repository PHP 8.1 aggiunto. Quindi puoi installare PHP usando il seguente comando.

sudo apt install php8.1-fpm php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

Una volta installato PHP, puoi verificare la versione utilizzando il seguente comando.

php -v
Output
PHP 8.1.5 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies

Fase 8:configura PHP

Ora configuriamo PHP per le applicazioni Web modificando alcuni valori in php.ini file.

Per PHP 8.1 con Nginx il php.ini la posizione sarà nella directory seguente.

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

Premi F6 per cercare all'interno dell'editor e aggiornare i seguenti valori per prestazioni migliori.

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

Dopo aver modificato le impostazioni PHP, è necessario riavviare il PHP-FPM affinché le modifiche abbiano effetto.

sudo service php8.1-fpm restart

Fase 9:configura Nginx

Disabilita la configurazione Nginx predefinita.

sudo rm -rf /etc/nginx/sites-enabled/default
sudo rm -rf /etc/nginx/sites-available/default

Crea directory di siti Web.

sudo mkdir -p /var/www/html/domainname/public

Imposta le autorizzazioni corrette.

sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname

Crea una nuova configurazione del blocco server.

sudo nano /etc/nginx/sites-available/domainname.conf

Incolla le seguenti configurazioni nel nuovo file.

server {
    listen 80;
    listen [::]:80;

    server_name yourdomainname.com www.yourdomainname.com;

    root /var/www/html/domainname/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

Abilita la nuova configurazione.

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

Passaggio 10:installa Let's Encrypt SSL

HTTPS è un protocollo per la comunicazione sicura tra un server (istanza) e un client (browser web). Grazie all'introduzione di Let's Encrypt, che fornisce certificati SSL gratuiti, HTTPS è adottato da tutti e fornisce anche fiducia al tuo pubblico.

sudo apt install python3-certbot-nginx

Ora abbiamo installato Certbot di Let's Encrypt per Ubuntu 22.04, esegui questo comando per ricevere i tuoi certificati.

sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

Questo comando installerà Free SSL, configurerà il reindirizzamento a HTTPS e riavvierà il server Nginx.

Fase 11:rinnovo del certificato SSL

I certificati forniti da Let's Encrypt sono validi solo per 90 giorni, quindi è necessario rinnovarli spesso. Quindi, testiamo la funzionalità di rinnovo utilizzando il seguente comando.

sudo certbot renew --dry-run

Questo comando verificherà la scadenza del certificato e configura la funzione di rinnovo automatico.

Fase:12:verifica la configurazione

Dopo aver eseguito i passaggi abili, puoi creare un nuovo file PHP di prova nella tua directory web.

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

Incolla il codice seguente all'interno del file.

<?php phpinfo();

Salva il file.

Ora vai avanti e controlla il tuo nome di dominio con il info.php nell'URL (domainname.com/info.php ).

Vedrai che il tuo dominio è stato reindirizzato a HTTPS e vedrai i dettagli delle informazioni PHP.

Potenzia la tua carriera di amministrazione Linux con un corso di formazione completato e ottieni il lavoro dei tuoi sogni.

Conclusione

Ora hai imparato come installare lo stack LEMP su Ubuntu 22.04 con Let'sEncrypt SSL.

Grazie per il tuo tempo. In caso di problemi o feedback, lasciare un commento qui sotto.


Linux
  1. Come installare lo stack LEMP (Nginx, MySQL, PHP v7) su CentOS 7

  2. Come installare Nginx con PHP e MySQL (stack LEMP) su Ubuntu 18.04

  3. Come installare LEMP su Ubuntu 18.04

  4. Come installare LEMP Stack Nginx, MySQL, PHP su Debian 11

  5. Come installare lo stack LEMP su Ubuntu 18.04

Come installare Nginx, MySQL, PHP (LEMP) su Arch Linux

Come installare Nginx, MySQL e PHP (LEMP) su un server Ubuntu 15.04

Come installare WordPress su uno stack Nginx LEMP utilizzando Ubuntu 14.04

Come installare LEMP (Linux, Nginx, MySQL, PHP) su un server cloud Ubuntu 14.04 LTS

Come installare lo stack Nginx, MySQL, PHP (LEMP) su un server cloud Debian 8.3

Come installare lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 16.04