ServBay PHP-versiebeheer: Gids voor CLI- en Website-omgevingconfiguratie
ServBay is een krachtige lokale webontwikkeltool, speciaal ontworpen voor macOS die meerdere programmeertalen en databases ondersteunt. In dit artikel ontdek je hoe je flexibel verschillende PHP-versies voor projecten beheert in ServBay, zowel via de opdrachtregel als per specifieke website. Door ServBay’s PHP-versiebeheer onder de knie te krijgen, verhoog je je ontwikkelsnelheid aanzienlijk en waarborg je projectisolatie en stabiliteit.
1. CLI-omgeving: Projectspecifieke PHP-versies met .servbay.config
beheren
Door in de hoofdmap van je project een .servbay.config
-bestand aan te maken, kan iedere ontwikkelaar per project een eigen PHP-versie specificeren voor de CLI. ServBay detecteert automatisch de juiste PHP-omgeving op basis van je huidige terminalmap, waardoor versieconflicten tussen projecten worden voorkomen.
1. Rol en principe van .servbay.config
- Versiebeheer per project: ServBay ondersteunt het gelijktijdig installeren en draaien van meerdere PHP-versies, van PHP 5.6 tot de nieuwste stabiele en ontwikkelversies. Met
.servbay.config
specificeer je exact welke PHP-versie elk project nodig heeft. - Niet-invasieve wissel: Zodra je via de terminal naar een map met een
.servbay.config
-bestand navigeert, detecteert ServBay dit automatisch en past het de omgevingsvariabelen in de huidige terminalsessie (vooralPATH
) tijdelijk aan. Hierdoor verwijzen commando’s alsphp
encomposer
direct naar de opgegeven PHP-versie. Zodra je de map verlaat, worden de instellingen weer teruggezet naar de globale standaard. Dit laat het systeem ongemoeid en heeft geen verdere bijwerkingen.
2. Configuratiemethode
Maak in de hoofdmap van je project een .servbay.config
-bestand aan en voeg de volgende regels toe om de PHP-versie te specificeren:
bash
# Geef de te gebruiken PHP-versie voor dit project op (voorbeeld: PHP 8.3 gebruiken)
PHP_VERSION=8.3
# Indien je project ook afhankelijk is van een specifieke Node.js-versie, kun je die ook opgeven (voorbeeld: Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- De waarde van
PHP_VERSION
moet overeenkomen met een geïnstalleerde PHP-versie in ServBay, meestal het hoofd- of hoofd-subversienummer (zoals7.4
,8.1
,8.3
,8.5
etc.). Zorg dat de opgegeven versie in ServBay is geïnstalleerd en geactiveerd. NODE_VERSION
werkt op dezelfde manier en specificeert de voor dit project te gebruiken Node.js-versie.
Activering controleren:
Open een terminal in de projectmap met .servbay.config
en voer de volgende commando’s uit om te controleren:
bash
$ pwd # Controleer of je je in de hoofdmap van je project bevindt
$ php -v # Controleer of de geactiveerde PHP-versie overeenkomt met je configuratie (bijvoorbeeld: PHP 8.3.x)
$ composer install # Afhankelijkheden worden geïnstalleerd op basis van de actieve PHP-versie
1
2
3
2
3
Als de versie na het aanpassen van .servbay.config
niet wordt geswitcht, herstart dan de terminal of voer cd .
uit om ServBay te dwingen de configuratie opnieuw te laden.
3. Belangrijke aandachtspunten & geavanceerde tips
- Versiecompatibiliteit: Als je bij het uitvoeren van projectcommando's fouten als "Class not found" of "Call to undefined function" tegenkomt, controleer dan eerst welk PHP-versiebereik je projectafhankelijkheden (zoals
composer.json
) vereisen. Zorg dat je een compatibele PHP-versie instelt. Sommige oudere projecten gebruiken mogelijk functies of extensies die in nieuwere PHP-versies ontbreken (bijvoorbeeld: demcrypt
-extensie werd verwijderd in PHP 7.2). - Globale standaard: Als er geen
.servbay.config
staat in de huidige of bovenliggende map, gebruikt ServBay de standaard PHP-versie ingesteld via de grafische interface. - Meerdere services beheren:
.servbay.config
kan ook gebruikt worden om de Node.js-versie vast te leggen (NODE_VERSION
). Dit is ideaal voor projecten met een PHP-backend en een Node.js-gebaseerde frontend-tooling (zoals Webpack of Vite).
4. Voorbeeldrun
Onderstaand voorbeeld toont hoe je met .servbay.config
per projectfolder automatisch wisselt van PHP-versie:
Afbeeldingsbeschrijving: In ServBay zie je dat bij het openen van een map met een specifieke
.servbay.config
en uitvoeren van php -v
, de terminal automatisch overschakelt naar de daar gespecificeerde PHP-versie.
2. Website-omgeving: PHP-versies beheren via de ServBay GUI
ServBay’s grafische omgeving maakt het eenvoudig om per website een eigen PHP-versie te configureren. De PHP-versie van de website-omgeving staat daarbij volledig los van de CLI-omgeving, zodat je per site flexibel kunt kiezen.
1. Configuratiestappen
- Open de ServBay-applicatie: Start ServBay op macOS.
- Ga naar Websitebeheer: Klik in de linkerzijbalk van het hoofdvenster op Websites.
- Website toevoegen of bewerken:
- Klik linksonder op de + knop om een nieuwe website te configureren.
- Selecteer een bestaande website om deze te bewerken.
- Website-eigenschappen instellen:
- Root Directory (websiteroot): Geef de map op waar je websitebestanden staan. Gebruik bij voorkeur een submap van ServBay’s standaardpad
/Applications/ServBay/www/
, bijvoorbeeld:/Applications/ServBay/www/jouw-website-naam/public
(voor Laravel of Symfony-projecten). - Domain (domein): Stel het lokale ontwikkeldomein van de site in, bijvoorbeeld
jouw-website-naam.servbay.demo
. ServBay zorgt automatisch voor lokale DNS-resolutie en HTTPS-certificaten (via ServBay User CA of ServBay Public CA), waardoor lokaal testen eenvoudig wordt. - PHP Version (PHP-versie): Kies uit het dropdown-menu de gewenste PHP-versie voor de site. ServBay toont alleen geïnstalleerde PHP-versies (bijvoorbeeld 7.4, 8.1, 8.3, 8.5 etc.).
- Root Directory (websiteroot): Geef de map op waar je websitebestanden staan. Gebruik bij voorkeur een submap van ServBay’s standaardpad
- Configuratie opslaan: Klik na het instellen op Opslaan. ServBay past de wijzigingen toe; mogelijk is het nodig de webserver en PHP-FPM opnieuw te laden of te starten.
2. Technische details & voordelen
- Service-isolatie: Voor elke website draait de gekozen PHP-versie doorgaans in een eigen PHP-FPM process pool. Dit zorgt voor volledige isolatie: fouten of geheugenlekken bij de ene site beïnvloeden de andere niet.
- Prestatieoptimalisatie: De ServBay-pakketten (inclusief PHP) zijn geoptimaliseerd voor zowel ARM64 (Apple Silicon) als x86_64, wat hoge prestaties op elk hardwareplatform mogelijk maakt.
- Probleemoplossing:
- Bekijk het PHP-foutenlogboek: PHP-fouten tijdens de websitewerking vind je in
/Applications/ServBay/var/log/php/php_error.log
. - Controle van PHP-FPM-status: Met het ServBay CLI-hulpmiddel
servbayctl
controleer je de status van specifieke PHP-versies, bijvoorbeeldservbayctl status php 8.3
.
- Bekijk het PHP-foutenlogboek: PHP-fouten tijdens de websitewerking vind je in
3. Webserver- & database-integratie
ServBay biedt flexibiliteit voor het gebruik van verschillende webservers en databases, afhankelijk van je projectbehoeften:
- Webserver-ondersteuning: Vanaf ServBay 1.7.0 kun je eenvoudig per website wisselen tussen Apache, Nginx en Caddy. Deze servers integreren direct met de juiste PHP-FPM-processen.
- Database-integratie: ServBay ondersteunt meerdere versies van MySQL, MariaDB, PostgreSQL, MongoDB en Redis. Je kunt binnen je websiteconfiguratie of in de projectcode verbinden met een specifieke database-instantie, handig voor projecten die afhangen van een bepaalde databasetype of -versie (bijvoorbeeld Laravel-projecten die beter werken met MariaDB 11.x).
3. Samenwerking tussen omgevingen & best practices
Door de onafhankelijkheid tussen CLI-omgeving en website-omgeving voor PHP-versiebeheer te doorzien, kun je de optimale configuratie per ontwikkelsituatie kiezen:
Scenario | CLI-omgevingconfiguratie (.servbay.config ) | Website-omgevingconfiguratie (ServBay GUI) | Opmerkingen |
---|---|---|---|
Legacy systemen | Stel PHP_VERSION=5.6 in de projectroot in | Kies PHP 5.6 in de websiteconfiguratie | Zorg dat benodigde versie & extensies in ServBay geïnstalleerd zijn |
Nieuwe projecten (bv. Laravel 11) | Stel PHP_VERSION=8.3 (of hoger) in, evt. ook NODE_VERSION=20 | Maak een nieuwe website, root naar public , kies PHP 8.3+, stel domein/HTTPS in | Zorg voor gelijke PHP-versies in CLI (Composer, Artisan, Node-build) en webomgeving |
Testen van toekomstige PHP-versies | Stel in testproject PHP_VERSION=8.5 in | Maak testsite aan met PHP 8.5 | Handig voor compatibiliteitstests vooraf |
Composer-commando’s uitvoeren | Zorg dat de juiste PHP-versie in .servbay.config staat | N.v.t. (Composer is alleen CLI) | Composer gebruikt de geactiveerde PHP-versie van de huidige terminal |
Belangrijke aandachtspunten
- Verschil tussen CLI en web: Hoewel je dezelfde PHP-versie gebruikt, kunnen de configuratie en extensie-lading van PHP in de CLI (opdrachtregel) en webserveromgeving (PHP-FPM) afwijken. Zo staat de
opcache
-extensie in PHP-FPM veelal standaard aan (performance), maar is deze doorgaans uitgeschakeld in de CLI. Controleer bij onverwacht gedrag altijd de gebruiktephp.ini
en geladen extensies; iedere PHP-versie in ServBay heeft zijn eigen configuratie. - Update ServBay Runtime: Zorg dat je ServBay-app en Runtime up-to-date blijven. Het ServBay-team levert regelmatig updates, inclusief PHP-releases en security-patches. Updaten van ServBay updatet doorgaans ook de Runtime voor de nieuwste functies en verbeteringen.
Veelgestelde vragen (FAQ)
Vraag: Wat als de PHP-versie van de CLI-omgeving en de website-omgeving verschillen/conflicteren?
Antwoord: De CLI-omgeving (geregeld via .servbay.config
) en de website-omgeving (via de ServBay GUI) zijn geheel onafhankelijk. .servbay.config
beïnvloedt alleen welke PHP-versie de terminalcommando’s als php
gebruiken; de websiteconfiguratie bepaalt welke PHP-versie (via PHP-FPM) de webserver gebruikt voor webaanvragen. Er is geen direct conflict. Je kunt voor één project een andere PHP-versie kiezen voor de CLI (voor Composer of Artisan) en voor de webomgeving (voor de site zelf), maar doorgaans wordt aanbevolen beide gelijk te houden voor maximale overeenstemming tussen ontwikkeling en productie.
Samenvatting
Door een combinatie van het .servbay.config
-bestand en de intuïtieve grafische interface, biedt ServBay ontwikkelaars krachtige en flexibele mogelijkheden voor PHP-versiebeheer. Of je nu legacy projecten onderhoudt op oude PHP-versies of nieuwe applicaties bouwt met de modernste PHP-versies: met ServBay werk je razendsnel en blijft je lokale omgeving consistent met productie. Gebruik deze functies verstandig en verhoog hiermee je efficiëntie en projectstabiliteit.