Introduzione
PHP è uno dei linguaggi di programmazione lato server più utilizzati. Molti popolari CMS e framework come WordPress, Magento e Laravel sono integrati in PHP.
In questa guida, vedremo come installare PHP 7.2, 7.3 o 7.4 su CentOS 8. Prima di scegliere quale versione di PHP installare, assicurati che le tue applicazioni lo supportino.
CentOS 8 è distribuito con PHP 7.2. Questa versione supporta la maggior parte delle moderne applicazioni PHP, ma non sarà più mantenuta attivamente a partire da novembre 2019. Le versioni più recenti di PHP sono disponibili dal repository Remi.
Ti mostreremo anche come integrare PHP con Nginx e Apache.
Se il vostro intento è installare PHP su di un server in remoto continuate a leggere, altrimenti se volete installare PHP sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Abilita il repository Remi
Se stai per installare la versione 7.2 di PHP stabile, salta questo passaggio. Altrimenti, se si desidera installare PHP 7.3 o 7.4 abilitare il repository Remi eseguendo il comando seguente come root o utente con privilegi sudo:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Il comando sopra abiliterà anche il repository EPEL .
Una volta completata l'installazione, esegui il comando seguente per ottenere un elenco di tutte le versioni di PHP disponibili:
sudo dnf module list php
L'output mostrerà un elenco di tutti i moduli disponibili, inclusi i profili di flusso, versione e installazione associati.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Il modulo PHP predefinito è impostato su PHP 7.2. Per installare una versione più recente di PHP, abilita la versione appropriata:
Per abilitare PHP 7.3:
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
Per abilitare PHP 7.4:
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Ora sei pronto per installare PHP sul tuo server CentOS.
Installare PHP
Il seguente comando installerà PHP e alcuni dei moduli PHP più comuni:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
PHP utilizza FPM, è installato come dipendenza e utilizzato come server FastCGI. Avviare il servizio FPM e abilitarlo per l'avvio automatico all'avvio del server:
sudo systemctl enable --now php-fpm
Configurare PHP per funzionare con Apache
Se stai usando Apache come server web, riavvia il servizio httpd
usando il comando seguente:
sudo systemctl restart httpd
Configurare PHP per funzionare con Nginx
Per impostazione predefinita, PHP FPM viene eseguito come utente apache
. Per evitare problemi di autorizzazione, cambieremo l'utente in nginx
.
Aprire il seguente file:
sudo vi /etc/php-fpm.d/www.conf
Modificare il nome utente alle righe user e group, da apache ad nginx:
...
user = nginx
...
group = nginx
Assicurarsi che la directory /var/lib/php
abbia i permessi corretti:
chown -R root:nginx /var/lib/php
Una volta fatto, riavvia il servizio FPM di PHP:
sudo systemctl restart php-fpm
Successivamente, modifica la direttiva host virtuale di Nginx e aggiungi il seguente blocco in modo che Nginx possa elaborare i file PHP:
server {
#Il resto del codice..
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Per rendere effettiva la nuova configurazione, riavviare il servizio Nginx:
sudo systemctl restart nginx
Conclusione
PHP 7.2 è disponibile per l'installazione dai repository CentOS 8 predefiniti. Se si desidera installare una versione più recente, è necessario abilitare il repository Remi.