Nginx è un server HTTP gratuito, open source e ad alte prestazioni. Nginx è noto per la sua stabilità, il ricco set di funzionalità, la configurazione semplice e il basso consumo di risorse.
Questo tutorial mostra come installare Nginx su CentOS 7 / RHEL 7 con supporto PHP (tramite PHP-FPM) e supporto MariaDB.
PHP-FPM è un'implementazione PHP FastCGI alternativa e ha alcune funzionalità aggiuntive utili per siti di qualsiasi dimensione, in particolare quelli più affollati).
Installa Linux
Ecco l'articolo sull'installazione passo passo di CentOS 7 / RHEL 7.
Ora hai Linux e il prossimo è installare Apache, MySQL e PHP su di esso. Installiamo uno per uno.
La prima cosa che devi fare è accedere come utente root o passare all'utente root.
$ su
Installa Nginx
Installa Nginx repository rpm per scaricare Nginx dal sito ufficiale.
### CentOS 7 ### rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ### RHEL 7 ### rpm -Uvh http://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el7.ngx.noarch.rpm
Installa Nginx usando il seguente comando.
yum -y install nginx
Avvia il servizio Nginx dopo l'installazione.
systemctl start nginx
Firewall
Esegui i seguenti comandi nel terminale per consentire le richieste HTTP attraverso il firewall.
firewall-cmd --permanent --add-service=http firewall-cmd --reload
SELinux
Se ricevi un errore di SELinux nei log di Nginx, ecco il tutorial sull'impostazione della politica di SELinux per Nginx.
Altrimenti, disabilita SELinux usando temporaneamente il seguente comando per la sessione corrente.
setenforce 0
Ti consigliamo di disabilitare permanentemente SELinux.
Testa Nginx
Apri il tuo browser web e visita il seguente URL.
http://il-tuo-indirizzo-ipDovresti vedere la pagina seguente. Questa pagina conferma che Ngnix è stato installato correttamente sul server.
La radice del documento nginx predefinita su CentOS 7 è /usr/share/nginx/html/. I file di configurazione si trovano nella directory /etc/nginx.
Avvia automaticamente il servizio Nginx all'avvio del sistema.
systemctl enable nginx
Installa MariaDB
CentOS 7 / RHEL 7 offre MariaDB v5.5 dal repository del sistema operativo di base, che è un po' più vecchio e presto sarà EOL. Puoi prendere in considerazione l'installazione di MariaDB v10.x o MySQL 8.x per il tuo stack LEMP.Per prima cosa, installeremo MariaDB emettendo il seguente comando.
yum -y install mariadb mariadb-server
Avvia il server MariaDB usando il seguente comando.
systemctl start mariadb
Abilita l'avvio automatico di MariaDB durante l'avvio del sistema.
systemctl enable mariadb
Una volta completata l'installazione, è necessario proteggere MariaDB utilizzando il comando mysql_secure_installation. Puoi installare phpMyAdmin per gestire i database tramite un browser web.
Installa PHP
PHP v5.4 (fine del supporto)
La versione PHP (v5.4) disponibile nel repository di base di CentOS ha già terminato il supporto.
PHP v7.3
Remi, un repository di terze parti che offre una versione aggiornata di PHP (v7.3). Per abilitare il repository Remi, installa il pacchetto di configurazione automatica del repository Remi.
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Installa PHP tramite PHP-FPM (PHP-FPM (FastCGI Process Manager) utilizzando il comando YUM.
yum install -y --enablerepo=remi-php73 php php-fpm php-mysqlnd php-cli
Modifica il file /etc/php-fpm.d/www.conf,
vi /etc/php-fpm.d/www.conf
Verifica che PHP-FPM sia in ascolto sulla porta 9000.
listen = 127.0.0.1:9000
Assicurati che i seguenti valori siano commentati dall'ONU.
[.More.] pm.min_spare_servers = 5 [.More.] pm.max_spare_servers = 35 [.More.]
Testare lo stack LEMP
Crea host virtuale
Creiamo un host virtuale basato sul nome sul server Nginx per i seguenti dettagli.
Nome server :server.itzgeek.local
Radice del documento :/usr/share/nginx/html/itzgeek.local
Crea il file di configurazione chiamato virtual.conf e modifica /etc/nginx/conf.d/virtual.conf.
vi /etc/nginx/conf.d/virtual.conf
Aggiungi il seguente contenuto.
server { server_name server.itzgeek.local; root /usr/share/nginx/html/itzgeek.local; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/itzgeek.local$fastcgi_script_name; } }
Crea una voce host per il tuo dominio (server.itzgeek.local) nel file /etc/hosts.
vi /etc/hosts
Aggiungi una voce host come di seguito.
127.0.0.1 localhost.localdomain localhost server.itzgeek.local
Crea la directory principale del documento.
mkdir /usr/share/nginx/html/itzgeek.local
Test host virtuale
Per testare il PHP, posiziona un file PHP nella radice del documento dell'host virtuale creato, nel terminale copia/incolla la seguente riga:
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/itzgeek.local/index.php
Riavvia i servizi e abilita l'avvio automatico.
systemctl restart nginx systemctl restart php-fpm systemctl enable php-fpm
Ora apri il tuo browser web e digita il tuo dominio nella barra degli indirizzi:
http://server.itzgeek.localLa pagina apparirà come di seguito:
Dallo screenshot sopra, PHP funziona e funziona tramite FPM/FastCGI, come mostrato nella riga Server API.
Se scorri più in basso, vedrai le informazioni sul supporto di MariaDB.
Conclusione
È tutto. Hai impostato correttamente lo stack LEMP su CentOS 7 / RHEL 7. Inoltre, puoi installare phpMyAdmin su CentOS 7 per gestire i database MariaDB / MySQL tramite un browser web.