GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare lo stack LEMP su Debian 10 Buster Server/Desktop

Questo tutorial ti mostrerà come installare Nginx, MariaDB e PHP7.3 (stack LEMP) su Debian 10 Buster. Uno stack software è un insieme di strumenti software raggruppati insieme. LEMP sta per L inux, Nginx , M ariaDB/M ySQL e P HP, tutti open source e gratuiti. È uno stack software molto comune che alimenta siti Web dinamici e applicazioni Web. Linux è il sistema operativo; Nginx è il server web; MariaDB/MySQL è il server di database e PHP è il linguaggio di scripting lato server responsabile della generazione di pagine Web dinamiche.

Tutti e quattro i componenti sono gratuiti e open source. Tuttavia, poiché MySQL è ora di proprietà di Oracle e c'è la possibilità che Oracle lo trasformi in un prodotto closed-source, sceglieremo MariaDB invece di MySQL.

Prerequisiti per l'installazione dello stack LEMP su Debian 10 Buster

Per seguire questo tutorial, hai bisogno di un sistema operativo Debian 10 in esecuzione sul tuo computer locale o su un server remoto.

Se stai cercando un VPS (Virtual Private Server), puoi registrare un account su Vultr tramite questo link speciale per ottenere $ 50 di credito gratuito (solo per i nuovi utenti). E se devi configurare lo stack LEMP con un nome di dominio, ti consiglio di acquistare i nomi di dominio da NameCheap perché il prezzo è basso e offrono protezione della privacy di Whois gratuita per tutta la vita.

Si noti che è necessario disporre dei privilegi di root durante l'installazione del software su Debian. Puoi aggiungere sudo all'inizio di un comando, oppure usa su - comando per passare all'utente root.

Fase 1:aggiorna i pacchetti software

Prima di installare lo stack LEMP, è una buona idea aggiornare il repository e i pacchetti software. Esegui il seguente comando sul tuo sistema operativo Debian 10.

sudo apt update

sudo apt upgrade

Fase 2:installa Nginx Web Server su Debian 10

Nginx è un server web ad alte prestazioni e molto popolare in questi giorni. Può anche essere utilizzato come proxy inverso e server di memorizzazione nella cache. Immettere il comando seguente per installare il server Web Nginx.

sudo apt install nginx

Dopo l'installazione, Nginx dovrebbe essere avviato automaticamente. Controlla il suo stato con systemctl .

systemctl status nginx

Esempio di output:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago
     Docs: man:nginx(8)
 Main PID: 19713 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 4.6M
   CGroup: /system.slice/nginx.service
           ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─19714 nginx: worker process

Suggerimento:se il comando precedente non si chiude immediatamente, puoi premere il tasto Q per riprendere il controllo della finestra del terminale.

Se non è in esecuzione, usa systemctl per avviarlo.

sudo systemctl start nginx

È anche una buona idea consentire a Nginx di avviarsi automaticamente all'avvio.

sudo systemctl enable nginx

Controlla la versione di Nginx:

sudo nginx -v

Uscita:

nginx version: nginx/1.14.2

Ora digita l'indirizzo IP pubblico del tuo server Debian 10 nella barra degli indirizzi del browser. Dovresti vedere la pagina Web predefinita "Benvenuto in nginx", il che significa che il server Web Nginx funziona correttamente. Se stai installando LEMP sul tuo computer Debian 10 locale, dovresti digitare 127.0.0.1localhost nella barra degli indirizzi del browser.

Se la connessione viene rifiutata o non viene completata, potrebbe esserci un firewall che impedisce le richieste in arrivo alla porta TCP 80. Se stai utilizzando il firewall iptables, devi eseguire il comando seguente per aprire la porta TCP 80.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Se stai usando il firewall UFW, esegui questo comando per aprire la porta TCP 80.

sudo ufw allow http

Ora dobbiamo impostare www-data (utente Nginx) come proprietario della root del documento (nota anche come web root). Per impostazione predefinita è di proprietà dell'utente root. (Nota che Nginx per impostazione predefinita usa /usr/share/nginx/html/ come web root, mentre il web server Apache usa /var/www/html/ mentre eseguiamo il root.)

sudo chown www-data:www-data /usr/share/nginx/html/ -R

Fase 3:installa MariaDB Database Server su Debian 10

MariaDB è un sostituto drop-in di MySQL. Immettere il seguente comando per installarlo su Debian 10.

sudo apt install mariadb-server mariadb-client

Dopo l'installazione, il server MariaDB dovrebbe essere avviato automaticamente. Usa systemctl per verificarne lo stato.

systemctl status mariadb

Uscita:

● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20669 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 77.7M
   CGroup: /system.slice/mariadb.service
           └─20669 /usr/sbin/mysqld

Se non è in esecuzione, avvialo con questo comando:

sudo systemctl start mariadb

Per consentire a MariaDB di avviarsi automaticamente all'avvio, esegui

