In questo articolo spiegheremo come installare una stack LEMP (Linux, Nginx, MariaDB, PHP) insieme a PHP-FPM su server RHEL/CentOS 7/6 e Fedora 26-29 utilizzando il gestore di pacchetti yum e dnf.
Durante il processo installeremo ed abiliteremo i repository Epel, Remi, Nginx e MariaDB per poter installare le versioni più recenti di questi pacchetti.
Leggi anche: Installare Apache, MySQL 8 o MariaDB 10 e PHP 7 su CentOS 7
Passo 1: Installazione dei repository EPEL e Remi
EPEL (Extra Packages for Enterprise Linux) è un repository basato sulla comunità che offre pacchetti software aggiuntivi per le distribuzioni Linux basate su RHEL.
Remi è un repository in cui è possibile trovare le versioni più recenti della stack PHP (completamente caratterizzata) per l’installazione nelle distribuzioni Fedora e Enterprise Linux.
Su RHEL/CentOS 7
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm ------ For RHEL 7 Only ------ # subscription-manager repos --enable=rhel-7-server-optional-rpms
Su RHEL/CentOS 6
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ------ For RHEL 6 Only ------ # subscription-manager repos --enable=rhel-6-server-optional-rpms
Su Fedora 24-29
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
Step 2: Installazione dei repository di Nginx e MariaDB
Il repository di Nginx è necessario solo nelle distribuzioni RHEL e CentOS. Crea un file chiamato /etc/yum.repos.d/nginx.repo e aggiungi le seguenti righe al file.
Per RHEL 7/6:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
Per CentOS 7/6:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Per abilitare il repository di MariaDB, crea un file chiamato /etc/yum.repos.d/mariadb.repo con i seguenti contenuti:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Step 4: Installazione di Nginx e MariaDB
Nginx (Engine X) è un server web, server reverse proxy e server mail proxy open source, robusto, leggero e altamente performante per i protocolli HTTP, SMTP, POP3 e IMAP. Per ulteriori dettagli, visitare http://wiki.nginx.org/Overview.
MariaDB è un fork del famoso MySQL, uno dei database di gestione relazionale (RDBMS) più popolari al mondo. È interamente sviluppato dalla community e, di conseguenza, è destinato a rimanere FOSS e compatibile con la GPL.
Per installare Nginx e MariaDB, eseguire i seguenti comandi.
----------- Installing on RHEL/CentOS 7/6 ----------- # yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm ----------- Installing on Fedora ----------- # dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
Step 3: Installazione di PHP utilizzando il repository Remi
PHP (Preprocessore di ipertesti) è un linguaggio di scripting per il lato server gratuito e open source particolarmente adatto per lo sviluppo web. Può essere utilizzato per creare pagine web dinamiche per un sito web ed è più frequentemente presente nei server *nix. Uno dei vantaggi di PHP è che può essere facilmente esteso utilizzando una vasta gamma di moduli.
Per installare PHP, innanzitutto è necessario abilitare il repository Remi installando yum-utils
, una raccolta di programmi utili per la gestione dei repository e dei pacchetti yum.
# yum install yum-utils
Una volta installato, è possibile utilizzare yum-config-manager fornito da yum-utils
per impostare il repository Remi come repository predefinito per l’installazione di diverse versioni di PHP, come mostrato.
Ad esempio, per installare la versione PHP 7.x, utilizzare il comando seguente.
------------- On CentOS & RHEL ------------- # yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0] # yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1] # yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2] # yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3] ------------- On Fedora ------------- # dnf --enablerepo=remi install php70 [Install PHP 7.0] # dnf --enablerepo=remi install php71 [Install PHP 7.1] # dnf --enablerepo=remi install php72 [Install PHP 7.2] # dnf --enablerepo=remi install php73 [Install PHP 7.3]
Successivamente, andremo ad installare tutti i seguenti moduli PHP.
------ On RHEL/CentOS 7/6 ------ # yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear ------ On Fedora ------ # dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
Passaggio 6: arresto e disabilitazione del servizio Apache
Per impostazione predefinita, Apache e Nginx ascoltano sulla stessa porta (TCP 80). Per questo motivo, se Apache è installato sul tuo server, devi arrestarlo e disabilitarlo/mascherarlo (una versione più forte della disabilitazione che collega il servizio a /dev/null) per utilizzare Nginx, oppure puoi rimuoverlo se non prevedi di utilizzarlo più.
# systemctl stop httpd # systemctl disable httpd or # systemctl mask httpd
Passaggio 7: avvio/arresto di Nginx, MariaDB e PHP-FPM
----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- # systemctl enable nginx # systemctl enable mariadb # systemctl enable php-fpm ----------- Start Nginx, MariaDB and PHP-FPM ----------- # systemctl start nginx # systemctl start mariadb # systemctl start php-fpm
Passaggio 8: configurazione di Nginx e PHP-FPM
Creiamo ora una struttura di directory per il tuo sito web (un host virtuale, o blocco del server come viene chiamato in Nginx) sotto /srv/www/. In questo esempio useremo www.tecmint.com
, ma sentiti libero di scegliere un altro dominio e una directory principale se vuoi.
# mkdir -p /srv/www/tecmint/public_html # mkdir /srv/www/tecmint/logs # chown -R nginx:nginx /srv/www/tecmint
Passo 9: Configurazione delle directory degli host virtuali di Nginx
Come sai, la capacità di eseguire più siti dalla stessa macchina è una delle caratteristiche distintive dei principali server web. Procediamo ora alla creazione delle directory per archiviare i nostri blocchi di server (noti come host virtuali in Apache) sotto /etc/nginx.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
La seguente riga di codice, che deve essere inserita prima della chiusura del blocco http in /etc/nginx/nginx.conf, assicurerà che i file di configurazione all’interno della directory /etc/nginx/sites-enabled vengano presi in considerazione quando Nginx è in esecuzione:
## Load virtual host conf files. ## include /etc/nginx/sites-enabled/*;

