Come installare Nginx 1.15, MariaDB 10 e PHP 7 su CentOS 7
In questo articolo spiegheremo come installare uno stack LEMP (Linux, Nginx, MariaDB, PHP) insieme a PHP-FPM su server RHEL/CentOS 7/6 e Fedora 26-29 utilizzando i pacchetti yum e dnf manager.
Durante il processo installeremo e abiliteremo i repository Epel, Remi, Nginx e MariaDB per poter installare le ultime versioni di questi pacchetti.
Leggi anche: Installa Apache, MySQL 8 o MariaDB 10 e PHP 7 su CentOS 7
Passaggio 1: installazione di EPEL e del repository Remi
EPEL (Extra Packages for Enterprise Linux) è un repository basato sulla comunità che offre pacchetti software aggiuntivi per distribuzioni Linux basate su RHEL.
Remi è un repository in cui puoi trovare le ultime versioni dello stack PHP (con funzionalità complete) per l'installazione nelle distribuzioni Fedora ed 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]
Passaggio 2: installazione dei repository Nginx e MariaDB
Il repository Nginx è necessario solo nelle distribuzioni RHEL e CentOS. Crea un file chiamato /etc/yum.repos.d/nginx.repo e aggiungi le seguenti righe.
Per RHEL7/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 MariaDB, crea un file denominato /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
Passaggio 4: installazione di Ngnix e MariaDB
Nginx (Engine X) è un server Web open source, robusto, leggero e ad alte prestazioni, un server proxy inverso e anche un server proxy di posta per i protocolli HTTP, SMTP, POP3 e IMAP. Per ulteriori dettagli, visitare http://wiki.nginx.org/Overview.
MariaDB è un fork del noto MySQL, uno dei sistemi di gestione di database relazionali (RDBMS) più famosi al mondo. È interamente sviluppato dalla comunità e come tale è destinato a rimanere FOSS e compatibile con la GPL.
Per installare Ngnix e MariaDB, esegui 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
Passaggio 3: installazione di PHP utilizzando il repository Remi
PHP (Hypertext Preprocessor) è un linguaggio di scripting lato server gratuito e open source più adatto per lo sviluppo web. Può essere utilizzato per produrre pagine Web dinamiche per un sito Web e si trova più frequentemente nei server *nix. Uno dei vantaggi di PHP è che è facilmente estensibile attraverso l'uso di un'ampia varietà di moduli.
Per installare PHP, devi prima 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, puoi utilizzare yum-config-manager fornito da yum-utils
per abilitare il repository Remi come repository predefinito per l'installazione di diverse versioni PHP come mostrato.
Ad esempio, per installare la versione PHP 7.x, utilizza il seguente comando.
------------- 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, installeremo 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 disattivazione 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 fermarlo e disabilitarlo/mascherarlo (una versione più potente di disabilitazione che collega il servizio a /dev/null) per poter 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 server come viene chiamato in Nginx) in /srv/www/. In questo esempio utilizzeremo linux-console.net
, ma sentiti libero di scegliere un altro dominio e una directory principale se lo desideri.
mkdir -p /srv/www/tecmint/public_html
mkdir /srv/www/tecmint/logs
chown -R nginx:nginx /srv/www/tecmint
Passaggio 9: configurazione delle directory dell'host virtuale Nginx
Come sai, la capacità di gestire più siti dalla stessa macchina è una delle caratteristiche distintive dei principali server web. Procediamo ora a creare le directory in cui archiviare i nostri blocchi server (noti come host virtuali in Apache) in /etc/nginx.
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
La seguente riga di codice, che deve essere inserita prima di chiudere il blocco http in /etc/nginx/nginx.conf, garantirà che i file di configurazione all'interno del file /etc/nginx/sites-enabled verrà presa in considerazione quando Nginx è in esecuzione:
## Load virtual host conf files. ##
include /etc/nginx/sites-enabled/*;
Per creare il blocco del server per linux-console.net
, aggiungi le seguenti righe di codice a /etc/nginx/sites-available/tecmint (questo file verrà creato quando inserisci il percorso completo per avviare l'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 dobbiamo riavviare Nginx. A volte è utile verificare la presenza di errori di sintassi nei file di configurazione prima di farlo:
nginx -t
systemctl restart nginx
systemctl status nginx
Per accedere al tuo host virtuale appena creato, devi aggiungere la seguente riga a /etc/hosts come metodo di base per la risoluzione del nome di dominio.
192.168.0.18 linux-console.net linux-console.net
Passaggio 10: testare Nginx, MySQL, PHP e PHP-FPM
Atteniamoci al metodo classico di testare PHP. Crea un file chiamato test.php
in /srv/www/tecmint/public_html/ e aggiungi le seguenti righe di codice.
La funzione phpinfo()
mostra molte informazioni sull'attuale installazione di PHP:
<?php
phpinfo();
?>
Ora punta il tuo browser web su http://tecmint/test.php
e verifica la presenza dei moduli installati e dei software aggiuntivi:
Congratulazioni! Ora hai un'installazione funzionante di uno stack LEMP. Se qualcosa non è andato come previsto, non esitate a contattarci utilizzando il modulo sottostante. Anche domande e suggerimenti sono benvenuti.