GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.1) su Ubuntu 17.10

Questo tutorial ti mostrerà come installare Nginx, MariaDB e PHP7.1 (LEMP) su Ubuntu 17.10. Puoi seguire questo tutorial su un VPS (Virtual Private Server) o su un computer Ubuntu 17.10 locale. PHP7.1 è incluso in Ubuntu 17.10 e ha un lieve aumento delle prestazioni rispetto a PHP7.0.

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 Ubuntu 17.10.

sudo apt update

sudo apt upgrade

Fase 2:installa Nginx Web Server

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

sudo apt install nginx

Dopo l'installazione, possiamo abilitare Nginx all'avvio automatico all'avvio di Ubuntu eseguendo il comando seguente.

sudo systemctl enable nginx

Quindi avvia Nginx con questo comando:

sudo systemctl start nginx

Ora controlla il suo stato.

systemctl status nginx

Uscita:

● 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 Tue 2017-12-12 06:17:50 UTC; 51s ago
     Docs: man:nginx(8)
 Main PID: 15672 (nginx)
    Tasks: 2 (limit: 4915)
   Memory: 6.3M
      CPU: 37ms
   CGroup: /system.slice/nginx.service
           ├─15672 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─15675 nginx: worker process

"abilitato ” indica che l'avvio automatico all'avvio è abilitato e possiamo vedere che Nginx è in esecuzione. Si noti che il comando precedente non si chiuderà immediatamente dopo l'esecuzione. Devi premere "q ” per farlo uscire.

Controlla la versione di Nginx.

nginx -v

Uscita:

nginx version: nginx/1.12.1 (Ubuntu)

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

Infine, dobbiamo creare www-data (utente Nginx) come proprietario della directory principale web. Per impostazione predefinita è di proprietà dell'utente root.

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

Fase 3:installa il server di database MariaDB

MariaDB è un sostituto drop-in di MySQL. È stato sviluppato da ex membri del team MySQL preoccupati che Oracle possa trasformare MySQL in un prodotto closed-source. Immettere il seguente comando per installare MariaDB su Ubuntu 17.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 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:enabled) 
   Active: active (running) since Tue 2017-12-12 06:36:12 UTC; 6s ago
 Main PID: 17409 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   Memory: 59.9M
      CPU: 342ms
   CGroup: /system.slice/mariadb.service
           └─17409 /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 premere Invio per rispondere a tutte le domande rimanenti, che rimuoveranno l'utente anonimo, disabiliteranno l'accesso root remoto e rimuoveranno il database di test. Questo passaggio è un requisito di base per la sicurezza del database MariaDB. (Nota che Y è in maiuscolo, il che significa che premere Invio equivale a digitare Y. )

Per impostazione predefinita, il pacchetto MaraiDB su Ubuntu 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

Per uscire, corri

exit;

Controlla le informazioni sulla versione del server MariaDB.

mariadb --version

Come puoi vedere, abbiamo installato MariaDB 10.1.25.

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

Fase 4:installa PHP7.1

PHP7.1 è incluso nel repository di Ubuntu 17.10 e ha un lieve aumento delle prestazioni rispetto a PHP7.0. Immettere il comando seguente per installare PHP7.1 e alcune estensioni comuni.

sudo apt install php7.1 php7.1-fpm php7.1-mysql php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl

Le estensioni PHP sono comunemente necessarie per i sistemi di gestione dei contenuti (CMS) come WordPress. Ad esempio, se nella tua installazione manca php7.1-xml , alcune delle pagine del tuo sito WordPress potrebbero essere vuote e puoi trovare un errore nel registro degli errori di Nginx come:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

L'installazione di queste estensioni PHP assicura che il tuo CMS funzioni senza intoppi. Ora avvia php7.1-fpm.

sudo systemctl start php7.1-fpm

Abilita l'avvio automatico all'avvio.

sudo systemctl enable php7.1-fpm

Verifica lo stato:

systemctl status php7.1-fpm

Esempio di output:

● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset:enabled)
   Active: active (running) since Tue 2017-12-12 06:53:08 UTC; 4min 25s ago
     Docs: man:php-fpm7.1(8)
 Main PID: 27560 (php-fpm7.1)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 4915)
   Memory: 28.0M
      CPU: 58ms
   CGroup: /system.slice/php7.1-fpm.service
           ├─27560 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
           ├─27580 php-fpm: pool www
           └─27583 php-fpm: pool www

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.

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

Incolla il seguente testo nel file. Sostituisci 12.34.56.78 con l'indirizzo IP del tuo server effettivo.

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

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

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

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

  location ~ /\.ht {
    deny all;
  }
}

Salva e chiudi il file. 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 PHP-FPM con il server Web Nginx, dobbiamo creare un info.php file nella directory principale del documento.

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.

Come installare PHP7.2

PHP7.2 è l'ultima versione stabile di PHP, rilasciata il 30 novembre 2017 e ha un lieve aumento delle prestazioni rispetto a PHP7.1. Possiamo aggiungere il PPA di Ondrej Sury per installare PHP7.2 su Ubuntu 17.10. Quel ragazzo è anche il manutentore di Certbot PPA.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Quindi possiamo installare PHP7.2 e le estensioni comuni usando il seguente comando.

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Ora avvia PHP7.2-FPM.

sudo systemctl start php7.2-fpm

Abilita l'avvio automatico all'avvio del sistema.

sudo systemctl enable php7.2-fpm

Controlla il suo stato:

systemctl status php7.2-fpm

Utilizzo di PHP7.2-FPM con Nginx

Per fare in modo che Nginx utilizzi PHP7.2-FPM invece di PHP7.1-FPM, dobbiamo modificare il file di blocco del server Nginx.

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

Trova la riga seguente.

fastcgi_pass unix:/run/php/php7.1-fpm.sock;

Modifica php7.1-fpm a php7.2-fpm .

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Se aggiorni il server-ip-address/info.php pagina, vedrai che Nginx ora sta usando PHP7.2-FPM.

PHP7.1 può coesistere con PHP7.2. Se non vuoi usare PHP7.1, puoi rimuoverlo. Tieni presente che alcune applicazioni web potrebbero non essere compatibili con PHP7.2 come NextCloud 12. Nel mio test, WordPress funziona bene con PHP7.2.

Congratulazioni! Hai installato con successo Nginx, MariaDB e PHP7 su Ubuntu 17.10. Per la sicurezza del tuo server, dovresti eliminare ora il file info.php per evitare sguardi indiscreti.

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

Questo è tutto! Spero che questo tutorial ti abbia aiutato a installare lo stack LEMP su Ubuntu 17.10 . Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri suggerimenti e trucchi.


Ubuntu
  1. Come installare lo stack LEMP su Arch Linux

  2. Come installare Nginx, MariaDB, PHP (LEMP Stack) su Debian 11

  3. Come installare LEMP su Ubuntu 18.04

  4. Come installare Magento 2.4 con LEMP Stack su Ubuntu 20.04

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

Come installare LEMP su Ubuntu 15.10

Come installare LEMP su Ubuntu 16.04

Come installare lo stack LAMP su Ubuntu 17.10

Come installare lo stack LAMP su Ubuntu 18.04 LTS

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04 LTS?