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 [email protected]_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 [email protected]_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 [email protected]_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.