Come installare lo stack LEMP (Linux, Nginx, MySQL, PHP) su CentOS 7 VPS o server dedicato

introduzione

LEMP è l’acronimo di Linux, Nginx, MySQL e PHP. Lo stack LEMP come lo stack LAMP (con Apache anziché Nginx) viene utilizzato per lo sviluppo e la distribuzione di applicazioni Web. Nginx in LEMP fornisce un’architettura modulare guidata dagli eventi che gestisce le richieste utilizzando eventi asincroni. Questa funzione consente di ottenere prestazioni elevate con carichi elevati. MySQL viene utilizzato per archiviare i dati del sito Web mentre PHP serve per elaborare il contenuto dinamico dei siti.


Questo articolo illustra come installare lo stack LEMP in Centos 7 VPS o Dedicated Server. Dimostriamo di utilizzare le ultime versioni dei componenti dello stack LEMP al momento della pubblicazione come segue:

  • Nginx versione 1.15.2
  • PHP-FPM versione 7.2
  • MySQL Community Versione 8.0

nginx

Open Source NGINX è disponibile in due tipi:

  • Mainline: incorpora le ultime funzionalità e correzioni di bug ed è sempre aggiornato. È affidabile, tuttavia, può avere alcuni moduli sperimentali e / o alcuni nuovi bug. Consigliato per server di sviluppo.
  • Stabile: incorpora le ultime funzionalità con correzioni di bug critiche trasferite alla versione principale. Consigliato per server di produzione.

Esistono due modi per installare la linea principale o Nginx stabile come segue:

  • Installazione del pacchetto Nginx dal repository ufficiale Nginx o dal repository ufficiale del sistema operativo: il modo più semplice di installazione. Il pacchetto comprende quasi tutti i moduli Nginx ufficiali.
  • Compilazione e installazione dalla fonte: modo più flessibile di installazione quando si decide quali moduli specifici includere nel pacchetto.

In questo caso, installiamo Nginx – Mainline Type dal suo repository Nginx ufficiale creando il file repository yum e incollando la configurazione come segue:

$ sudo vim /etc/yum.repos.d/nginx.repo
[Nginx]
nome = repository nginx
baseurl = https: //nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
enabled = 1

Salva il file ed esci.

Aggiorna il repository Centos 7 con il repository nginx e installa nginx

$ sudo yum update
$ sudo yum installa nginx -y

Avviare nginx e abilitare all’avvio

$ sudo systemctl start nginx
$ sudo systemctl abilita nginx

Verifica che Nginx sia attivo e funzionante

[linuxuser @ centos7-lemp ~] $ curl -I 127.0.0.1
HTTP / 1.1 200 OK
Server: nginx / 1.15.2
Data: mar, 31 lug 2018 13:03:07 GMT
Tipo di contenuto: testo / html
Lunghezza contenuto: 612
Ultima modifica: mar, 24 lug 2018 14:05:29 GMT
Connessione: keep-alive
ETag: "5b573229-264"
Accept-Ranges: byte

Dall’output, confermiamo che la versione installata è 1.15.2

Inoltre puoi controllare tramite il tuo browser e inserire l’indirizzo IP o il nome del dominio del tuo web server.

http: // server_domain_name_or_public_IP /

Comunità MySQL

Installiamo MySQL 8.0 Community (per gestire i dati del sito Web) usando le istruzioni del nostro tutorial Come installare MYSQL 8.0 e creare un database su un VPS o server dedicato CentOS 7 Linux

PHP

PHP è richiesto nello stack LEMP per consentire l’elaborazione di contenuti dinamici, poiché Nginx non ha funzionalità di elaborazione PHP integrate come altri server, ad es. LiteSpeed. A questo proposito, installiamo la versione 7.2 di PHP-FPM (FastCGI Process Manager). Di default Centos 7 viene fornito con PHP 5.4 che ha raggiunto la sua EOL, ora è obsoleto e non è più supportato. PHP 7.2 consentirà all’applicazione Web di caricarsi più velocemente e utilizzare meno risorse di sistema. Inoltre, integra l’integrazione di database MySQL integrata, quindi funziona perfettamente con MySQL 8.0 installato.

Installa e abilita il repository Remi

Il pacchetto PHP-FPM si trova nel repository Remi.

$ sudo yum installa -y yum-utils
$ sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum-config-manager – abilitabile remi-php72

Installa PHP-FPM e moduli comunemente usati

$ sudo yum installa -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

Avviare e abilitare PHP-FPM

$ sudo systemctl avvia php72-php-fpm
$ sudo systemctl abilita php72-php-fpm

Controlla la versione di PHP

[linuxuser @ centos7-lemp ~] $ php72 -v
PHP 7.2.8 (cli) (costruito: 17 lug 2018 08:41:40) (NTS)
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
con Zend OPcache v7.2.8, Copyright (c) 1999-2018, di Zend Technologies

Configurazione di sicurezza di base di PHP

Modificare il file php.ini e trovare il parametro cgi.fix_pathinfo, decommentarlo e impostarlo su 0. Per impostazione predefinita, questa impostazione consente a PHP di eseguire il file più vicino se non trova un file PHP esattamente corrispondente. Quindi gli utenti possono facilmente creare richieste PHP dannose che PHP elaborerà facilmente.

$ sudo vim /etc/opt/remi/php72/php.ini

Modifica come segue:

