ServBay PHP Configuratiegids: php.ini-, PHP-FPM- en extensie-instellingen aanpassen
ServBay biedt webontwikkelaars een krachtige en flexibele lokale PHP-ontwikkelomgeving. Afhankelijk van de eisen van je projecten zul je mogelijk diverse PHP-instellingen willen aanpassen, zoals het geheugenlimiet, de maximale bestandsgrootte voor uploads, het foutmeldingsniveau of het inschakelen van specifieke extensies.
Dit artikel legt stap voor stap uit hoe je PHP-instellingen wijzigt binnen ServBay. ServBay raadt aan én biedt een handige grafische gebruikersinterface (UI) om deze instellingen te beheren. Kennis van de locatie en structuur van onderliggende configuratiebestanden (zoals php.ini
en php-fpm.conf
) kan nuttig zijn, maar wij adviseren sterk om je wijzigingen via de ServBay-interface te doen. Dit garandeert dat instellingen persistent en compatibel blijven.
Belangrijke mededeling
Bewerk nooit handmatig de PHP-configuratiebestanden die door ServBay worden gegenereerd (te vinden op /Applications/ServBay/etc/php/<versie>/
en submappen). Deze bestanden worden beheerd door ServBay; eigenhandige aanpassingen worden overschreven wanneer ServBay wordt bijgewerkt, herstart of andere relevante acties uitvoert. Alle configuratiewijzigingen dienen via de ServBay-interface te gebeuren.
Overzicht
Binnen ServBay heeft elke PHP-versie zijn eigen configuratiemap. Voor PHP 8.3 bevindt het hoofdconfiguratiebestand zich bijvoorbeeld in de map /Applications/ServBay/etc/php/8.3
.
De belangrijkste configuratiebestanden zijn:
php.ini
: Het hoofdconfiguratiebestand van PHP, geldt voor zowel CLI als webomgeving.php-fpm.conf
: Configuratiebestand voor PHP-FPM (FastCGI Process Manager), bepaalt hoe PHP via de webserver (zoals Caddy of Nginx) draait en presteert.conf.d/
: Deze map bevat configuratiebestanden voor afzonderlijke PHP-extensies (.ini
-bestanden), zoalsxdebug.ini
,opcache.ini
etc.
Hoewel deze bestanden aanwezig zijn, biedt ServBay een veiligere en simpeler manier om je instellingen te wijzigen.
Configureren via de ServBay-interface (aanbevolen methode)
ServBay heeft een overzichtelijke grafische interface waarmee je PHP-instellingen direct en eenvoudig aanpast. Zodra je een wijziging in de interface maakt en opslaat, past ServBay deze automatisch toe en – indien nodig (meestal automatisch) – herstart het de PHP-dienst. Je hoeft dus geen bestanden handmatig te bewerken of commando’s uit te voeren.
Toegang tot het PHP-configuratiescherm:
- Open het hoofdvenster van ServBay.
- Klik in de linkerzijbalk op Talen.
- Zoek in de lijst met ontwikkeltalen de gewenste PHP-versie en selecteer deze (bijvoorbeeld
PHP 8.3
). - Aan de rechterzijde verschijnen nu alle details en configuratieopties voor die PHP-versie.
Een typisch PHP-configuratiescherm ziet er als volgt uit:
De interface is doorgaans opgedeeld in drie delen: PHP-FPM-instellingen, PHP (php.ini
) en extensiemodules. We bespreken ze hieronder één voor één.
PHP FPM-instellingen
Tip
De instellingen in php-fpm.conf
zijn van invloed op het gedrag van PHP binnen de webserveromgeving. Aanpassingen die via de ServBay-interface in dit gedeelte worden gedaan, hebben voorrang op (en overschrijven) de gelijknamige opties uit php.ini
, maar zijn alleen van toepassing op webverzoeken. Ze beïnvloeden niet de werking van PHP op de command line (CLI).
De webserver-mogelijkheden van ServBay (Caddy of Nginx) communiceren met PHP via PHP-FPM. Met het FPM-configuratiescherm kun je o.a. deze parameters aanpassen, die direct invloed hebben op de performance en stabiliteit van je webomgeving:
- Procesbeheer (
pm
): Hoe PHP-FPM werkprocessen start en beheert (bijv.dynamic
,static
). - Aantal processen (
pm.max_children
,pm.start_servers
, enz.): Maximaal aantal child-processen, het aantal processen bij het opstarten, enzovoorts. - Geheugenlimiet (
memory_limit
): Deze optie overschrijft de gelijknamige instelling inphp.ini
, enkel voor webverzoeken. - Foutlog en foutweergave: Instellen van het logbestand, het foutniveau en of fouten in de browser worden getoond.
Wil je bijvoorbeeld het geheugenlimiet voor PHP in de webomgeving verhogen van de standaardwaarde (zoals 64M of 128M) naar 1G, dan kies je in de ServBay-interface bij het onderdeel PHP FPM bij memory_limit
simpelweg 1G
uit het keuzemenu en sla je op. Deze wijziging is alleen van toepassing op scripts die via de webserver worden aangesproken – scripts die je via de command line uitvoert blijven onderhevig aan de instelling uit php.ini
.
Voorbeeldsituatie: Als het memory_limit
in php.ini
staat op 512M
, maar binnen de PHP-FPM-configuratie op 128M
:
- Scripts via de CLI mogen maximaal
512M
geheugen gebruiken. - Via de webserver aangeroepen scripts hebben een limiet van
128M
.
php.ini-instellingen
Tip
De opties in php.ini
zijn globaal en gelden voor zowel CLI als webomgeving. Zoals hierboven beschreven, kunnen FPM-instellingen met dezelfde naam de instellingen uit php.ini
overschrijven (voor web).
Het PHP-gedeelte komt overeen met de kerninstellingen uit het php.ini
-bestand. Hier configureer je o.a.:
post_max_size
: Maximale grootte voor gegevens verzonden via POST.upload_max_filesize
: Maximale toegestane grootte voor uploads.date.timezone
: Standaardtijdzone voor PHP.display_errors
/error_reporting
: Welke fouten getoond worden op de pagina, en op welk niveau.max_execution_time
: Maximale uitvoeringstijd van een script in seconden.disable_functions
/disable_classes
: Bepaalde PHP-functies of -klassen uitschakelen om de veiligheid te verhogen.open_basedir
: Bestandsysteemtoegang beperken tot bepaalde paden. Het is aan te raden al je websiteprojecten op te slaan onder de standaardrootmap van ServBay:/Applications/ServBay/www
, zodat je dit pad eenvoudig kunt instellen vooropen_basedir
zonder meerdere paden te hoeven opgeven.
Al deze veelvoorkomende php.ini
-opties kun je direct via de ServBay-interface aanpassen.
Voor een volledig overzicht van alle opties in php.ini
, raadpleeg de officiële documentatie van PHP: PHP Runtime Configuration.
PHP-extensiemodules instellen
ServBay wordt geleverd met een breed scala aan populaire PHP-extensies — van databasekoppelingen en caching tot debugging, framework-support en meer. Via de ServBay-interface kun je deze extensies met één klik aan- of uitzetten én hun parameters instellen.
Voorbeelden van veelgebruikte PHP-extensies die ServBay ondersteunt (maar niet beperkt tot): xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
etc. Daarnaast is ondersteuning voor verschillende andere systemen aanwezig, zoals meerdere databases (MySQL, PostgreSQL, MongoDB), message queues, en caching.
Een extensie inschakelen of instellen gaat als volgt:
- Ga in de PHP-configuratie van de ServBay-interface naar het tabblad “Extensies” of een vergelijkbare sectie.
- Zoek de gewenste extensie (bijvoorbeeld
xdebug
). - Zet de schakelaar aan of uit om deze in of uit te schakelen.
- Beschikt een extensie over extra parameters (zoals
xdebug
), dan kun je deze direct in de interface aanpassen (bijv.xdebug.mode
,xdebug.client_port
). - Druk op Opslaan om je wijzigingen door te voeren.
Voor de actuele lijst en details van alle door ServBay ondersteunde extensiemodules, raadpleeg de ServBay-documentatie: PHP extensiemodules overzicht (let op: raadpleeg steeds de meest recente versie van de documentatie).
Inzicht in de PHP-configuratiestructuur (handmatige aanpassing wordt afgeraden)
Hoewel we sterk aanraden je wijzigingen uitsluitend via de ServBay-interface te doen, helpt kennis van de onderliggende bestandsstructuur bij het begrijpen van hoe PHP functioneert.
De door ServBay aangemaakte PHP-configuratiebestanden bevinden zich in /Applications/ServBay/etc/php/<versie>/
.
php.ini
: Hoofdconfiguratiebestand.php-fpm.conf
: File voor het beheer van PHP-FPM-processen.conf.d/
: Map met afzonderlijke.ini
-bestanden voor extensies.
Voorbeeldstructuur php.ini-bestand
Het php.ini
-bestand gebruikt het INI-formaat. Enkele veelvoorkomende instellingen in een dergelijk bestand:
ini
; Wijzig geheugenlimiet
memory_limit = 256M
; Wijzig maximale uploadgrootte
upload_max_filesize = 50M
post_max_size = 50M
; Wijzig tijdzone-instelling
date.timezone = "Asia/Shanghai" ; Of "UTC", "America/New_York" etc. -- stel naar wens in
; Fouten tonen inschakelen (alleen voor ontwikkelomgevingen!)
display_errors = On
error_reporting = E_ALL
; Maximale uitvoeringstijd aanpassen
max_execution_time = 300
; Beperk bestandsysteemtoegang (voorbeeld)
; open_basedir = /Applications/ServBay/www/:/tmp/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Voorbeeldstructuur php-fpm.conf
Het php-fpm.conf
-bestand bevat globale opties en pool-instellingen. ServBay configureert doorgaans een standaardpool genaamd www
.
ini
[global]
; Globaal pad voor foutlogging
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Adres en poort, of socket-bestand om te luisteren
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Gebruiker en groep (meestal draait ServBay onder de huidige gebruiker)
; user = servbay-demo
; group = staff
; Procesbeheer (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Maximaal aantal child-processen
pm.start_servers = 2 ; Processes bij start
pm.min_spare_servers = 1 ; Minimum aantal idle processen
pm.max_spare_servers = 6 ; Maximum idle processen
pm.max_requests = 1024 ; Requests per child voor herstart (lekkage voorkomen)
; Trage request logging (logging na request_slowlog_timeout)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; PHP-settings: overschrijven instellingen uit php.ini (voorbeeld)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
1
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
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
Voorbeeld extensieladen (conf.d/)
In de map conf.d/
worden voor elke extensie aparte .ini
-bestanden aangemaakt. Bijvoorbeeld het bestand xdebug.ini
kan er zo uitzien:
ini
[Xdebug]
; Laad Xdebug-extensie
zend_extension = xdebug.so
; Xdebug-mode (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Startmodus debugging (yes, trigger, develop)
; yes: debugging altijd aan
; trigger: debugging starten via trigger (GET/POST-parameter of cookie)
; develop: alleen ontwikkelfuncties zoals stacktrace
xdebug.start_with_request=yes
; Clienthost/poort voor IDE-debuggen
xdebug.client_host=localhost
xdebug.client_port=39083
; Logbestand voor Xdebug
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Nogmaals: maak geen handmatige aanpassingen – werk altijd via de ServBay-interface om overschrijving te voorkomen.
Wijzigingen toepassen: PHP-dienst herstarten
Na wijzigingen via de ServBay-interface zal ServBay doorgaans automatisch detecteren dat herstart vereist is en dat uit zichzelf afhandelen. Af en toe is het nodig handmatig de betreffende PHP-dienst te herstarten voor volledige werking.
Herstarten doe je als volgt:
Herstart via de ServBay-interface
- Open het hoofdvenster van ServBay.
- Klik in de zijbalk op Pakketten.
- Zoek de PHP-versie waarvan je de instellingen hebt aangepast.
- Klik naast deze versie op de herstartknop (meestal een cirkelpijltjes-icoon).
Herstart met het servbayctl
commandline tool
Voor ontwikkelaars die liever de commandline gebruiken biedt ServBay het servbayctl
-hulpprogramma om services te beheren, waaronder het herstarten van een specifieke PHP-versie.
Open de Terminal en voer het volgende uit (vervang 8.3
door het gewenste versienummer):
bash
servbayctl restart php 8.3
1
Hiermee wordt het bijbehorende PHP-FPM-proces herstart en zijn de nieuwe instellingen actief.
Veelgestelde vragen (FAQ)
V: Ik heb
php.ini
handmatig aangepast, waarom worden mijn wijzigingen teruggedraaid of niet toegepast?- A: Configuratiebestanden worden automatisch gegenereerd en beheerd door ServBay. Handmatige edits worden overschreven bij updaten, herstarten of andere acties binnen ServBay. Gebruik altijd de ServBay-interface voor blijvende wijzigingen.
V: Hoe verhoog ik het PHP-geheugen of de uploadlimiet?
- A: Open de ServBay-interface, navigeer naar Talen -> Kies je PHP-versie. Pas bij de PHP FPM-opties het
memory_limit
aan (voor webomgeving), bij de php.ini-optiesupload_max_filesize
enpost_max_size
(voor alles, maar webomgeving kan worden overschreven door FPM-instelling). Sla op en herstart PHP voor effect.
- A: Open de ServBay-interface, navigeer naar Talen -> Kies je PHP-versie. Pas bij de PHP FPM-opties het
V: Hoe schakel ik Xdebug in of stel ik het in?
- A: Open de ServBay-interface, ga naar Talen -> Selecteer je PHP-versie. Onder extensies kun je
xdebug
activeren en parameters alsxdebug.mode
,xdebug.client_host
,xdebug.client_port
direct instellen. Sla op en herstart PHP.
- A: Open de ServBay-interface, ga naar Talen -> Selecteer je PHP-versie. Onder extensies kun je
V: Wat is het verschil tussen
php.ini
en PHP-FPM-instellingen? Welke moet ik aanpassen?- A:
php.ini
is het globale PHP-configuratiebestand en geldt zowel voor de CLI als de webomgeving. PHP-FPM-instellingen (php-fpm.conf
) zijn webspecifiek, en opties daarvan overschrijven dezelfde instellingen uitphp.ini
voor webverzoeken. Wil je instellingen voor de webserver aanpassen (zoals geheugenlimiet, uitvoeringstijd, error display), controleer dan eerst de FPM-instellingen; aanpassingen voor CLI of algemene instellingen (zoals tijdzone, uitgeschakelde functies) doe je via php.ini. De ServBay-interface maakt verschillen tussen beide duidelijk zichtbaar.
- A:
Samenvatting
ServBay maakt het eenvoudig en veilig om alle PHP-instellingen, inclusief php.ini
, PHP-FPM en diverse extensies, via de gebruikersinterface te beheren. Met de UI kun je wijzigingen snel doorvoeren en de PHP-dienst herstarten, zodat je ontwikkelomgeving altijd optimaal naar jouw wensen werkt. Kennis van onderliggende configuratiebestanden kan nuttig zijn voor verdieping, maar pas altijd je instellingen aan via de ServBay-interface om verlies van wijzigingen te voorkomen. Dankzij de uitgebreide configuratiemogelijkheden van ServBay pas je elke PHP-omgeving moeiteloos aan aan je projectbehoeften.