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 -yDigita la tua password. Ora che il repository è stato aggiunto, è il momento di installare Nginx:
sudo yum install nginx -yDopo aver installato Nginx, dobbiamo avviarlo.
sudo systemctl start nginxAbilita Nginx per l'avvio all'avvio del sistema.
sudo systemctl enable nginx
Controlla se è in esecuzione:
systemctl status nginxOutput 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 processControlla la versione di Nginx:
[linux-terminal@centos7 ~]$ nginx -v
nginx version: nginx/1.12.2Digita 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 addressO
curl http://icanhazip.comIl 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 ACCEPTOra 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 mariadbAbilita MariaDB per l'avvio all'avvio del sistema.
sudo systemctl enable mariadbControllare lo stato:
systemctl status mariadbuscite:
● 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=/usrControlla la versione:
[linux-terminal@centos7 ~]$ mysql --version
mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1Ora dobbiamo eseguire lo script di sicurezza.
sudo mysql_secure_installationQuando 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 -yOra modifica il file di configurazione php-fpm:
sudo nano /etc/php-fpm.d/www.confTrova la seguente riga:
listen = 127.0.0.1:9000cambialo in questo:
listen = /var/run/php-fpm/php-fpm.sockquindi trovare le seguenti due righe:
;listen.owner = nobody
;listen.group = nobodyrimuovere il punto e virgola precedente. Infine, modifica il valore dell'utente e del gruppo da "apache" a "nginx":
user = nginx
group = nginxUna volta salvato e chiuso il file, avvia il processore PHP:
sudo systemctl start php-fpmSuccessivamente, abilita php-fpm per l'avvio all'avvio del sistema.
sudo systemctl enable php-fpmConfigura l'host virtuale Nginx
Crea un nuovo file host virtuale nella directory /etc/nginx/conf.d
sudo nano /etc/nginx/conf.d/example.com.confAggiungi 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.phpInserisci 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.phpO
your ip address/info.phpSe 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.phpOra 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.