sudo systemctl enable mariadb

Ora esegui lo script di sicurezza post installazione.

sudo mysql_secure_installation

Quando ti chiede di inserire la password di root di MariaDB, premi il tasto Invio poiché la password di root non è ancora impostata. Quindi inserisci y per impostare la password di root per il server MariaDB.

Successivamente, puoi semplicemente premere Invio per rispondere a tutte le domande rimanenti. Ciò rimuoverà l'utente anonimo, disabiliterà l'accesso root remoto e rimuoverà il database di test. Questo passaggio è un requisito di base per la sicurezza del database MariaDB. (Nota che la lettera Y è in maiuscolo, il che significa che è la risposta predefinita.)

Per impostazione predefinita, il pacchetto MaraiDB su Debian utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare nome utente e password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.

sudo mariadb -u root

o

sudo mysql -u root

Per uscire, corri

exit;

Controlla le informazioni sulla versione del server MariaDB.

mariadb --version

Uscita:

mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Fase 4:installa PHP7.3 su Debian 10

Al momento in cui scrivo, PHP7.3 è l'ultima versione stabile di PHP e presenta un lieve miglioramento delle prestazioni rispetto alle versioni precedenti. Immettere il comando seguente per installare PHP7.3 e alcune estensioni PHP comuni dal repository Debian 10.

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Controlla le informazioni sulla versione PHP.

php --version

Uscita:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Ora avvia php7.3-fpm.

sudo systemctl start php7.3-fpm

Abilita l'avvio automatico all'avvio.

sudo systemctl enable php7.3-fpm

Verifica lo stato:

systemctl status php7.3-fpm

Passaggio 5:crea un blocco server Nginx

Un blocco server Nginx è come un host virtuale in Apache. Non useremo il blocco del server predefinito perché è inadeguato per eseguire il codice PHP e se lo modifichiamo, diventa un pasticcio. Quindi rimuovi il default collegamento simbolico in sites-enabled directory eseguendo il comando seguente. (È ancora disponibile come /etc/nginx/sites-available/default .)

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

Quindi crea un nuovo file di blocco del server in /etc/nginx/conf.d/ directory con un editor di testo a riga di comando, come Nano.

sudo nano /etc/nginx/conf.d/default.conf

Incolla il seguente testo nel file. Il seguente frammento di codice farà in modo che Nginx sia in ascolto sulla porta IPv4 80 e IPv6 sulla porta 80 con un nome di server catch-all.

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

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

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premere Invio per confermare. Per uscire, premi Ctrl+X .) Quindi testa le configurazioni di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx.

sudo systemctl reload nginx

Passaggio 6:prova PHP

Per testare gli script PHP con il server Nginx, dobbiamo creare un info.php file nella directory principale del Web.

sudo nano /usr/share/nginx/html/info.php

Incolla il seguente codice PHP nel file.

<?php phpinfo(); ?>

Salva e chiudi il file.

Ora nella barra degli indirizzi del browser, inserisci server-ip-address/info.php . Sostituisci sever-ip-address con il tuo IP effettivo. Se segui questo tutorial sul tuo computer locale, digita 127.0.0.1/info.phplocalhost/info.php .

Dovresti vedere le informazioni PHP del tuo server. Ciò significa che gli script PHP possono essere eseguiti correttamente con il server web Nginx. Puoi scoprire che Zend OPcache è abilitato.

Riavvio automatico di Nginx

Se per qualsiasi motivo il tuo processo Nginx viene interrotto, devi eseguire il comando seguente per riavviarlo.

sudo systemctl restart nginx

Invece di digitare manualmente questo comando, possiamo far riavviare automaticamente Nginx modificando il nginx.service unità di servizio systemd. Per sovrascrivere la configurazione del servizio systemd predefinita, creiamo una directory separata.

sudo mkdir -p /etc/systemd/system/nginx.service.d/

Quindi crea un file in questa directory.

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

Aggiungi le seguenti righe nel file, che farà riavviare automaticamente Nginx 5 secondi dopo il rilevamento di un errore.

[Service]
Restart=always
RestartSec=5s

Salva e chiudi il file. Quindi ricarica systemd.

sudo systemctl daemon-reload

Per verificare se funzionerebbe, uccidi Nginx con:

sudo pkill nginx

Quindi controlla lo stato di Nginx. Troverai Nginx riavviato automaticamente.

systemctl status nginx

Debian
  1. Come installare Spotify su Debian 10 Buster Linux Desktop

  2. Come configurare un server LEMP su Debian 10 Buster

  3. Come installare MySQL Server su Debian 10 Buster

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

  5. Come installare lo stack LEMP su Debian 10 Buster

Come installare WordPress con Stack LEMP su Debian 11 Bullseye

Come installare lo stack LEMP su Debian 11

Come installare un server minimo Debian 10 (Buster).

Come installare Nginx in Debian 7

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

Come installare lo stack LEMP su Rocky Linux 8