ServBay PHP-Konfigurationsleitfaden: Anpassen von php.ini, PHP-FPM und Erweiterungsmodulen
ServBay bietet Webentwicklern eine leistungsstarke und flexible lokale PHP-Entwicklungsumgebung. Um verschiedenen Projektanforderungen gerecht zu werden, müssen Sie möglicherweise unterschiedlichste PHP-Einstellungen anpassen, wie etwa das Speicherkontingent, die maximale Dateigröße für Uploads, das Fehlermeldungs-Level oder die Aktivierung spezifischer Erweiterungen.
Dieser Artikel erklärt im Detail, wie Sie die PHP-Konfiguration in ServBay anpassen. ServBay empfiehlt und stellt eine komfortable grafische Benutzeroberfläche (UI) bereit, um diese Einstellungen zu verwalten. Auch wenn es hilfreich ist, den Speicherort und Aufbau der Konfigurationsdateien (wie php.ini
und php-fpm.conf
) zu kennen, wird dringend geraten, alle Änderungen ausschließlich über die ServBay UI vorzunehmen, um Beständigkeit und Kompatibilität der Konfiguration sicherzustellen.
Wichtiger Hinweis
Bitte bearbeiten Sie die von ServBay generierten PHP-Konfigurationsdateien (im Pfad /Applications/ServBay/etc/php/<version>/
und deren Unterverzeichnissen) nicht manuell. Diese Dateien werden von ServBay verwaltet. Manuelle Änderungen werden bei einem Update, Neustart oder anderen ServBay-Vorgängen überschrieben. Sämtliche Anpassungen sollten stets über die ServBay-Benutzeroberfläche erfolgen.
Übersicht
In ServBay besitzt jede PHP-Version ihre eigenen, getrennten Konfigurationsverzeichnisse. Zum Beispiel finden Sie die Hauptkonfigurationsdateien von PHP 8.3 unter /Applications/ServBay/etc/php/8.3
.
Zu den Kernkonfigurationsdateien zählen:
php.ini
: Die Hauptkonfigurationsdatei von PHP, beeinflusst sowohl CLI- als auch Web-Umgebungen.php-fpm.conf
: Die Konfigurationsdatei des PHP-FPM (FastCGI Process Manager), steuert v.a. das Verhalten und die Performance von PHP im Zusammenspiel mit Webservern wie Caddy oder Nginx.conf.d/
: Dieses Verzeichnis beinhaltet die Lade- und Konfigurationsdateien (.ini
) der einzelnen PHP-Erweiterungen, beispielsweisexdebug.ini
,opcache.ini
usw.
Obwohl diese Dateien existieren, stellt ServBay eine weit komfortablere und sicherere Möglichkeit bereit, deren Inhalte zu ändern.
Konfiguration über die ServBay-Benutzeroberfläche (empfohlen)
ServBay bietet eine intuitive grafische Oberfläche, die Ihnen erlaubt, alle PHP-Einstellungen direkt zu verändern. Nach dem Speichern der Anpassungen in der UI werden diese automatisch übernommen – erforderliche Dienste (z.B. PHP-FPM) werden gewöhnlich automatisch neu gestartet. Ein manuelles Bearbeiten von Dateien oder Kommandozeilenbefehle sind nicht erforderlich.
So greifen Sie auf die PHP-Konfiguration zu:
- Öffnen Sie das ServBay-Hauptfenster.
- Navigieren Sie in der linken Seitenleiste zu Sprachen.
- Wählen Sie aus der Liste der Entwicklungssprachen die PHP-Version, die Sie konfigurieren möchten (z. B.
PHP 8.3
). - Im rechten Bereich erscheinen nun detaillierte Informationen und die passenden Einstellungsmöglichkeiten für die gewählte PHP-Version.
Eine typische PHP-Konfigurationsoberfläche sieht z. B. so aus:
Die Oberfläche ist in der Regel in drei Bereiche gegliedert: PHP-FPM-Konfiguration, PHP-Konfiguration (php.ini
) sowie die Verwaltung der PHP-Erweiterungsmodule. Im Folgenden werden diese Bereiche im Einzelnen erklärt.
PHP-FPM Konfiguration
Hinweis
Die Einstellungen in php-fpm.conf
beeinflussen vor allem das Verhalten von PHP im Webserver-Umfeld. Über die ServBay-UI vorgenommene Änderungen an diesen Parametern übersteuern gleichnamige Einstellungen aus der php.ini
, wirken aber ausschließlich auf Webanfragen. Diese Einstellungen betreffen nicht die Ausführung von PHP über die Kommandozeile (CLI).
ServBays Webdienste (Caddy oder Nginx) kommunizieren mit PHP über PHP-FPM. In der FPM-Konfiguration lassen sich unter anderem folgende, die Performance und Stabilität betreffende Parameter anpassen:
- Prozessverwaltung (
pm
): Steuert, wie PHP-FPM Arbeitsprozesse erzeugt und verwaltet (z. B.dynamic
,static
). - Prozessanzahl (
pm.max_children
,pm.start_servers
etc.): Legt die maximale Anzahl der Kindprozesse, die Anzahl an Prozessen beim Start usw. fest und beeinflusst so die Parallelverarbeitung. - Memory-Limit (
memory_limit
): Diese Einstellung übersteuert den gleichnamigen Wert ausphp.ini
, gilt jedoch nur für Web-Anfragen. - Fehlerprotokolle und -ausgabe: Legen Sie Speicherorte für Fehlermeldungen, das Fehlerlevel und die Anzeigeoption für Fehler im Browser fest.
Beispiel: Um das PHP-Speicherkontingent für Webanfragen von z. B. 64M/128M auf 1G zu erhöhen, suchen Sie im ServBay-UI unter dem Abschnitt PHP-FPM nach der Option memory_limit
, wählen Sie 1G
aus dem Dropdownmenü und speichern Sie die Änderung. Diese Anpassung wirkt sich ausschließlich auf PHP-Skripte aus, die über einen Webserver ausgeführt werden. Skripte, die von der Kommandozeile laufen, werden weiterhin vom php.ini
-Wert gesteuert.
Vergleich: Wenn memory_limit
in der php.ini
auf 512M
gesetzt ist, aber in der PHP-FPM-Konfiguration auf 128M
:
- PHP-Skripte über die CLI haben ein Memory-Limit von
512M
. - Über den Webserver ausgeführte PHP-Skripte nutzen die Begrenzung von
128M
.
php.ini Konfiguration
Hinweis
Einstellungen in der php.ini
sind global und betreffen sowohl die Ausführung von PHP via CLI als auch im Web. Wie oben dargestellt, übersteuern FPM-Konfigurationen gegebenenfalls gleichnamige Einstellungen für den Webkontext.
Der Abschnitt PHP-Konfiguration entspricht den Kernfeldern der php.ini
. Hier finden Sie grundlegende PHP-Laufzeiteinstellungen wie:
post_max_size
: Maximale Größe von per POST eingereichten Daten.upload_max_filesize
: Maximale Dateigröße beim Datei-Upload.date.timezone
: Angabe der Standardzeitzone von PHP.display_errors
/error_reporting
: Definiert, welche Fehlerarten angezeigt und protokolliert werden.max_execution_time
: Maximale erlaubte Ausführungszeit für Skripte (in Sekunden).disable_functions
/disable_classes
: Deaktiviert bestimmte Funktionen bzw. Klassen, was die Sicherheit erhöhen kann.open_basedir
: Schränkt zu nutzende Dateisystempfade ein. Es empfiehlt sich, alle Webprojekte im ServBay-Standardverzeichnis/Applications/ServBay/www
abzulegen – so können Sie bei der Vergabe vonopen_basedir
einfach diesen Ordner angeben, ohne zahlreiche Pfade auflisten zu müssen.
All diese Einstellungen lassen sich bequem über die ServBay UI anpassen.
Eine vollständige und aktuelle Übersicht aller Konfigurationsoptionen finden Sie in der offiziellen PHP-Dokumentation: PHP Runtime Configuration.
PHP-Erweiterungsmodule verwalten
ServBay bringt zahlreiche gängige PHP-Erweiterungen mit – zum Beispiel für Datenbankanbindung, Caching, Debugging, Framework-Support und mehr. Über die ServBay-UI lassen sich diese Module mit wenigen Klicks aktivieren, deaktivieren und direkt konfigurieren.
Zu den häufig unterstützten PHP-Erweiterungen gehören, u. a.: xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
. Außerdem sind weitere Module für unterschiedliche Datenbanken (MySQL, PostgreSQL, MongoDB), Message Queues, Cachesysteme etc. vorhanden.
Eine Erweiterung zu aktivieren oder zu deaktivieren funktioniert so:
- Wechseln Sie im ServBay-PHP-Konfigurationsbereich auf den Reiter „Erweiterungsmodule“ oder ähnlich.
- Suchen Sie die gewünschte Erweiterung (z. B.
xdebug
). - Aktivieren/Deaktivieren Sie das Modul über den zugehörigen Schiebeschalter.
- Bei erweiterter Konfiguration (z. B. für
xDebug
) können Sie die zugehörigen Parameter (wiexdebug.mode
,xdebug.client_port
usw.) direkt im UI ändern. - Speichern Sie Ihre Anpassungen.
Eine vollständige Liste der von ServBay bereitgestellten und unterstützten PHP-Module finden Sie in der ServBay-Dokumentation zu PHP-Erweiterungen (achten Sie darauf, stets die aktuelle Version zu konsultieren).
Aufbau der PHP-Konfigurationsdateien verstehen (manuelle Bearbeitung nicht empfohlen)
Obwohl die Konfiguration per UI dringend empfohlen wird, hilft ein grundlegendes Verständnis für Aufbau und Speicherort der Konfigurationsdateien, die PHP-Laufzeitumgebung besser zu begreifen.
Die von ServBay generierten PHP-Konfigurationsdateien befinden sich typischerweise unter /Applications/ServBay/etc/php/<version>/
.
php.ini
: Hauptkonfigurationsdatei.php-fpm.conf
: Konfiguration des PHP-FPM-Prozessmanagers.conf.d/
: Erweiterungsarchive und -konfigurationen als.ini
-Dateien.
Beispielhafter Aufbau einer php.ini
Die php.ini
folgt dem INI-Format. Typische Konfigurationsanweisungen könnten so aussehen:
; Speicherkontingent anpassen
memory_limit = 256M
; Begrenzung für Upload-Dateigrößen anpassen
upload_max_filesize = 50M
post_max_size = 50M
; Zeitzone festlegen
date.timezone = "Asia/Shanghai" ; oder "UTC", "America/New_York" usw., nach Bedarf anpassen
; Fehlerausgabe aktivieren (nur für Entwicklung!)
display_errors = On
error_reporting = E_ALL
; Maximale Ausführungszeit festlegen
max_execution_time = 300
; Einschränkung der Dateisystem-Zugriffspfade (Beispiel)
; open_basedir = /Applications/ServBay/www/:/tmp/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Beispielhafter Aufbau einer php-fpm.conf
Die php-fpm.conf
besteht aus globalen Einstellungen und sogenannten "Pools". ServBay verwendet standardmäßig einen Pool namens www
.
[global]
; Globaler Fehlerprotokollpfad
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Socket oder IP/Port für Requests
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Benutzer und Gruppe (ServBay läuft i.d.R. als aktueller User)
; user = servbay-demo
; group = staff
; Prozessverwaltung (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Maximale Anzahl Kindprozesse
pm.start_servers = 2 ; Anzahl Prozesse beim Start
pm.min_spare_servers = 1 ; Minimale Anzahl an freien Prozessen
pm.max_spare_servers = 6 ; Maximale Anzahl an freien Prozessen
pm.max_requests = 1024 ; Maximale Requests pro Child, dann Restart zur Vorbeugung von Memory-Leaks
; Aktivierung des "Slow-Logs" (bei Laufzeit > request_slowlog_timeout)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; PHP-Einstellungen, übersteuern php.ini (Beispiel)
; 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
Laden von PHP-Erweiterungen (Beispiel conf.d/)
Im Verzeichnis conf.d/
befinden sich für jede Erweiterung eigene .ini
-Dateien (z. B. für Xdebug):
[Xdebug]
; Xdebug-Erweiterung laden
zend_extension = xdebug.so
; Xdebug-Mode (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Modus für Debugging-Start (yes, trigger, develop)
; yes: Debugging immer aktiv
; trigger: Nur über spezielle Trigger (GET/POST-Param, Cookie)
; develop: Nur Dev-Funktionen wie Stacktraces
xdebug.start_with_request=yes
; Host und Port des Debug-Clients (IDE-Anbindung)
xdebug.client_host=localhost
xdebug.client_port=39083
; Xdebug-Log-Pfad
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
Nochmals: Bearbeiten Sie diese Dateien nicht manuell, sondern verwenden Sie immer die ServBay-Benutzeroberfläche zur Konfiguration!
Änderungen übernehmen: PHP-Dienst neu starten
In den meisten Fällen erkennt ServBay geänderte Einstellungen automatisch und setzt diese um. Falls erforderlich, können Sie entsprechende PHP-Dienste auch manuell neu starten.
So starten Sie PHP gezielt neu:
Neustart über die ServBay-Benutzeroberfläche
- Öffnen Sie das ServBay-Hauptfenster.
- Navigieren Sie in der linken Seitenleiste zu Pakete.
- Suchen Sie die PHP-Version, deren Konfiguration Sie angepasst haben.
- Klicken Sie neben der gewünschten PHP-Version auf den Neustart-Button (meist ein Symbol mit zwei kreisenden Pfeilen).
Neustart per servbayctl
-Kommandozeile
Wer lieber mit der Kommandozeile arbeitet, kann den ServBay-Dienst mit folgendem Befehl neu starten (ersetzen Sie 8.3
durch Ihre PHP-Version):
servbayctl restart php 8.3
Dadurch wird nur der PHP-FPM-Prozess dieser Version neugestartet und alle Einstellungen werden übernommen.
Häufig gestellte Fragen (FAQ)
F: Ich habe
php.ini
manuell bearbeitet – warum werden meine Änderungen nicht übernommen oder gehen verloren?- A: ServBay verwaltet und erzeugt die Konfigurationsdateien seiner Softwarepakete automatisch. Jegliche manuelle Anpassungen werden bei Updates, Neustarts oder anderen ServBay-Aktionen überschrieben. Nutzen Sie unbedingt ausschließlich die ServBay-Benutzeroberfläche!
F: Wie kann ich das PHP-Speicherkontingent oder den erlaubten Datei-Upload vergrößern?
- A: Öffnen Sie die ServBay-UI, navigieren Sie zu Sprachen und wählen Sie die entsprechende PHP-Version. Unter dem Abschnitt PHP-FPM können Sie das
memory_limit
anpassen (wirkt auf Web), unter php.iniupload_max_filesize
sowiepost_max_size
(wirkt global, Einstellungen für Web können durch FPM überschrieben werden). Nach der Änderung speichern und den PHP-Dienst neu starten.
- A: Öffnen Sie die ServBay-UI, navigieren Sie zu Sprachen und wählen Sie die entsprechende PHP-Version. Unter dem Abschnitt PHP-FPM können Sie das
F: Wie aktiviere oder konfiguriere ich Xdebug?
- A: Gehen Sie in der ServBay-UI auf Sprachen ➔ Ihre PHP-Version, wechseln Sie zum Abschnitt Erweiterungsmodule, aktivieren Sie
xdebug
und passen Sie bei Bedarf Parameter wiexdebug.mode
,xdebug.client_host
undxdebug.client_port
im UI an. Speichern und PHP neu starten.
- A: Gehen Sie in der ServBay-UI auf Sprachen ➔ Ihre PHP-Version, wechseln Sie zum Abschnitt Erweiterungsmodule, aktivieren Sie
F: Was ist der Unterschied zwischen
php.ini
und der PHP-FPM-Konfiguration? Wo sollte ich Einstellungen vornehmen?- A: Die
php.ini
gilt für globale PHP-Konfigurationen (CLI und Web). Die Einstellungen inphp-fpm.conf
wirken nur auf Web-Kontexte und können gleichnamige Werte aus derphp.ini
für Webanfragen übersteuern. Wenn Sie für Webanwendungen z. B. Speicherkontingente, Ausführungszeiten oder Fehlerausgaben anpassen möchten, tun Sie dies primär im PHP-FPM-Bereich. Einstellungen, die auch für die Kommandozeile wirken (z.B. Zeitzone, deaktivierte Funktionen), passen Sie in der php.ini an. In der ServBay UI sind diese Bereiche klar voneinander getrennt.
- A: Die
Fazit
Mit ServBay verwalten Sie sämtliche PHP-Konfigurationen – von php.ini über PHP-FPM bis zu einzelnen Erweiterungsmodulen – komfortabel und sicher in einer Oberfläche. Einfache Änderungen, Speicherung und Neustart der Dienste garantieren eine Entwicklungsumgebung, die exakt auf Ihre Anforderungen zugeschnitten ist. Kenntnisse über die Dateistruktur sind hilfreich, für alle tatsächlichen Anpassungen verwenden Sie aber ausschließlich die ServBay-UI, um das Überschreiben von Änderungen zu vermeiden. Nutzen Sie die mächtigen Konfigurationsmöglichkeiten von ServBay, um für Ihre Projekte stets das optimale PHP-Setup zu erreichen.