Guida alla Configurazione di PHP in ServBay: modifica di php.ini, PHP-FPM e moduli estensione
ServBay offre agli sviluppatori web un ambiente PHP locale potente e flessibile. Per soddisfare le diverse esigenze dei progetti, potresti dover regolare varie impostazioni di PHP, come il limite di memoria, la dimensione massima dei file caricabili, il livello di reporting degli errori o abilitare specifici moduli di estensione.
Questo articolo descrive in dettaglio come modificare la configurazione di PHP all’interno di ServBay. ServBay raccomanda e fornisce un’interfaccia grafica intuitiva per gestire queste impostazioni. Sebbene sia utile conoscere la posizione e la struttura dei file di configurazione sottostanti (come php.ini
e php-fpm.conf
), è fortemente consigliato apportare modifiche tramite l’interfaccia grafica di ServBay per garantire la persistenza e la compatibilità delle configurazioni.
Avviso Importante
Non modificare manualmente i file di configurazione PHP generati da ServBay (situati in /Applications/ServBay/etc/php/<versione>/
e relative sottocartelle). Tali file sono gestiti da ServBay e qualunque modifica manuale rischia di essere sovrascritta durante aggiornamenti, riavvii o altre operazioni correlate. Tutte le modifiche vanno effettuate esclusivamente tramite l’interfaccia utente di ServBay.
Panoramica
In ServBay, ogni versione di PHP mantiene il proprio set di file di configurazione in una directory separata. Ad esempio, i file principali della configurazione di PHP 8.3 si trovano in /Applications/ServBay/etc/php/8.3
.
I file di configurazione fondamentali sono:
php.ini
: Il file principale di configurazione PHP, che influisce sulle impostazioni in ambienti CLI e Web.php-fpm.conf
: Il file di configurazione di PHP-FPM (FastCGI Process Manager), che determina il comportamento e la performance di PHP lato server web (come Caddy o Nginx).conf.d/
: Questa cartella contiene i file di configurazione di caricamento per i vari moduli estensione PHP (file.ini
), ad esempioxdebug.ini
,opcache.ini
, ecc.
Anche se questi file esistono, ServBay offre un modo più sicuro e pratico per modificarne le opzioni di configurazione.
Configurazione Tramite Interfaccia Utente di ServBay (Metodo Raccomandato)
ServBay mette a disposizione un’interfaccia grafica intuitiva che ti consente di modificare direttamente i parametri di configurazione di PHP. Dopo aver effettuato e salvato le modifiche tramite l’UI, ServBay applicherà automaticamente i cambiamenti e, quando necessario (solitamente automaticamente), riavvierà il servizio PHP senza bisogno di modificare file o usare il terminale.
Per accedere all’area di configurazione PHP:
- Apri la finestra principale di ServBay.
- Dal menu di navigazione a sinistra, clicca su Linguaggi.
- Nella lista dei linguaggi di sviluppo, trova e seleziona la versione PHP che desideri configurare (ad esempio, clicca su
PHP 8.3
). - Il pannello a destra mostrerà i dettagli e le opzioni di configurazione della versione PHP selezionata.
Un classico esempio della schermata di configurazione PHP appare così:
Solitamente l’interfaccia è suddivisa in tre sezioni principali che corrispondono alla configurazione di PHP-FPM, PHP (php.ini
) e ai moduli estensione. Vediamoli nel dettaglio.
Configurazione di PHP FPM
Suggerimento
Le impostazioni di php-fpm.conf
influenzano il comportamento di PHP nell’ambiente server Web. Le modifiche effettuate tramite l’interfaccia ServBay in questa sezione avranno priorità (sovrascrivendo) sulle stesse impostazioni presenti in php.ini
, ma solo per le richieste Web. Queste opzioni non influenzano l’esecuzione CLI di PHP.
I servizi web di ServBay (Caddy o Nginx) comunicano con PHP tramite PHP-FPM. Tramite la schermata di configurazione FPM, puoi regolare i parametri che influenzano prestazioni e stabilità dell’ambiente Web, tra cui:
- Gestione processi (
pm
): Come PHP-FPM gestisce i processi di lavoro (ad esempiodynamic
,static
). - Numero di processi (
pm.max_children
,pm.start_servers
, ecc.): Quanti processi figli massimi possono essere attivi, quanti al boot, ecc., impattando la capacità di gestire richieste simultanee. - Limite di memoria (
memory_limit
): Questo valore sovrascrive quello diphp.ini
, ma solo per le richieste Web. - Log e visualizzazione errori: Configura il percorso del log errori, il livello di logging, e se mostrare o meno gli errori in output sul browser.
Ad esempio, se vuoi alzare il limite di memoria PHP da un valore di default (come 64M o 128M) a 1G solo per il Web, ti basta trovare la voce memory_limit
nella sezione di configurazione FPM dell’UI di ServBay, selezionare 1G
dal menu a tendina e salvare. Questo influisce solo sugli script PHP chiamati via server Web, mentre quelli eseguiti via CLI rispetteranno il valore di memory_limit
del php.ini
.
Esempio di confronto: Se in php.ini
il parametro memory_limit
è impostato su 512M
e nella configurazione PHP FPM è 128M
:
- Eseguendo uno script PHP da CLI, il limite di memoria è
512M
. - Accedendo a uno script PHP via Web, il limite di memoria è
128M
.
Configurazione di php.ini
Suggerimento
Le voci del php.ini
sono globali e influenzano il comportamento di PHP sia in CLI che via Web. Tuttavia, come visto prima, le impostazioni omonime nel PHP FPM sovrascrivono quelle del php.ini
per l’ambiente Web.
La sezione di configurazione PHP dell’UI corrisponde alle principali opzioni presenti nel file php.ini
. Puoi qui modificare parametri generali quali:
post_max_size
: Imposta la dimensione massima dei dati inviati tramite POST.upload_max_filesize
: Imposta la dimensione massima dei file caricabili.date.timezone
: Specifica il fuso orario predefinito per PHP.display_errors
/error_reporting
: Stabilisce se mostrare gli errori a schermo e quali tipologie di errori devono essere segnalati.max_execution_time
: Imposta il tempo massimo di esecuzione per uno script (in secondi).disable_functions
/disable_classes
: Disabilita funzioni o classi PHP specifiche per motivi di sicurezza.open_basedir
: Limita il percorso del filesystem a cui PHP può accedere. Si consiglia di conservare i progetti nella directory predefinita/Applications/ServBay/www
, così da poter assegnare facilmente questa cartella aopen_basedir
senza dover specificare più percorsi.
È possibile modificare direttamente questi parametri comuni del php.ini
tramite l’interfaccia UI di ServBay.
Per una descrizione dettagliata di tutti i campi configurabili in php.ini
, consulta la documentazione ufficiale PHP: PHP Runtime Configuration.
Configurazione dei Moduli Estensione PHP
ServBay fornisce di default una vasta gamma di moduli estensione PHP, tra cui database, cache, debugging, supporto ai framework e altro. L’UI di ServBay rende semplice abilitare/disabilitare tali moduli e personalizzare i loro parametri specifici.
Alcune delle estensioni PHP più utilizzate e supportate da ServBay includono (ma non solo): xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
. ServBay supporta inoltre numerose altre estensioni, come quelle per database (MySQL, PostgreSQL, MongoDB), code di messaggistica e sistemi di cache.
Per attivare o disattivare un’estensione PHP:
- Nell’UI PHP di ServBay, passa alla scheda “Moduli estensione” (o simile).
- Trova il modulo desiderato (ad es.
xdebug
). - Usa l’interruttore corrispondente per attivarlo o disattivarlo.
- Per i moduli che consentono configurazioni aggiuntive (come
xDebug
), puoi modificare i parametri direttamente nella stessa schermata (es.xdebug.mode
,xdebug.client_port
, ecc.). - Premi Salva per applicare le modifiche.
Per l’elenco completo delle estensioni PHP supportate da ServBay e per maggiori dettagli, consulta la documentazione ServBay: Elenco moduli estensione PHP (consulta la versione più aggiornata).
Comprendere la Struttura dei File di Configurazione PHP (Modifica Manuale Non Raccomandata)
Anche se la modifica tramite interfaccia ServBay è fortemente raccomandata, comprendere la posizione e la struttura dei file di configurazione sottostanti aiuta a capire meglio il funzionamento di PHP.
I file di configurazione PHP generati da ServBay si trovano in /Applications/ServBay/etc/php/<versione>/
.
php.ini
: File di configurazione principale.php-fpm.conf
: File di configurazione del gestore processi PHP-FPM.conf.d/
: Cartella che contiene i file.ini
per i vari moduli estensione.
Esempio di Struttura di un File php.ini
Il file php.ini
segue il formato INI. Ecco alcuni esempi di configurazione comunemente usati:
; Modificare il limite di memoria
memory_limit = 256M
; Modificare il limite di upload file
upload_max_filesize = 50M
post_max_size = 50M
; Modificare la configurazione del fuso orario
date.timezone = "Asia/Shanghai" ; oppure "UTC", "America/New_York", ecc. (impostare secondo necessità)
; Abilitare la visualizzazione degli errori (solo per ambienti di sviluppo!)
display_errors = On
error_reporting = E_ALL
; Modificare il tempo massimo di esecuzione
max_execution_time = 300
; Limitare i percorsi accessibili dal filesystem (esempio)
; open_basedir = /Applications/ServBay/www/:/tmp/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Esempio di Struttura di un File php-fpm.conf
Il file di configurazione php-fpm.conf
include impostazioni globali e di pool. ServBay solitamente crea un pool predefinito chiamato www
.
[global]
; Percorso del log errori globale
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Indirizzo e porta di ascolto o file socket
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Utente e gruppo (usualmente ServBay esegue con l’utente corrente)
; user = servbay-demo
; group = staff
; Gestione processi (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Numero massimo processi figli
pm.start_servers = 2 ; Numero processi creati all’avvio
pm.min_spare_servers = 1 ; Minimo processi figli inattivi
pm.max_spare_servers = 6 ; Massimo processi figli inattivi
pm.max_requests = 1024 ; Numero massimo di richieste per processo prima del riavvio (previene perdite di memoria)
; Abilitare il log delle query lente (richieste con durata superiore a request_slowlog_timeout vengono loggate)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; Impostazioni PHP che sovrascrivono quelle in php.ini (esempio)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Esempio di Configurazione Moduli PHP (conf.d/)
I file .ini
nella cartella conf.d/
vengono usati per caricare e configurare specifiche estensioni. Ad esempio, il file xdebug.ini
potrebbe includere:
[Xdebug]
; Carica l’estensione Xdebug
zend_extension = xdebug.so
; Modalità Xdebug (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Modalità di avvio del debug (yes, trigger, develop)
; yes: sempre abilita il debug
; trigger: il debug parte con un trigger (parametro GET/POST o cookie)
; develop: solo strumenti di supporto allo sviluppo (es. stack trace)
xdebug.start_with_request=yes
; Host e porta client per la connessione con l’IDE di debug
xdebug.client_host=localhost
xdebug.client_port=39083
; Percorso log di Xdebug
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Ricorda nuovamente: anche se puoi trovare i file in queste posizioni, evita la modifica manuale. Utilizza sempre l’interfaccia ServBay!
Applicazione delle Modifiche: Riavvio del Servizio PHP
Dopo aver salvato le nuove configurazioni tramite ServBay UI, ServBay solitamente rileva e applica automaticamente le modifiche. In alcuni casi, potrebbe essere necessario riavviare manualmente il servizio PHP relativo per garantire che tutte le modifiche abbiano effetto.
Ecco come procedere:
Riavvio Tramite Interfaccia Utente ServBay
- Apri la finestra principale di ServBay.
- Dal menu di navigazione a sinistra, clicca su Pacchetti.
- Trova la versione di PHP su cui hai effettuato modifiche.
- Premi il pulsante di riavvio accanto a quella versione di PHP (solitamente simboleggiato da una freccia circolare).
Riavvio Tramite Comando servbayctl
Se preferisci usare la riga di comando, puoi affidarti allo strumento integrato servbayctl
per gestire i servizi, incluso il riavvio di una versione PHP specifica.
Apri il Terminale ed esegui il seguente comando (sostituendo 8.3
con la versione PHP desiderata):
servbayctl restart php 8.3
Dopo il comando, ServBay riavvierà il processo PHP-FPM della versione indicata, rendendo attive le nuove impostazioni.
Domande Frequenti (FAQ)
D: Ho modificato manualmente il file
php.ini
, perché le modifiche non sono efficaci o vengono ripristinate?- R: ServBay controlla e genera i file di configurazione dei propri pacchetti. Qualsiasi modifica manuale può essere sovrascritta durante aggiornamenti o riavvii. Utilizza sempre l’interfaccia di ServBay per impostazioni PHP permanenti.
D: Come posso aumentare il limite di memoria o la dimensione dei file caricabili in PHP?
- R: Apri l’UI di ServBay e vai su Linguaggi -> scegli la versione PHP. Nella sezione FPM modifica
memory_limit
(per il Web), nella sezione php.ini modificaupload_max_filesize
epost_max_size
(valide globalmente, potrebbero essere sovrascritte da FPM per il Web). Salva e riavvia PHP.
- R: Apri l’UI di ServBay e vai su Linguaggi -> scegli la versione PHP. Nella sezione FPM modifica
D: Come posso attivare o configurare Xdebug?
- R: Nell’UI ServBay, vai su Linguaggi -> scegli la versione PHP. Nella sezione “moduli estensione”, trova
xdebug
, attivalo e regola parametri comexdebug.mode
,xdebug.client_host
,xdebug.client_port
secondo le tue esigenze e il tuo IDE. Salva e riavvia PHP.
- R: Nell’UI ServBay, vai su Linguaggi -> scegli la versione PHP. Nella sezione “moduli estensione”, trova
D: Qual è la differenza tra
php.ini
e la configurazione PHP-FPM? Quale devo modificare?- R:
php.ini
è il file di configurazione globale per PHP, valido sia in CLI che per il Web. Le impostazioni PHP-FPM (php-fpm.conf
) sono specifiche per l’esecuzione Web server e sovrascrivono le omonime delphp.ini
solo per l’ambiente Web. Se devi cambiare impostazioni che influiscono sulle richieste Web (es. limite memoria, tempo di esecuzione, error display), controlla e modifica prima la configurazione FPM; per impostazioni valide ovunque (es. fuso orario, funzioni disabilitate), agisci sulphp.ini
. L’interfaccia ServBay separa queste sezioni in modo chiaro.
- R:
Conclusione
ServBay permette di gestire facilmente e in sicurezza tutte le impostazioni PHP – inclusi php.ini
, PHP-FPM e i moduli estensione – tramite la sua interfaccia utente, senza rischi di conflitti o sovrascritture. Modificando e salvando le impostazioni nell’UI, e riavviando il servizio PHP quando necessario, puoi assicurarti che il tuo ambiente di sviluppo sia sempre ottimale per le diverse esigenze progettuali. Sebbene conoscere la struttura dei file sia utile a scopo illustrativo, effettua sempre i cambiamenti reali tramite ServBay: è il metodo migliore per evitare la perdita delle impostazioni personalizzate. Sfrutta la potenza delle opzioni ServBay per personalizzare facilmente il tuo ambiente PHP per ogni singolo progetto!