Per creare il blocco del server per tecmint.com
, aggiungi le seguenti righe di codice a /etc/nginx/sites-available/tecmint (questo file verrà creato quando inserisci il percorso completo per avviare il tuo editor di testo preferito). Questo è un file di configurazione dell’host virtuale di base.
server { listen 80 default; server_name tecmint; access_log /srv/www/tecmint/logs/access.log; error_log /srv/www/tecmint/logs/error.log; root /srv/www/tecmint/public_html; location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
Il processo di “attivazione” di un host virtuale consiste nella creazione di un collegamento simbolico dalla definizione dell’host virtuale tecmint
a /etc/nginx/sites-enabled.
# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
Per applicare effettivamente le modifiche che abbiamo apportato, ora è necessario riavviare Nginx. A volte è utile verificare i file di configurazione per errori di sintassi prima di farlo:
# nginx -t # systemctl restart nginx # systemctl status nginx

Per accedere al tuo nuovo host virtuale creato, è necessario aggiungere la seguente riga a /etc/hosts come metodo di base per la risoluzione dei nomi di dominio.
192.168.0.18 www.tecmint.com tecmint.com
Passo 10: Testing di Nginx, MySQL, PHP e PHP-FPM
Continuiamo con il classico modo di testare PHP. Crea un file chiamato test.php
sotto /srv/www/tecmint/public_html/ e aggiungi le seguenti righe di codice.
La funzione phpinfo()
mostra molte informazioni sull’installazione corrente di PHP:
<?php phpinfo(); ?>
Ora punta il tuo browser web a http://tecmint/test.php
e controlla la presenza dei moduli installati e del software aggiuntivo:
Congratulazioni! Ora hai un’installazione funzionante di uno stack LEMP. Se qualcosa non è andato come previsto, non esitare a contattarci utilizzando il modulo sottostante. Domande e suggerimenti sono anche ben accetti.
Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/