ServBay PHP-Version Verwaltung: Leitfaden für CLI und Website-Umgebung
ServBay ist ein leistungsstarkes Tool für lokale Webentwicklung und unterstützt macOS sowie Windows, verschiedene Programmiersprachen und Datenbanken. Dieser Artikel erklärt ausführlich, wie Sie in ServBay unterschiedliche PHP-Versionen flexibel für verschiedene Projekte verwalten – sowohl für Skriptausführung in der Kommandozeile als auch beim Betrieb individueller Websites. Wer die Mechanismen zur PHP-Version-Verwaltung von ServBay beherrscht, steigert Effizienz und sorgt für eine stabile, isolierte Entwicklungsumgebung.
1. Kommandozeilenumgebung: Projektbezogene PHP-Versionen mit .servbay.config
verwalten
Durch eine .servbay.config
-Datei im Projektstamm-Ordner können Entwickler die PHP-Version für jedes Projekt individuell festlegen. ServBay lädt anhand des aktuellen Terminal-Verzeichnisses automatisch die passende PHP-Umgebung, wodurch Projektisolation und Konfliktfreiheit sicher gestellt sind.
1. Zweck und Funktionsweise von .servbay.config
- Versionskontrolle auf Projektebene: ServBay unterstützt gleichzeitige Installation und Betrieb verschiedener PHP-Versionen – von PHP 5.6 bis zu den neuesten Stable- und Entwickler-Versionen. Mit
.servbay.config
können Sie für jedes Projekt die benötigte PHP-Version präzise festlegen. - Nahtloser Wechsel ohne Eingriff: Wenn Sie per
cd
ins Projektverzeichnis mit.servbay.config
wechseln, erkennt ServBay diese Datei und passt temporär die Umgebungsvariablen der Sitzung an (vor allemPATH
). So zeigen die Befehlephp
,composer
usw. automatisch auf die richtige PHP-Executable. Verlassen Sie das Verzeichnis, wird die Umgebung wieder auf den globalen Standard zurückgesetzt – ohne Nebenwirkungen für das System.
2. Konfigurationsmethode
Erstellen Sie im Stammverzeichnis Ihres Projekts eine Datei namens .servbay.config
und tragen Sie beispielsweise Folgendes ein:
bash
# Legt die für dieses Projekt genutzte PHP-Version fest (Beispiel: PHP 8.3)
PHP_VERSION=8.3
# Falls Ihr Projekt auch eine bestimmte Node.js-Version benötigt, können Sie diese ebenfalls angeben (Beispiel: Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- Der Wert von
PHP_VERSION
entspricht der in ServBay installierten PHP-Version, meist Haupt- oder Haupt-/Nebenversion (z.B.7.4
,8.1
,8.3
,8.5
). Stellen Sie sicher, dass die gewählte Version installiert und aktiviert ist. NODE_VERSION
funktioniert analog zur Festlegung der Node.js-Version für Ihr Projekt.
Überprüfung der Aktivierung:
Öffnen Sie im Projektverzeichnis mit .servbay.config
ein Terminal und führen Sie diese Kommandos aus:
bash
$ pwd # Prüfen, ob Sie im Projektstamm sind
$ php -v # Die ausgegebene PHP-Version sollte Ihrer Konfiguration entsprechen (z. B. PHP 8.3.x)
$ composer install # Abhängigkeiten werden basierend auf der aktivierten PHP-Version installiert
1
2
3
2
3
Falls nach Anpassung der .servbay.config
keine Umschaltung erfolgt, schließen Sie das Terminal oder nutzen Sie cd .
, um ServBay zum Neuladen der Konfiguration zu bewegen.
3. Hinweise und fortgeschrittene Tipps
- Versionskompatibilität: Stoßen Sie auf Fehler wie "Class not found" oder "Call to undefined function", überprüfen Sie zunächst die in
composer.json
festgelegten Anforderungen und die Kompatibilität Ihrer gewählten PHP-Version. Ältere Projekte setzen teilweise auf mittlerweile entfernte Features oder Extensions (etwa entferntemcrypt
-Extension in PHP 7.2). - Globale Standardwerte: Fehlt
.servbay.config
im aktuellen oder übergeordneten Verzeichnis, nutzt ServBay die in den Einstellungen der Oberfläche festgelegte globale PHP-Version. - Koordination mehrerer Dienste: Mit
.servbay.config
können Sie neben PHP auch die Node.js-Version definieren (NODE_VERSION
) – besonders hilfreich, wenn PHP als Backend und Node.js für Frontend-Build-Tools wie Webpack oder Vite dient.
4. Beispiel für den Betrieb
Das folgende Beispiel zeigt, wie die automatische PHP-Version-Umschaltung mit .servbay.config
in verschiedenen Projektverzeichnissen funktioniert:
Abbildung: In ServBay erkennt das Terminal beim Wechsel in verschiedene Verzeichnisse mit unterschiedlichen
.servbay.config
-Dateien jeweils die angegebene PHP-Version automatisch über php -v
.
2. Website-Umgebung: PHP-Version über die ServBay-Oberfläche festlegen
Die grafische Oberfläche von ServBay bietet eine komfortable und intuitive Möglichkeit, für jede Website eine eigene PHP-Version zuzuweisen. Die PHP-Version der Website-Umgebung ist unabhängig von der CLI-Umgebung und lässt sich flexibel nach Bedarf einstellen.
1. Ablaufschritte zur Konfiguration
- Öffnen Sie ServBay: Starten Sie die ServBay-App.
- Wechseln Sie zu Webseitenverwaltung: Klicken Sie in der linken Navigationsleiste auf Websites.
- Website hinzufügen oder bearbeiten:
- Über das + unten links fügen Sie eine neue Website hinzu,
- oder Sie bearbeiten eine bestehende Konfiguration.
- Website-Attribute konfigurieren:
- Root-Verzeichnis: Legen Sie das Verzeichnis Ihrer Websitedateien fest. Empfehlenswert ist ein Unterordner im ServBay-Standardordner
/Applications/ServBay/www/
, z. B./Applications/ServBay/www/ihr-webseitenname/public
(für Laravel- oder Symfony-Projekte). - Domain (Domainname): Legen Sie die lokale Entwicklungs-URL fest, z. B.
ihr-webseitenname.servbay.demo
. ServBay konfiguriert lokale DNS-Auflösung und HTTPS-Zertifikate (mit ServBay User CA oder ServBay Public CA) automatisch – das erleichtert Entwicklung und Tests erheblich. - PHP-Version: Wählen Sie im Dropdown die gewünschte PHP-Version für die Website. ServBay zeigt alle installierten und aktivierten PHP-Versionen (wie 7.4, 8.1, 8.3, 8.5) an.
- Root-Verzeichnis: Legen Sie das Verzeichnis Ihrer Websitedateien fest. Empfehlenswert ist ein Unterordner im ServBay-Standardordner
- Speichern: Speichern Sie die Konfiguration – ServBay übernimmt die Änderungen und eventuell ist ein Neustart des Webservers oder PHP-FPM erforderlich.
2. Technische Details und Vorteile
- Service-Isolation: Für jede Website wird die konfigurierte PHP-Version meist in einem eigenen PHP-FPM-Pool betrieben. So sind die PHP-Umgebungen der einzelnen Websites komplett voneinander getrennt – Fehler oder Memory-Leaks einer Website beeinflussen andere nicht.
- Performance-Optimierung: Alle ServBay-Pakete (einschließlich verschiedener PHP-Versionen) sind sowohl für ARM64 (Apple Silicon) als auch X86_64 optimiert – für beste Performance unabhängig von der Hardware.
- Fehleranalyse:
- PHP-Fehler-Log: Fehler werden unter
/Applications/ServBay/var/log/php/php_error.log
gespeichert. - PHP-FPM-Status: Mit dem ServBay CLI-Tool
servbayctl
können Sie den Status einzelner PHP-Versionen prüfen, z. B.servbayctl status php 8.3
.
- PHP-Fehler-Log: Fehler werden unter
3. Integration von Webserver und Datenbank
ServBay bietet maximale Flexibilität bei der Auswahl von Webservern und Datenbank-Instanzen je nach Projektbedarf.
- Webserver-Support: Ab ServBay 1.7.0 können Sie pro Website zwischen Apache, Nginx und Caddy wählen – alle nahtlos integriert mit den von ServBay gemanagten PHP-FPM-Prozessen.
- Datenbank-Anbindung: ServBay erlaubt parallele Installation und Verwaltung verschiedener Versionen von MySQL, MariaDB, PostgreSQL, MongoDB und Redis. Im Website-Setup oder direkt im Code können Sie die Verbindung zu beliebigen Datenbankinstanzen festlegen – so können Sie z.B. spezielle MariaDB-Versionen für Laravel-Projekte nutzen.
3. Zusammenarbeit über Umgebungen hinweg & Best Practices
Verstehen Sie die unabhängige Verwaltung von PHP-Versionen für CLI und Website – das hilft, die optimale Lösung in jeder Entwicklungs-Situation zu finden:
Situation | CLI-Konfiguration (.servbay.config ) | Website-Konfiguration (ServBay GUI) | Hinweise |
---|---|---|---|
Legacy-System pflegen | Im Projektstamm PHP_VERSION=5.6 festlegen | PHP 5.6 in Website-Konfiguration auswählen | Stellen Sie sicher, dass alle benötigten PHP-Versionen und -Erweiterungen installiert sind. |
Neues Projekt (z. B. Laravel 11) | PHP_VERSION=8.3 (oder höher) + optional NODE_VERSION=20 | Neue Website, Root-Verzeichnis zeigt auf public -Ordner, PHP 8.3+, Domain & HTTPS konfigurieren | Abstimmung von PHP-Version für CLI-Tools (Composer, Artisan, Node-Build) und Web-Server empfohlen. |
Testing neuer PHP-Versionen | Im Testprojekt PHP_VERSION=8.5 | Test-Website mit PHP 8.5 | So prüfen Sie frühzeitig die Kompatibilität mit kommenden PHP-Versionen. |
Composer-Befehle ausführen | .servbay.config in aktuellem/übergeordnetem Ordner stellt richtige PHP-Version ein | N/A (Composer läuft primär in der CLI) | Composer nutzt die in der aktuellen Terminalsitzung aktivierte PHP-Version. |
Hinweise
- Differenzen zwischen CLI und Web-Umgebung: Auch bei identischer Versionsnummer können sich PHP-Konfiguration und Extensions zwischen CLI (Kommandozeile) und Web-Service (PHP-FPM) unterscheiden. Beispielsweise ist das
opcache
-Modul im FPM-Mode meist aktiv zur Performance-Steigerung, im CLI-Mode hingegen oft deaktiviert. Prüfen Sie diephp.ini
für jede Version und die geladenen Extensions bei Abweichungen im Verhalten. - ServBay Runtime aktuell halten: Achten Sie auf aktuelle Versionen der ServBay-App und der zugehörigen Runtime. ServBay wird laufend aktualisiert, inkl. PHP-Versionen und Sicherheitspatches. Mit jedem Update erhalten Sie neue Features und Verbesserungen.
Häufige Fragen (FAQ)
Frage: Was tun bei PHP-Version-Konflikt zwischen CLI und Website?
Antwort: Die PHP-Version der Kommandozeile (festgelegt via .servbay.config
) und der Website (über die ServBay-Oberfläche) sind voneinander unabhängig. .servbay.config
beeinflusst nur, welche PHP-Version im Terminal aktiv ist; Website-Konfiguration bestimmt, welche Version Webserver (Apache/Nginx/Caddy) via PHP-FPM für Webanfragen nutzt. Es entsteht somit kein direkter Konflikt. Sie können theoretisch für ein Projekt verschiedene Versionen in CLI und Web-Service nutzen (z. B. für Composer vs. Webserver), es empfiehlt sich jedoch für Konsistenz und Vermeidung von Problemen, Versionen abzustimmen.
Fazit
Mit .servbay.config
und der intuitiven grafischen Oberfläche bietet ServBay Entwicklern mächtige und flexible Möglichkeiten, PHP-Versionen projektspezifisch zu steuern. So sind Sie sowohl für Legacy-Systeme als auch für die Entwicklung mit den neuesten PHP-Versionen bestens gerüstet. Nutzen Sie diese Optionen, um Ihre lokale Entwicklungsumgebung an Ihre Produktionsumgebung anzugleichen und Effizienz wie Stabilität Ihrer Projekte zu steigern.