PHP è un popolare linguaggio di scripting generico particolarmente adatto allo sviluppo web. È veloce, flessibile e pragmatico e alimenta qualsiasi cosa, dai blog ai siti Web più popolari al mondo. PHP offre un ampio supporto per vari database, rendendolo uno strumento essenziale per lo scripting lato server.
La seguente guida mostrerà i passaggi per installare PHP su Rocky Linux 9 o 8 utilizzando i comandi della riga di comando. Il metodo di installazione prevede l'utilizzo del repository Remi RPM per le ultime build stabili di PHP 8.1, 8.2 e 8.3.
Importa repository RPM Remi PHP
Aggiorna Rocky Linux prima dell'installazione di PHP
Inizia aggiornando il tuo sistema Rocky Linux per prepararti all'installazione di PHP. Apri il terminale e inserisci:
sudo dnf upgrade --refresh
Importa il repository PHP Remi
Configurazione dell'archivio EPEL
EPEL (Extra Packages for Enterprise Linux) è fondamentale per pacchetti software aggiuntivi in Rocky Linux. Di seguito sono riportate due opzioni per l'installazione di EPEL su Rocky Linux per l'ultima versione EL9 o EL8.
Importa EPEL per Rocky Linux 9
Abilita CRB
CRB fornisce l'accesso a più strumenti di sviluppo. Utilizzo:
sudo dnf config-manager --set-enabled crb
Installa i repository EPEL
Per ottenere le ultime versioni EPEL per Rocky Linux 9:
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
Incorpora il repository Remi progettato per EL 9:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
Importa EPEL per Rocky Linux 8
Abilita il repository PowerTools
PowerTools è essenziale per gli strumenti di sviluppo PHP.
sudo dnf config-manager --set-enabled powertools
Abilita EPEL per Rocky Linux 8
Installa i repository EPEL per Rocky Linux 8:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Importa il repository Remi EL 8
Con EPEL installato, importa l'RPM Remi contenente PHP per EL 8:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Abilita PHP (8.x) dal repository Remi
Verifica delle versioni PHP
Inizia confermando le versioni PHP disponibili nel repository Remi. Ciò ti garantisce di avere accesso alla versione PHP desiderata.
Esegui nel terminale:
dnf module list php
Se richiesto, importa la chiave GPG per il repository di Remi digitando (Y).
Selezione della versione PHP
Abilita PHP 8.3
Per installare PHP 8.3, una versione stabile e recente, utilizzare:
sudo dnf module enable php:remi-8.3 -y
Abilita PHP 8.2
Per PHP 8.2, adatto per applicazioni che richiedono questa versione specifica:
sudo dnf module enable php:remi-8.2 -y
Abilita PHP 8.1
Per abilitare PHP 8.1, ideale per la compatibilità con alcune applicazioni:
sudo dnf module enable php:remi-8.1 -y
Finalizzare l'installazione di PHP
Installazione di PHP per il supporto Apache o Nginx
Dopo aver abilitato il repository Remi PHP, puoi installare PHP su misura per le esigenze del tuo server web, Apache o Nginx.
Installazione PHP Apache (httpd).
sudo dnf install php php-cli -y
Installazione di Nginx PHP
sudo dnf install php-fpm php-cli -y
Verifica dell'installazione di PHP
Conferma l'installazione di PHP eseguendo:
php -v
Installazione delle estensioni PHP
Installa le estensioni PHP essenziali in base alle esigenze del tuo progetto. Evita di installare tutte le estensioni per mantenere prestazioni e sicurezza ottimali.
Installazione standard
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
Installazione semplificata
Per un comando di installazione compatta:
sudo dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,memcache}
Ora, analizziamo cosa fa ciascuna di queste estensioni PHP:
- php-cli: Command Line Interface per PHP, utile per eseguire script PHP nella shell.
- php-fpm: FastCGI Process Manager, utile per gestire e servire le richieste PHP.
- php-curl: consente di connettersi e comunicare con diversi tipi di server e protocolli.
- php-mysqlnd: MySQL Native Driver, utilizzato per le connessioni al database MySQL.
- php-gd: Graphics Draw, utile per creare e manipolare file di immagine.
- php-opcache: Opcode Cache, utilizzato per velocizzare l'esecuzione di PHP.
- php-zip: consente di lavorare con archivi zip.
- php-intl: Estensione di internazionalizzazione per lavorare con set di caratteri e impostazioni locali internazionali.
- php-comune: file e impostazioni comuni utilizzati da più moduli PHP.
- php-bcmath: Il calcolatore binario consente matematica di precisione arbitraria.
- php-imagick: fornisce metodi per creare e modificare immagini utilizzando la libreria ImageMagick.
- php-xmlrpc: consente la creazione di un server XML-RPC e semplifica l'invio di richieste XML-RPC.
- php-json: estensione JSON (JavaScript Object Notation) per la codifica e la decodifica dei dati JSON.
- php-readline: Permette di leggere una riga di dati dal terminale.
- php-memcached: Fornisce la memorizzazione nella cache degli oggetti di memoria distribuita e veloce.
- php-redis: Estensione PHP per l'interfacciamento con Redis.
- php-mbstring: Stringa multibyte per la gestione di stringhe non ASCII.
- php-apcu: APC User Cache, un'estensione di caching dell'area utente basata su APC.
- php-xml: Parser XML per l'analisi di documenti XML.
- php-dom: Document Object Model, per manipolare documenti XML in modo orientato agli oggetti.
- php-memcache: Fornisce una comoda interfaccia procedurale e orientata agli oggetti a memcached.
- php-soap: utilizzato per scrivere server e client SOAP.
- php-ldap: Lightweight Directory Access Protocol utilizzato per accedere e gestire le informazioni della directory.
- php-pdo: PHP Data Objects, un livello di accesso al database che fornisce un metodo di accesso uniforme a più database.
È possibile utilizzare il comando seguente per visualizzare i moduli caricati in qualsiasi momento.
php -m
Per garantire l'efficienza delle prestazioni, si consiglia il monitoraggio regolare e la rimozione dei moduli non necessari.
Installazione degli strumenti di sviluppo PHP
Per scopi di sviluppo, installa il ramo di sviluppo PHP e gli strumenti di debug:
Ramo di sviluppo PHP
sudo dnf install php-devel
Strumenti di debug PHP
sudo dnf install php-xdebug php-pcov
È importante notare che l'installazione di questa versione introdurrà più dipendenze e non è consigliabile farlo a meno che tu non ne abbia una necessità specifica nello sviluppo PHP o qualsiasi requisito speciale.
Configura l'utente Nginx PHP-FPM su Rocky Linux
Adeguamento di PHP-FPM per Nginx
Le distribuzioni basate su RHEL come Rocky Linux utilizzano per impostazione predefinita l'utente "Apache" per PHP-FPM, che non è adatto per le configurazioni Nginx. È essenziale modificarlo per un funzionamento ottimale con Nginx.
Modifica della configurazione PHP-FPM
Apri il file di configurazione
Accedi al www.conf
file da modificare:
sudo nano /etc/php-fpm.d/www.conf
Modifica le impostazioni dell'utente e del gruppo
Cambia l'utente e il gruppo Apache in Nginx all'interno del file.
Modifica post:
Salva le modifiche premendo (CTRL+O), quindi esci con (CTRL+X).
Riavviare il servizio PHP-FPM
Dopo aver modificato la configurazione, riavvia PHP-FPM per applicare le modifiche:
sudo systemctl restart php-fpm
Esempio di codice di blocco del server Nginx PHP-FPM
Configurazione di Nginx per l'elaborazione PHP
Per consentire a Nginx di gestire i file PHP, il blocco server deve essere configurato correttamente. L'esempio seguente dimostra la configurazione necessaria all'interno di server{}
blocco per l'elaborazione di file PHP.
Configurazione Nginx PHP-FPM
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;
}
Convalida della configurazione Nginx
Dopo aver aggiornato la configurazione, convalidarla per garantire l'assenza di errori di sintassi.
sudo nginx -t
L'output previsto dovrebbe confermare che la configurazione è corretta:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Riavvio del servizio Nginx
Per applicare le modifiche, riavviare il servizio Nginx:
sudo systemctl restart nginx
Questo riavvio è essenziale per le modifiche e affinché Nginx inizi a elaborare i file PHP con la nuova configurazione.
Conclusione
Va bene, questo conclude il nostro viaggio! Abbiamo configurato con successo PHP su Rocky Linux, ottimizzandolo per Apache o Nginx e ottimizzando PHP-FPM per prestazioni ottimali. Ricorda, controllare regolarmente i moduli e le configurazioni PHP garantisce che le cose funzionino senza intoppi. E non dimenticare di riavviare i servizi dopo eventuali modifiche.