PHP è un linguaggio di scripting lato server ampiamente utilizzato progettato per lo sviluppo web ma utilizzato anche come linguaggio di programmazione generico. È particolarmente indicato per la creazione di siti Web dinamici e interattivi. L'installazione delle versioni più recenti di PHP, come 8.3, 8.2 o 8.1, ti garantisce l'accesso alle funzionalità più recenti, ai miglioramenti delle prestazioni e alle patch di sicurezza. Su CentOS Stream 9, puoi installare facilmente queste versioni utilizzando il repository Remi RPM, noto per fornire pacchetti PHP aggiornati.
Questa guida ti guiderà attraverso il processo di abilitazione del repository Remi e di installazione delle ultime build PHP su CentOS Stream 9.
Importa Remi PHP RPM su CentOS
Aggiornamento di CentOS Stream prima dell'installazione di PHP
È fondamentale iniziare aggiornando il tuo sistema CentOS Stream per garantire che tutti i pacchetti esistenti siano aggiornati. Questo passaggio è essenziale per la stabilità e la sicurezza del sistema.
Apri il tuo terminale ed esegui il seguente comando per aggiornare il tuo sistema:
sudo dnf upgrade --refresh
Questo comando aggiorna il database dei pacchetti e aggiorna tutti i pacchetti installati alle ultime versioni disponibili.
Importazione del repository RPM Remi PHP
Il repository Remi PHP è un repository di terze parti che offre le ultime versioni PHP. Prima di aggiungere il repository Remi, è necessario installare il repository EPEL, che fornisce pacchetti aggiuntivi per Enterprise Linux.
Innanzitutto, è consigliabile abilitare il repository CodeReady Linux Builder (CRB), anche se facoltativo. Fornisce strumenti e librerie per sviluppatori aggiuntivi. Abilita CRB con:
sudo dnf config-manager --set-enabled crb
Dopo aver abilitato CRB, installa il repository EPEL per EL9 utilizzando:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
Infine, importa il repository Remi PHP per EL9:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
Abilitazione del repository PHP Remi su CentOS Stream
Elenco dei moduli PHP disponibili
Prima di installare PHP, è essenziale identificare le versioni PHP disponibili nel repository Remi. Questo passaggio ti aiuta a prendere una decisione informata su quale versione installare.
Utilizza il seguente comando per elencare tutti i moduli PHP:
dnf module list php
Questo comando visualizza tutte le versioni PHP disponibili nel repository Remi. È un passaggio cruciale per assicurarti di scegliere la versione che meglio si adatta alle tue esigenze.
Importazione della chiave GPG per il repository di Remi
Quando richiesto, è necessario confermare l'importazione della chiave GPG per il repository di Remi. Questo passaggio è fondamentale per motivi di sicurezza, poiché verifica l'autenticità dei pacchetti che stai per installare. Inserisci "Y" quando ti viene chiesto di procedere con l'importazione.
Attivazione della versione PHP desiderata
Dopo aver confermato le versioni PHP disponibili, puoi abilitare la versione specifica adatta alle tue esigenze. È consigliabile selezionare una versione stabile e ben supportata di PHP per i tuoi progetti.
Per abilitare una versione PHP specifica dal repository Remi, utilizzare i seguenti comandi:
sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y
Ogni comando attiva una versione diversa di PHP dal repository Remi. Scegli il comando che corrisponde alla versione che desideri installare. Il flag '-y' in questi comandi indica la conferma automatica dell'installazione, semplificando il processo.
Installa PHP 8.3, 8.2 o 8.1 su CentOS Stream
Scelta del Web Server per l'installazione di PHP
La selezione del server web appropriato è un passaggio fondamentale nella configurazione di PHP. CentOS Stream supporta sia Apache che Nginx, ciascuno dei quali richiede pacchetti PHP diversi.
Installazione PHP Apache (httpd).
Per coloro che utilizzano Apache come server web, il seguente comando installa PHP insieme alla PHP Command Line Interface (CLI), essenziale per eseguire script PHP dalla riga di comando:
sudo dnf install php php-cli -y
Installazione di Nginx PHP
Se utilizzi Nginx, dovrai installare PHP FastCGI Process Manager (FPM) insieme alla CLI PHP. PHP-FPM è un'implementazione alternativa di PHP FastCGI altamente efficiente per i siti con traffico intenso:
sudo dnf install php-fpm php-cli -y
Verifica dell'installazione di PHP
Dopo l'installazione, è importante verificare che PHP sia installato correttamente. Esegui il comando seguente per verificare la versione PHP installata:
php -v
Questo comando visualizza la versione corrente di PHP, verificando la corretta installazione.
Installazione di estensioni PHP comuni
Per migliorare la funzionalità PHP, potrebbe essere necessario installare estensioni aggiuntive. Il comando seguente installa le estensioni PHP comunemente utilizzate, che sono vitali per varie piattaforme CMS e esigenze di sviluppo:
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache
È consigliabile rivedere e omettere eventuali estensioni non necessarie per la configurazione.
Visualizzazione dei moduli PHP caricati
Per ispezionare i moduli PHP attualmente caricati, eseguire:
php -m
Si consiglia di monitorare ed eliminare regolarmente i moduli non necessari per mantenere prestazioni ottimali del sistema.
Installazione del ramo di sviluppo PHP
Per requisiti di sviluppo specifici, potresti aver bisogno del ramo di sviluppo PHP. Installalo con:
sudo dnf install php-devel
Nota: questa installazione introduce più dipendenze. Procedi solo se esiste un'esigenza specifica nel tuo ambiente di sviluppo PHP.
Aggiunta di strumenti di sviluppo PHP
Per funzionalità di sviluppo avanzate, incluso il debug, installa strumenti aggiuntivi utilizzando:
sudo dnf install php-xdebug php-pcov
Questi strumenti sono essenziali per il debug e l'analisi della copertura del codice in PHP, ma fai attenzione alle dipendenze aggiuntive che introducono.
Configurazione dell'utente Nginx per PHP-FPM su CentOS Stream
Modifica della configurazione PHP-FPM per Nginx
In CentOS Stream, l'utente predefinito per PHP-FPM è impostato su "Apache", che non è compatibile con le configurazioni Nginx. Per ottimizzare PHP-FPM per Nginx è necessaria una modifica alla configurazione.
Accesso alla configurazione PHP-FPM
Inizia aprendo il file di configurazione PHP-FPM. Questo file contiene impostazioni specifiche su come PHP-FPM interagisce con il tuo server web. Usa il seguente comando per modificare il file www.conf:
sudo nano /etc/php-fpm.d/www.conf
Questo comando avvia l'editor di testo Nano con il file di configurazione PHP-FPM.
Modifica delle impostazioni dell'utente e del gruppo
Nel file di configurazione, individuare le righe che specificano l'utente e il gruppo. Per impostazione predefinita, questi sono impostati su "Apache". Modifica sia l'utente che il gruppo in "Nginx" per allineare il servizio PHP-FPM con Nginx:
; Utente/gruppo di processi Unix; Nota: l'utente è obbligatorio. Se il gruppo non è impostato, il gruppo dell'utente predefinito ; verrà utilizzato. ; RPM: apache ha scelto di poter accedere ad alcune directory come httpd user = nginx; RPM: mantiene un gruppo autorizzato a scrivere nella directory di registro. gruppo = nginx
Ecco un esempio visivo funzionante:
Salvataggio e uscita dal file di configurazione
Dopo aver apportato le modifiche, salva il file premendo CTRL+O e poi esci con CTRL+X. Questa azione salva le modifiche e chiude l'editor Nano.
Riavvio del servizio PHP-FPM
Per applicare le modifiche, riavviare il servizio PHP-FPM utilizzando:
sudo systemctl restart php-fpm
Questo comando garantisce che PHP-FPM venga eseguito sotto l'utente e il gruppo Nginx, garantendo compatibilità e maggiore sicurezza per la configurazione del server Web Nginx su CentOS Stream.
Esempio di codice di blocco del server Nginx PHP-FPM
Configurazione del blocco server Nginx per l'elaborazione PHP
Per abilitare l'elaborazione PHP in Nginx su CentOS Stream, il blocco server all'interno del file di configurazione Nginx deve essere modificato. L'esempio seguente illustra la configurazione necessaria per la gestione dei file PHP. Questa configurazione richiede di specificare il blocco di posizione PHP.
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;
}
Questo codice garantisce che Nginx gestisca correttamente i file PHP, reindirizzandoli al processore PHP-FPM. Ecco una rapida ripartizione:
- location ~ .php$: questa direttiva dice a Nginx di applicare le seguenti regole a qualsiasi file che termina con .php. La tilde ~ indica che si tratta di una corrispondenza di espressione regolare.
- try_files $uri =404: questa riga controlla se il file PHP esiste nell'URI specificato. In caso contrario, Nginx restituisce un errore 404. Questa è una misura di sicurezza per impedire l'esecuzione di script non autorizzata.
- fastcgi_pass unix:/run/php-fpm/www.sock;: questa direttiva specifica il socket su cui è in ascolto il servizio PHP-FPM. In questo caso, Nginx passa le richieste PHP al processo PHP-FPM attraverso il socket /run/php-fpm/www.sock.
- fastcgi_index index.php;: imposta index.php come script predefinito da eseguire quando si accede a una directory.
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: Questa riga imposta il parametro SCRIPT_FILENAME, che è essenziale affinché PHP-FPM trovi il file di script sul filesystem. Combina la radice del documento con il nome dello script.
- include fastcgi_params;: include i parametri FastCGI predefiniti forniti da Nginx. Queste sono le impostazioni standard necessarie affinché PHP-FPM funzioni correttamente.
Questa configurazione garantisce che Nginx gestisca correttamente le richieste PHP trasmettendole al servizio PHP-FPM per l'elaborazione, un passaggio cruciale per l'esecuzione di siti Web e applicazioni basati su PHP su un server Nginx.
Verifica della configurazione di Nginx
Dopo aver aggiornato il blocco server, verifica la configurazione di Nginx per eventuali errori di sintassi con il seguente comando:
sudo nginx -t
Output di esempio che conferma un controllo della sintassi riuscito:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Questo passaggio garantisce che la configurazione di Nginx sia priva di errori di sintassi e pronta per l'implementazione.
Riavvio del servizio Nginx
Per applicare le modifiche alla configurazione PHP-FPM, riavvia il servizio Nginx:
sudo systemctl restart nginx
Questo riavvio rende effettive le modifiche, consentendo a Nginx di elaborare i file PHP utilizzando la configurazione aggiornata del blocco del server.
Conclusione
Installando PHP tramite il repository Remi RPM su CentOS Stream 9, ti assicuri che il tuo sistema sia dotato delle ultime versioni stabili di PHP, incluse 8.3, 8.2 e 8.1. Questa configurazione ti offre prestazioni migliorate, accesso alle funzionalità più recenti e maggiore sicurezza per le tue applicazioni web. L'aggiornamento regolare di PHP tramite il repository Remi manterrà il tuo sistema sicuro e aggiornato con gli ultimi sviluppi di PHP. Goditi la flessibilità e la potenza offerte da PHP per la creazione e la manutenzione di applicazioni Web dinamiche.