Ricerca nel sito web

Installa lo stack LEMP (Nginx, MariaDB, PHP) su CentOS7 passo dopo passo


LEMP sta per Linux, Nginx (pronunciato motore X), MySQL/MariaDB e PHP. Consente a un server di ospitare siti Web dinamici e app Web. In questo tutorial ti mostrerò come installare lo stack LEMP sul server CentOS 7. Scelgo di installare MariaDB come server database invece di MySQL.

Installa Nginx su CentOS7 da EPEL

Nginx è un server web veloce rispetto ad Apache e sta diventando sempre più popolare al giorno d'oggi. Per installare Nginx su CentOS 7, dobbiamo aggiungere il repository EPEL utilizzando il seguente comando. EPEL sta per Pacchetti Extra per Enterprise Linux.

sudo yum install epel-release -y

Digita la tua password. Ora che il repository è stato aggiunto, è il momento di installare Nginx:

sudo yum install nginx -y

Dopo aver installato Nginx, dobbiamo avviarlo.

sudo systemctl start nginx

Abilita Nginx per l'avvio all'avvio del sistema.

sudo systemctl enable nginx

Controlla se è in esecuzione:

systemctl status nginx

Output di esempio:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:36:31 UTC; 1min 19s ago
 Main PID: 13692 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13692 nginx: master process /usr/sbin/nginx
           └─13693 nginx: worker process

Controlla la versione di Nginx:

[linux-terminal@centos7 ~]$ nginx -v
nginx version: nginx/1.12.2

Digita l'indirizzo IP del tuo server nel tuo browser web, se vedi quanto segue, allora Nginx è installato correttamente.

Puoi trovare l'indirizzo IP pubblico del tuo server utilizzando il seguente comando:

ip address

O

curl http://icanhazip.com

Il firewall del tuo server potrebbe aver disabilitato l'accesso pubblico alla porta 80. Per consentire l'accesso pubblico, diciamo a iptables firewall di accettare il traffico verso la porta 80 con il seguente comando.

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

Ora il tuo server può ospitare file html statici, ma per poter server un sito web dinamico, dobbiamo installare MariaDB e PHP.

Installa MariaDB su CentOS 7

MariaDB è un sostituto immediato di MySQL. Installalo usando il seguente comando:

sudo yum install mariadb-server mariadb -y

Dopo averlo installato, dobbiamo avviarlo.

sudo systemctl start mariadb

Abilita MariaDB per l'avvio all'avvio del sistema.

sudo systemctl enable mariadb

Controllare lo stato:

systemctl status mariadb

uscite:

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:48:46 UTC; 23s ago
 Main PID: 13970 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

Controlla la versione:

[linux-terminal@centos7 ~]$ mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Ora dobbiamo eseguire lo script di sicurezza.

sudo mysql_secure_installation

Quando lo script ti chiede la password di root corrente, lascialo vuoto e premi invio. Quindi inserisci Y e imposta una password di root.

Dopo aver impostato la password di root, puoi semplicemente premere Invio per rispondere a tutte le altre domande. (Nota che la lettera Y è maiuscola, il che significa che è la risposta predefinita.)

Passiamo ora alla parte PHP.

Installa PHP-FPM su CentOS7

Installa PHP e i relativi pacchetti utilizzando il seguente comando:

sudo yum install php php-mysql php-fpm php-gd php-xml php-mbstring -y

Ora modifica il file di configurazione php-fpm:

sudo nano /etc/php-fpm.d/www.conf

Trova la seguente riga:

listen = 127.0.0.1:9000

cambialo in questo:

listen = /var/run/php-fpm/php-fpm.sock

quindi trovare le seguenti due righe:

;listen.owner = nobody
;listen.group = nobody

rimuovere il punto e virgola precedente. Infine, modifica il valore dell'utente e del gruppo da "apache" a "nginx":

user = nginx
group = nginx

Una volta salvato e chiuso il file, avvia il processore PHP:

sudo systemctl start php-fpm

Successivamente, abilita php-fpm per l'avvio all'avvio del sistema.

sudo systemctl enable php-fpm

Configura l'host virtuale Nginx

Crea un nuovo file host virtuale nella directory /etc/nginx/conf.d

sudo nano /etc/nginx/conf.d/example.com.conf

Aggiungi le seguenti righe. Sostituisci www.example.com ed example.com con il tuo dominio. Non dimenticare di impostare il record A per il tuo nome di dominio.

server {
  listen 80;
  server_name www.example.com example.com;
  root /usr/share/nginx/html;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ /index.php$query_string;
  }
  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Salva e chiudi il file. quindi ricarica nginx:

sudo systemctl reload nginx

È possibile aggiungere ulteriori file host virtuali per ospitare più siti Web su un singolo server.

Testare l'elaborazione PHP

Crea un file info.php nella directory principale del web:

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

Inserisci il seguente testo nel file

<?php phpinfo(); ?>

Salvalo e chiudilo. Quindi visita il file appena creato digitando quanto segue nel tuo browser:

http://example.com/info.php

O

your ip address/info.php

Se vedi qualcosa come nello screenshot seguente, il tuo PHP funziona correttamente.

Questo file è solo a scopo di test. Per motivi di sicurezza ora puoi rimuoverlo utilizzando il seguente comando:

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

Ora che hai installato LEMP, potresti chiederti cosa dovresti fare dopo. Bene, puoi installare un sito Web WordPress o Drupal sopra il tuo stack LEMP. Questo è proprio quello che ti mostrerò nel prossimo tutorial.

Articoli correlati