Gestione delle versioni PHP in ServBay: guida per la CLI e la configurazione dell’ambiente web
ServBay è uno strumento potente per lo sviluppo web locale, progettato specificamente per macOS e compatibile con numerosi linguaggi di programmazione e database. In questo articolo scoprirai come gestire con flessibilità versioni diverse di PHP per differenti progetti in ServBay, sia tramite l’utilizzo della riga di comando che per il servizio di siti web specifici. Apprendere il meccanismo di gestione delle versioni PHP di ServBay ti permetterà di migliorare efficacemente il tuo flusso di lavoro e di garantire isolamento e stabilità agli ambienti progetto.
1. Ambiente da riga di comando: gestione PHP per progetto con .servbay.config
Creando un file .servbay.config
nella cartella radice del tuo progetto, puoi impostare in modo indipendente la versione PHP usata dalla CLI per ciascun progetto. ServBay rileva in automatico la presenza del file nella cartella corrente del terminale, caricando la giusta versione di PHP e isolando così ambiente e progetti diversi, evitando conflitti di configurazione globale.
1. Scopo e funzionamento di .servbay.config
- Controllo versione a livello di progetto: ServBay ti consente di installare e utilizzare più versioni PHP contemporaneamente, da PHP 5.6 fino alle release più recenti (stabili e di sviluppo). Tramite
.servbay.config
puoi specificare esattamente quale versione PHP utilizzare per ogni progetto. - Switch non invasivo: Spostandoti tramite
cd
nella riga di comando all’interno di una directory che contiene il file.servbay.config
, ServBay rileverà automaticamente il file e modificherà temporaneamente le variabili d’ambiente (in particolarePATH
) della sessione attiva. In questo modo i comandiphp
,composer
e simili punteranno all’eseguibile della versione PHP scelta. Uscendo da tale directory, l’ambiente torna automaticamente alle impostazioni PHP globali di ServBay, senza alcun effetto collaterale sul sistema.
2. Come configurare .servbay.config
Nella cartella radice del tuo progetto crea un file chiamato .servbay.config
ed inserisci il seguente contenuto per specificare la versione PHP desiderata:
# Specifica la versione di PHP da usare per questo progetto (esempio: PHP 8.3)
PHP_VERSION=8.3
# Se il tuo progetto richiede anche una specifica versione di Node.js, puoi indicarla (esempio: Node.js 20)
# NODE_VERSION=20
2
3
4
5
- Il valore di
PHP_VERSION
deve corrispondere a una versione di PHP che hai già installato e abilitato in ServBay, tipicamente nel formato major o major.minor (7.4
,8.1
,8.3
,8.5
, ecc.). Assicurati che la versione sia effettivamente presente in ServBay. - Anche
NODE_VERSION
può essere specificato per indicare la versione Node.js richiesta dal progetto.
Verificare che la configurazione sia attiva:
Apri il terminale nella directory che contiene .servbay.config
ed esegui:
$ pwd # Verifica che la directory corrente sia la radice del progetto
$ php -v # Controlla che la versione di PHP corrisponda a quella configurata (es. PHP 8.3.x)
$ composer install # L’installazione e risoluzione delle dipendenze userà la versione PHP attiva
2
3
Se dopo aver modificato .servbay.config
la versione non risulta aggiornata, prova a chiudere/riaprire il terminale o eseguire cd .
per forzare ServBay a ricaricare la configurazione.
3. Suggerimenti e best practice
- Compatibilità delle versioni: Se ottieni errori tipo "Class not found" o "Call to undefined function", controlla i vincoli sulle versioni PHP richiesti tra le dipendenze del progetto (ad esempio in
composer.json
) e la versione PHP scelta. Alcuni progetti legacy potrebbero dipendere da funzionalità o estensioni non più presenti nelle release recenti (ad es.mcrypt
rimossa in PHP 7.2). - Valore predefinito globale: In assenza di un file
.servbay.config
nella directory corrente o in una delle superiori, ServBay usa la versione PHP predefinita impostata tramite la GUI nelle impostazioni globali. - Gestione congiunta di più servizi:
.servbay.config
può gestire, oltre a PHP, anche la versione Node.js (NODE_VERSION
). Utile in progetti che impiegano PHP per il backend e Node.js per la build front-end (es. Webpack, Vite).
4. Esempio pratico d’uso
Ecco una dimostrazione del cambio automatico di versione PHP tra diverse cartelle progetto tramite .servbay.config
:
Descrizione immagine: Su ServBay, accedendo tramite terminale a cartelle con differenti file
.servbay.config
ed eseguendo php -v
, vedrai che la versione PHP si aggiorna automaticamente secondo quanto specificato nel file.
2. Ambiente web: gestione delle versioni PHP tramite interfaccia grafica
L’interfaccia grafica di ServBay permette di configurare in modo semplice e visivo la versione PHP per ciascun sito gestito dalla piattaforma. La versione PHP usata nell’ambiente web è autonoma rispetto a quella CLI, consentendo grande flessibilità nella scelta.
1. Procedura di configurazione
- Avvia l’interfaccia grafica di ServBay: Apri l'applicazione ServBay.
- Gestione delle proprietà sito: Clicca sulla scheda Siti Web (Websites) nel menu di navigazione a sinistra.
- Aggiungi o modifica un sito esistente:
- Premi il pulsante + in basso a sinistra per aggiungere un nuovo sito.
- Seleziona un sito esistente per modificarne la configurazione.
- Imposta le proprietà del sito:
- Root Directory (Directory principale): Indica la cartella contenente i file del sito. Si consiglia di utilizzare una sottocartella del percorso predefinito ServBay, ad esempio
/Applications/ServBay/www/your-website-name/public
(ideale per progetti Laravel o Symfony). - Domain (Dominio): Configura il dominio di sviluppo locale, per esempio
your-website-name.servbay.demo
. ServBay abilita la creazione automatica delle regole DNS locali e dei certificati HTTPS tramite la propria CA (ServBay User CA o ServBay Public CA), semplificando notevolmente sviluppo e test. - PHP Version (Versione PHP): Seleziona la versione PHP desiderata dal menu a tendina. Vedrai elencate tutte le versioni PHP installate e attive su ServBay (es. 7.4, 8.1, 8.3, 8.5, ecc.).
- Root Directory (Directory principale): Indica la cartella contenente i file del sito. Si consiglia di utilizzare una sottocartella del percorso predefinito ServBay, ad esempio
- Salva la configurazione: Al termine, clicca su "Salva". ServBay applicherà automaticamente le modifiche, potresti dover ricaricare o riavviare Web server e processi PHP-FPM correlati.
2. Dettagli tecnici e vantaggi
- Isolamento dei servizi: Ogni sito configurato in ServBay utilizza solitamente un proprio pool di processi PHP-FPM indipendenti. Questo garantisce isolamento tra gli ambienti PHP dei diversi siti, evitando che errori o memory leak in uno influenzino altri.
- Ottimizzazione delle prestazioni: I pacchetti software di ServBay (inclusi tutti i PHP) sono ottimizzati sia per architettura ARM64 (Apple Silicon) che X86_64, offrendo ottime prestazioni su ogni hardware.
- Debug e verifica errori:
- Controlla i log errori PHP: gli errori generati dal sito vengono registrati nel file
/Applications/ServBay/var/log/php/php_error.log
. - Stato processi PHP-FPM: tramite il tool CLI di ServBay
servbayctl
puoi verificare lo stato di una versione PHP specifica, ad esempio:servbayctl status php 8.3
.
- Controlla i log errori PHP: gli errori generati dal sito vengono registrati nel file
3. Integrazione con server web e database
ServBay offre la massima flessibilità consentendoti di selezionare server web e database differenti secondo le esigenze:
- Supporto server web: Da ServBay 1.7.0 in poi puoi scegliere facilmente quale server web utilizzare per ogni sito: Apache, Nginx o Caddy, perfettamente integrati con i processi PHP-FPM gestiti da ServBay.
- Gestione database: Puoi installare e amministrare contemporaneamente più versioni di MySQL, MariaDB, PostgreSQL, MongoDB e Redis. Il sito può essere configurato per collegarsi agli istanze desiderate, o puoi gestire il collegamento tramite il codice del progetto, affrontando così esigenze che richiedono database specifici (es. alcuni progetti Laravel preferiscono MariaDB 11.x).
3. Collaborazione tra ambienti e best practice
Capire l’indipendenza e le modalità di configurazione delle versioni PHP tra CLI e ambiente web ti aiuterà a scegliere la soluzione ottimale per ogni scenario:
Scenario | Configurazione CLI (.servbay.config ) | Configurazione ambiente web (GUI ServBay) | Note |
---|---|---|---|
Gestione progetti legacy | Imposta PHP_VERSION=5.6 nella radice del progetto | Scegli PHP 5.6 tra le impostazioni del sito | Assicurati che le versioni PHP e le estensioni richieste siano installate |
Nuovo progetto (es. Laravel 11) | Configura PHP_VERSION=8.3 (o superiore) ed eventualmente NODE_VERSION=20 | Nuovo sito, root verso la cartella public del progetto, PHP 8.3+ e dominio di sviluppo con HTTPS | Mantieni la coerenza tra CLI (Composer, Artisan, strumenti Node.js) e ambiente web |
Testing versioni PHP future | Imposta PHP_VERSION=8.5 nella radice del progetto test | Nuovo sito con PHP 8.5 | Utile per effettuare test di compatibilità con release future |
Esecuzione di Composer | Assicurati che .servbay.config indichi la versione PHP corretta in questa o nelle directory superiori | N/A (Composer si usa principalmente da CLI) | Composer userà la versione PHP attiva nella sessione terminale |
Note importanti
- Differenze tra CLI e Web: Pur avendo lo stesso numero di versione, PHP in CLI e attraverso PHP-FPM (Web) può comportarsi in modo diverso per impostazioni predefinite o estensioni caricate. Ad esempio, l’estensione
opcache
è spesso abilitata di default nel PHP-FPM per migliorare le performance, ma disattivata in CLI. In caso di comportamenti differenti, controlla i rispettivi filephp.ini
e le estensioni caricate (ogni versione PHP in ServBay ha il suo propriophp.ini
). - Tieniti aggiornato: Verifica di aver sempre installata la versione più recente di ServBay e del runtime. Il team rilascia costantemente aggiornamenti e patch di sicurezza per PHP ed altri pacchetti. L’update di ServBay aggiorna automaticamente anche il runtime, garantendoti novità e sicurezza.
Domande frequenti (FAQ)
D: Cosa succede se c’è un conflitto tra la versione PHP della CLI e quella dell’ambiente web?
R: Le versioni PHP gestite dalla CLI (tramite .servbay.config
) e dall’ambiente web (tramite la GUI di ServBay) sono indipendenti. .servbay.config
influisce solo su quale versione è usata dai comandi nel terminale; la configurazione sito determina quale versione PHP-FPM è usata dal server web (Apache/Nginx/Caddy) per rispondere alle richieste HTTP. Non esiste un conflitto diretto tra le due; tecnicamente puoi usare una versione PHP nella CLI (per Composer o Artisan) e una diversa a livello Web per lo stesso progetto, anche se per coerenza e semplicità si consiglia di mantenerle uguali.
Conclusione
Grazie al file .servbay.config
e all’intuitivo pannello grafico, ServBay offre agli sviluppatori la massima potenza e flessibilità nella gestione delle versioni PHP. Che tu stia lavorando su progetti legacy che richiedono versioni obsolete o sviluppando nuove applicazioni con le ultime release, ServBay ti permette di allineare perfettamente l’ambiente locale alle necessità di produzione, aumentare la produttività e mantenere affidabilità nei progetti.