; cgi.fix_pathinfo fornisce * real * supporto PATH_INFO / PATH_TRANSLATED per CGI. PHP di
; comportamento precedente era impostare PATH_TRANSLATED su SCRIPT_FILENAME e non grok
; cos’è PATH_INFO. Per ulteriori informazioni su PATH_INFO, consultare le specifiche cgi. Ambientazione
; questo a 1 farà sì che PHP CGI corregga i suoi percorsi per conformarsi alle specifiche. Un’ambientazione
; di zero fa sì che PHP si comporti come prima. L’impostazione predefinita è 1. È necessario correggere gli script
; utilizzare SCRIPT_FILENAME anziché PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo = 0

Configura PHP-FPM per lavorare con Nginx

Modifica il file di configurazione php-fpm come segue

$ sudo vim /etc/opt/remi/php72/php-fpm.d/www.conf
; Aggiungi utente Nginx
; Utente / gruppo di processi Unix
; Nota: l’utente è obbligatorio. Se il gruppo non è impostato, il gruppo dell’utente predefinito
; sarà usato.
; RPM: utente apache scelto per fornire l’accesso alle stesse directory di httpd
utente = nginx

; RPM: mantenere un gruppo autorizzato a scrivere nella directory di registro.
gruppo = nginx

; L’indirizzo su cui accettare le richieste FastCGI.
; Le sintassi valide sono:
; ‘ip.add.re.ss: port’ – per ascoltare su un socket TCP un indirizzo IPv4 specifico su
; una porta specifica;
; ‘[ip: 6: addr: ess]: port’ – per ascoltare su un socket TCP un indirizzo IPv6 specifico su
; una porta specifica;
; ‘port’ – per ascoltare su un socket TCP tutti gli indirizzi
; (Mappato IPv6 e IPv4) su una porta specifica;
; ‘/ path / to / unix / socket’ – per ascoltare su un socket unix.
; Nota: questo valore è obbligatorio.
ascolta = 127.0.0.1:9000

Riavviare il servizio php-fpm per effettuare le modifiche alla configurazione

$ sudo systemctl restart php72-php-fpm

Modifica il file di configurazione di Nginx

$ sudo vim /etc/nginx/sites-enabled/default.conf

Dopo aver apportato le modifiche, il file dovrebbe essere il seguente:

server {
ascolta 80;
nome del server ;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

Posizione / {
root / usr / share / nginx / html;
index index.php index.html index.htm;
}

pagina_errore 404 /404.html;

# reindirizza le pagine di errore del server alla pagina statica /50x.html
#
pagina_errore 500 502 503 504 / 50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}

# proxy gli script PHP su Apache in ascolto il 127.0.0.1:80
#
#location ~ \ .php $ {
# proxy_pass http://127.0.0.1;
#}

# passa gli script PHP al server FastCGI in ascolto il 127.0.0.1:9000
#
posizione ~ \ .php $ {
root / usr / share / nginx / html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ root_documento $ fastcgi_script_name;
include fastcgi_params;
}

# nega l’accesso ai file .htaccess, se la radice del documento di Apache
# concorda con quello di nginx
#
#location ~ /\.ht {
# nega tutto;
#}
}

Verifica se la configurazione è corretta

[linuxuser @ centos7-lemp ~] $ sudo nginx -t
nginx: la sintassi del file di configurazione /etc/nginx/nginx.conf è ok
nginx: il file di configurazione /etc/nginx/nginx.conf ha esito positivo

Riavvia nginx per effettuare le modifiche

$ sudo systemctl restart nginx

Prova PHP

Crea il file Informazioni.php come segue e posizionalo nella directory radice web di Nginx

$ sudo vim /usr/share/nginx/html/info.php
<?php phpinfo (); ?>

Salva ed esci dal file.

Quindi visita l’indirizzo del browser – http: //your_domain_or_server_public_IP/info.php

La pagina Web visualizzerà le informazioni PHP sul server. Ciò conferma che Nginx funziona correttamente con PHP. Per motivi di sicurezza, è necessario procedere all’eliminazione del file info.php nella directory principale Web.

Conclusione

Ora che hai installato correttamente lo stack LEMP, ora puoi ospitare il tuo fantastico sito Web aziendale o applicazione Web nella directory principale / usr / share / nginx / html e servire i tuoi potenziali clienti. È davvero molto semplice!

Dai un’occhiata a questi 3 principali servizi di hosting MySQL:

Hosting A2

Prezzo di partenza:
$ 3.92


Affidabilità
9.3


Prezzi
9.0


Di facile utilizzo
9.3


Supporto
9.3


Caratteristiche
9.3

Leggi le recensioni

Visita A2 Hosting

FastComet

Prezzo di partenza:
$ 2.95


Affidabilità
9.7


Prezzi
9.5


Di facile utilizzo
9.7


Supporto
9.7


Caratteristiche
9.6

Leggi le recensioni

Visita FastComet

Hostinger

Prezzo di partenza:
$ 0.99


Affidabilità
9.3


Prezzi
9.3


Di facile utilizzo
9.4


Supporto
9.4


Caratteristiche
9.2

Leggi le recensioni

Visita Hostinger

Articoli How-To correlati

  • Come installare lo stack LEMP (Linux, Nginx, MySQL, PHP) su Ubuntu 18.04 VPS o server dedicato
    intermedio
  • Come installare MYSQL 8.0 e creare un database su un VPS o server dedicato CentOS 7 Linux
    intermedio
  • Come installare phpMyAdmin su un VPS Centos 7 o un server dedicato
    intermedio
  • Come ottimizzare e ottimizzare le prestazioni di MySQL 8.0 su un server CentOS 7
    esperto
  • Come installare CachetHQ su un VPS Centos 7 o un server dedicato
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me