PHP è uno dei linguaggi di programmazione lato server più utilizzati. Molti CMS e framework popolari come WordPress, Magento e Laravel sono costruiti in PHP.
In questa guida, discuteremo 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 la supportino.
Ti mostreremo anche come integrare PHP con Nginx e Apache.
Installazione di PHP su CentOS 8 #
CentOS 8 è distribuito con PHP 7.2. Questa versione supporta la maggior parte delle moderne applicazioni PHP, ma non sarà più gestita attivamente a partire da novembre 2019. Le versioni PHP più recenti sono disponibili dal repository Remi.
Abilita il repository Remi #
Se hai intenzione di installare la versione 7.2 di PHP stabile della distribuzione, salta questo passaggio. Altrimenti, se vuoi installare PHP 7.3 o 7.4 abilita il repository Remi eseguendo il seguente comando 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 PHP disponibili:
sudo dnf module list php
L'output mostrerà un elenco di tutti i moduli disponibili, inclusi il flusso associato, la versione e i profili di installazione.
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] 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 PHP più recente, abilita la versione appropriata:
PHP 7.3
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
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.
Installa PHP #
Il comando seguente installerà PHP e alcuni dei moduli PHP più comuni:
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
FPM viene installato come dipendenza e utilizzato come server FastCGI. Avvia il servizio FPM e abilitalo per l'avvio automatico all'avvio:
sudo systemctl enable --now php-fpm
Configurazione di PHP per funzionare con Apache #
Se SELinux è in esecuzione sul tuo sistema, dovrai aggiornare il contesto di sicurezza di SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
Se stai usando Apache come server web, riavvia httpd
servizio utilizzando il seguente comando e sei a posto:
sudo systemctl restart httpd
Configurazione di 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
. Per farlo, modifica le linee evidenziate in giallo:
sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf...
user = nginx
...
group = nginx
Assicurati che il /var/lib/php
directory ha la proprietà corretta:
chown -R root:nginx /var/lib/php
Al termine, riavvia il servizio PHP FPM:
sudo systemctl restart php-fpm
Quindi, modifica la direttiva dell'host virtuale Nginx e aggiungi il seguente blocco di posizione in modo che Nginx possa elaborare i file PHP:
server {
# . . . other code
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, riavvia il servizio Nginx:
sudo systemctl restart nginx
Aggiorna il contesto di sicurezza di SELinux:
sudo chcon -Rt httpd_sys_rw_content_t /var/www