Benutzerdefinierte PHP-Module in ServBay kompilieren und installieren (macOS)
ServBay ist eine leistungsstarke lokale Web-Entwicklungsumgebung, speziell für macOS entwickelt. Sie bietet eine umfassende Sammlung von Softwarepaketen, die die Anforderungen moderner Webentwickler erfüllen – darunter vorinstallierte Versionen von PHP, Node.js, Python, Go, Java, Datenbanken (wie MySQL, PostgreSQL, MongoDB), Caching-Systeme (Redis) sowie Webserver (Caddy, Nginx, Apache). Für jedes Paket stehen zudem mehrere Versionen zur Auswahl, sodass Sie die Umgebung flexibel anhand Ihrer Projektanforderungen wechseln können.
Obwohl ServBay bereits viele gängige PHP-Module umfasst, besteht in speziellen Entwicklungsszenarien oft die Notwendigkeit, zusätzliche PHP-Module zu kompilieren und zu installieren, um die Funktionalität von PHP zu erweitern oder bestimmte Drittanbieter-Services einzubinden.
In diesem Beitrag erhalten Sie eine detaillierte Schritt-für-Schritt-Anleitung, wie Sie für Ihre PHP-Version in ServBay benutzerdefinierte Module kompilieren und installieren. Anhand der populären Module imagick (Bildverarbeitung) und sqlsrv (Microsoft SQL Server-Treiber) zeigen wir beispielhaft den vollständigen Ablauf, damit Sie die gewünschten Features problemlos in Ihre PHP-Umgebung bei ServBay einbinden können.
Voraussetzungen
Wichtiger Hinweis
Bevor Sie mit dem Kompilieren eines PHP-Moduls beginnen, ist der allerwichtigste Schritt, die Initialisierung der Build-Umgebung gemäß der offiziellen ServBay-Dokumentation abzuschließen und die Systeme-Umgebungsvariablen korrekt zu setzen. Dies ist die Grundlage für eine erfolgreiche Kompilierung von ServBay-Paketen (inklusive PHP-Module). Wird dieser Schritt übersprungen oder nicht korrekt ausgeführt, schlägt die Kompilierung mit hoher Wahrscheinlichkeit fehl – es können Fehler wie fehlende Befehle, Bibliotheken oder Header-Dateien auftreten.
Das Initialisierungsskript der ServBay-Build-Umgebung setzt essentielle Umgebungsvariablen, zum Beispiel PATH (zeigt auf die Buildtools innerhalb von ServBay), SERVBAY_PACKAGE_FULL_PATH (zeigt auf das Stammverzeichnis der ServBay-Pakete) sowie CPU_NUMBER (für paralleles Kompilieren mit mehreren Kernen). Diese Variablen sind für die nachfolgenden Kommandos beim Bauprozess unerlässlich.
Eine detailreiche Anleitung zur Initialisierung der Build-Umgebung finden Sie in der Dokumentation: Pakete mit ServBay erneut kompilieren. Stellen Sie sicher, dass Sie alle Schritte verstanden und exakt wie beschrieben ausgeführt haben.
Bitte überprüfen Sie vor der Kompilierung, ob Sie die oben genannten Schritte zur Initialisierung der ServBay-Build-Umgebung erfolgreich abgeschlossen und die zugehörigen Umgebungsvariablen in Ihrer aktuellen Terminal-Sitzung korrekt gesetzt haben.
Wichtigkeit der PHP-Version-Angabe
Ein zentrales Feature von ServBay ist die Möglichkeit, verschiedene PHP-Versionen parallel zu installieren und zu betreiben. Entwickler können dadurch problemlos für unterschiedliche Projekte zwischen PHP-Umgebungen wechseln. Allerdings muss beim Kompilieren von PHP-Modulen immer gezielt auf die gewünschte PHP-Version Bezug genommen werden, da die Tools phpize und php-config versionsspezifisch sind.
phpize: Ein Skript, das das Build-Environment für PHP-Erweiterungsmodule vorbereitet. Es liest die Dateiconfig.m4und generiert daraus ein standardisiertesconfigure-Skript – ein üblicher erster Schritt bei der Kompilierung von C/C++-Software.php-config: Dieses Skript liefert detaillierte Informationen zur jeweiligen PHP-Installation, wie Compiler-Flags, Include-Verzeichnisse, Verzeichnisse für Bibliotheken und Extensions. Dasconfigure-Skript nutzt die Ausgaben vonphp-config, um den Modulbau passend zur Ziel-PHP-Version zu ermöglichen.
Deshalb gilt: Bei der Verwendung von phpize, php-config oder anderen Build-Befehlen müssen Sie immer den vollständigen Pfad zum gewünschten PHP-Version-Tool angeben. Beispiel: Wenn Sie ein Modul für die in ServBay installierte PHP-Version 8.3 bauen möchten, verwenden Sie /Applications/ServBay/package/php/8.3/current/bin/phpize und /Applications/ServBay/package/php/8.3/current/bin/php-config. Die Wahl der richtigen Version stellt sicher, dass das Modul auch mit Ihrer Zielumgebung kompatibel ist und Sie keine Laufzeitfehler (wie "Symbol not found") erhalten.
Die Beispiele in dieser Anleitung beziehen sich auf PHP 8.3 innerhalb von ServBay. Ersetzen Sie den Pfad in Ihren eigenen Schritten immer durch den exakten Pfad der PHP-Version, für die Sie das Modul bauen wollen.
PHP imagick Modul kompilieren
Das Modul imagick ist eine sehr beliebte PHP-Erweiterung, die auf der leistungsstarken ImageMagick-Bibliothek basiert und eine Vielzahl an Bildbearbeitungsfunktionen ermöglicht. Mit imagick können Sie in PHP komplexe Bildverarbeitungsoperationen wie Skalierung, Zuschnitt, Formatkonvertierung, Wasserzeichen, Bildmontage und mehr vornehmen. Nachfolgend finden Sie die detaillierten Schritte zur Kompilierung und Installation des imagick-Modules für eine bestimmte PHP-Version in ServBay:
Schritt 1: ImageMagick-Abhängigkeiten installieren
Das PHP-Modul imagick benötigt die ImageMagick-Bibliotheken auf Systemebene. Unter macOS empfiehlt sich die Installation per Homebrew. Falls Homebrew noch nicht installiert ist, besuchen Sie die Homebrew-Website für eine Anleitung.
Starten Sie Ihr Terminal und geben Sie folgenden Befehl ein, um ImageMagick und dessen Entwicklerbibliotheken zu installieren:
brew install imagemagickSchritt 2: Quellcode des imagick-Moduls beziehen
Laden Sie das Quellpaket von imagick von der offiziellen PECL-Webseite herunter. Besuchen Sie die PECL imagick Seite, wählen Sie die benötigte (meistens neueste stabile) Version und kopieren Sie den Download-Link. Im folgenden Beispiel verwenden wir Version 3.7.0:
wget https://pecl.php.net/get/imagick-3.7.0.tgzSchritt 3: Quellpaket entpacken und Verzeichnis wechseln
Nach dem Download entpacken Sie das Archiv und wechseln in das entpackte Quellverzeichnis:
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.02
Schritt 4: Buildumgebung vorbereiten (mit phpize)
Im Quellverzeichnis angekommen, bereiten Sie die Buildumgebung mit dem phpize-Werkzeug der gewünschten PHP-Version vor. Wie oben beschrieben, ist der vollständige Pfad zu verwenden. Angenommen, Sie erstellen das Modul für PHP 8.3 und haben die Variable SERVBAY_PACKAGE_FULL_PATH richtig gesetzt:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpizeNach erfolgreichem Ausführen von phpize durchsucht das Tool die Datei config.m4 und generiert das benötigte Buildsystem. Es erscheint eine Ausgabe, die signalisiert, dass das Kompilierungs-Environment bereit ist.
Schritt 5: Buildoptionen konfigurieren
Führen Sie das erzeugte configure-Skript aus, um die Kompilierungsoptionen anzugeben. Dabei ist es wichtig, mit --with-php-config den Pfad zur gewünschten PHP-Version explizit anzugeben, damit alle Informationen korrekt übernommen werden.
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-configDas Skript sucht Abhängigkeiten wie Bibliotheken und Headerdateien von ImageMagick und erstellt eine Makefile. Bei Fehlern fehlen meist Bibliotheken oder Pfade sind inkorrekt.
Schritt 6: Modul kompilieren und installieren
Erfolgreiches Konfigurieren erzeugt das Makefile. Nun kompilieren Sie das Modul mit make und installieren es mit make install. Die Variable ${CPU_NUMBER} (bei der Initialisierung gesetzt) beschleunigt als Thread-Zahl die parallele Kompilierung.
make -j ${CPU_NUMBER}
make install2
Das Kommando make install kopiert das kompilierte imagick.so automatisch in das Extensionsverzeichnis der entsprechenden PHP-Version in ServBay (z.B. /Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/, abhängig von Version und Build-Optionen).
Schritt 7: Modul aktivieren
Nach dem Installieren muss das Modul in der Konfiguration der Ziel-PHP-Version aktiviert werden. ServBay stellt hierfür eine grafische Oberfläche bereit.
- Starten Sie das ServBay-Programm
- Navigieren Sie im linken Menü zu
Sprache–PHP–PHP 8.3 - Wählen Sie rechts den Tab
PHP, scrollen Sie nach unten und geben Sie unter "Zusätzliche Parameter" den Eintragextension=imagick.soein - Klicken Sie auf
Speichern, wodurch der PHP-Prozess automatisch neu gestartet und das Modul geladen wird

Schritt 8: Modul-Ladung überprüfen
Nach dem Aktivieren müssen Sie das PHP-Paket in ServBay neu starten, damit die Änderungen greifen. Nutzen Sie dazu die grafische Oberfläche von ServBay, wählen Sie die jeweilige PHP-Version aus und klicken Sie auf „Neustarten“ – alternativ steht auch ein Kommandozeilentool von ServBay zur Verfügung (siehe offizielle Dokumentation).
Nach dem PHP-Neustart prüfen Sie die korrekte Ladung des imagick-Moduls im Terminal:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagickSo stellen Sie sicher, dass exakt die gewünschte PHP-Version verwendet wird. Der Schalter -m listet alle geladenen PHP-Module auf. Sehen Sie in der Ausgabe imagick, ist das Modul erfolgreich eingebunden.
Eine noch ausführlichere Prüfung können Sie vornehmen, indem Sie im Web-Root-Verzeichnis (standardmäßig /Applications/ServBay/www) eine PHP-Datei (z.B. info.php) mit folgendem Inhalt erstellen: <?php phpinfo(); ?>. Rufen Sie dann im Browser http://localhost/info.php oder Ihren konfigurierten ServBay-Domainnamen auf. Suchen Sie auf der phpinfo()-Seite nach "imagick", um Details zum geladenen Modul und dessen Einstellungen anzuzeigen.
PHP sqlsrv/pdo_sqlsrv-Modul kompilieren
Die Erweiterungen sqlsrv und pdo_sqlsrv sind offizielle PHP-Module für den Zugriff und die Verwaltung von Microsoft SQL Server-Datenbanken. Sie basieren auf dem von Microsoft bereitgestellten ODBC-Treiber. Wenn Sie aus ServBay mit SQL Server arbeiten möchten, benötigen Sie diese Module. Hier die einzelnen Schritte zur Kompilierung und Installation im ServBay-Umfeld:
Hinweis: Zentrale Voraussetzung
Für das Kompilieren und die Installation von sqlsrv-Modulen unter macOS müssen Sie vorab die von Microsoft gelieferten SQL Server ODBC-Treiber (msodbcsql18) sowie die Kommandozeilen-Tools (mssql-tools18) installieren. Diese Software wird nicht mit ServBay geliefert und muss manuell bezogen werden.
Die Installation empfiehlt sich mit Homebrew. Sollte Homebrew noch nicht auf Ihrem System sein, besuchen Sie die offizielle Webseite.
Installieren Sie den Microsoft ODBC-Treiber und die Tools mit folgenden Homebrew-Kommandos. Sie werden eventuell zur Zustimmung der Lizenzbedingungen per Environment-Variable (HOMEBREW_ACCEPT_EULA=Y) aufgefordert.
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools182
3
Stellen Sie unbedingt sicher, dass diese Abhängigkeiten vor der Modulkompilierung erfolgreich eingerichtet sind. Sie werden meist in /opt/homebrew/ (Apple Silicon) oder /usr/local/ (Intel Macs) installiert. Beim Kompilieren sind diese Pfade korrekt einzubinden.
Tipp
sqlsrv und pdo_sqlsrv sind eigenständige Module und müssen separat kompiliert werden – die Vorgehensweise ist aber nahezu identisch, nachfolgend wird beispielhaft sqlsrv gezeigt.
Schritt 1: Microsoft ODBC-Treiber und Tools installieren
(Wie oben beschrieben, führen Sie die Homebrew-Installation von msodbcsql18 und mssql-tools18 unbedingt vorher durch.)
Schritt 2: Quellcode von sqlsrv beziehen
Laden Sie die Quellarchive für sqlsrv und pdo_sqlsrv von der offiziellen PECL-Seite herunter. Besuchen Sie die PECL sqlsrv Seite und wählen Sie die gewünschte Version. Im Beispiel nutzen wir die Version 5.12.0:
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv2
Schritt 3: Quellpaket entpacken und Verzeichnis wechseln
Entpacken Sie die heruntergeladene Datei und wechseln Sie in das Verzeichnis:
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# Für pdo_sqlsrv verfahren Sie genauso – alle weiteren Schritte werden mit sqlsrv exemplarisch erklärt.2
3
4
Schritt 4: Buildumgebung vorbereiten (mit phpize)
Rufen Sie im Quellverzeichnis das phpize-Tool für die gewünschte PHP-Version auf. Beispiel:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpizeSchritt 5: Buildoptionen konfigurieren (mit Pfadangaben für Abhängigkeiten)
Starten Sie configure. Da sqlsrv auf die Libraries des Microsoft ODBC-Treibers und von unixODBC angewiesen ist, müssen vor dem Aufruf von ./configure die Umgebungsvariablen LDFLAGS und CPPFLAGS passend gesetzt werden, damit die nötigen Bibliotheken und Header-Dateien gefunden werden. Geben Sie zudem mit --with-php-config die Ziel-PHP-Version an.
Passen Sie den Pfad je nach Ihrem Homebrew-Installationsort an (/opt/homebrew bei aktuellen Macs, /usr/local bei Intel-Systemen):
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config2
3
LDFLAGS: Gibt an, in welchen Verzeichnissen nach Bibliotheken gesucht werden soll.-L/opt/homebrew/libzeigt auf den üblichen Library-Pfad von Homebrew.CPPFLAGS: Gibt an, in welchen Verzeichnissen Header-Dateien gesucht werden.-I/opt/homebrew/opt/unixodbc/includeweist auf die Location des unixODBC-Headers,-I/opt/homebrew/includedeckt ggf. benötigte weitere Includes ab.${CPPFLAGS}und${LDFLAGS}übernehmen die von ServBay gesetzten Werte.
Schritt 6: Modul kompilieren und installieren
Nach erfolgreichem configure generiert das System ein Makefile. Starten Sie die Kompilierung und nehmen Sie die Installation vor:
make -j ${CPU_NUMBER}
make install2
Das Skript make install verschiebt die kompilierte sqlsrv.so sowie ggfs. auch pdo_sqlsrv.so ins Extensions-Verzeichnis der richtigen ServBay-PHP-Version.
Schritt 7: Modul aktivieren
Nach dem Build fügen Sie auch dieses Modul in der Konfig der Ziel-PHP-Version hinzu. Nutzen Sie das grafische Interface von ServBay:
- ServBay-Programm starten
- Menü links:
Sprache–PHP–PHP 8.3 - Rechts die Registerkarte
PHPauswählen, ganz nach unten scrollen und bei "Zusätzliche Parameter" die beiden Zeilenextension=sqlsrv.sosowieextension=pdo_sqlsrv.soeintragen - Auf
Speichernklicken; der entsprechende PHP-Prozess wird automatisch neugestartet

Schritt 8: Modul-Ladung überprüfen
Nach dem Aktivieren unbedingt das PHP-Paket in ServBay neu starten.
Prüfen Sie die erfolgreiche Einbindung der Module wie folgt im Terminal:
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv2
Bei erfolgreicher Aktivierung werden die Namen sqlsrv und pdo_sqlsrv in der Ausgabe erscheinen. Auch kann die Einbindung über phpinfo() verifiziert werden.
Häufig gestellte Fragen (FAQ)
- F: Während
make-/Kompilierung erscheint "Cannot find autoconf" oder ähnliches?- A: Dies ist ein Hinweis, dass die ServBay-Build-Umgebung nicht korrekt initialisiert wurde. Prüfen Sie die „Voraussetzungen“ am Anfang dieser Anleitung und folgen Sie exakt den Anweisungen im Abschnitt Pakete mit ServBay erneut kompilieren. Kontrollieren Sie, dass alle Build-Tools (wie autoconf, automake, libtool) installiert und die Pfade korrekt gesetzt sind. Das Ausführen des Init-Skripts und ein anschließender Terminal-Neustart lösen in der Regel das Problem.
- F: Das
configure-Skript bricht ab, weil eine Bibliothek oder Headerdatei nicht gefunden wird?- A: Eine erforderliche Systembibliothek oder Headerdatei fehlt oder die Pfadangabe ist fehlerhaft.
- Für
imagick: Installieren Sie die ImageMagick-Entwicklerbibliotheken per Homebrew:brew install imagemagick. - Für
sqlsrv: Prüfen Sie, ob Microsoft ODBC-Treiber und mssql-tools wie oben beschrieben per Homebrew installiert wurden. Stellen Sie sicher, dass beim Aufruf von./configuredie UmgebungsvariablenLDFLAGSundCPPFLAGSkorrekt gesetzt sind (inkl./opt/homebrew/lib,/opt/homebrew/opt/unixodbc/includeusw.). - Prüfen Sie im ServBay-Build-Umgebungs-Setup, ob alle relevanten Homebrew-Pfade enthalten sind (falls Systempakete via Homebrew installiert wurden) oder ob Sie deren Bin-Ordner zum
PATHhinzufügen müssen.
- Für
- A: Eine erforderliche Systembibliothek oder Headerdatei fehlt oder die Pfadangabe ist fehlerhaft.
- F:
makeodermake installschlägt fehl?- A: Fehler beim Kompilieren/Installieren können verschiedene Ursachen haben:
- Fehlende Build-Abhängigkeiten: Überprüfen Sie die Fehlermeldungen und installieren Sie eventuell fehlende Bibliotheken/Binärdateien nach.
- Fehler bei der Konfiguration: Prüfen Sie die Parameter im
configure-Schritt, insbesondere ob--with-php-configauf die gewünschte PHP-Version in ServBay verweist. - Berechtigungsprobleme:
make installkopiert Dateien in das PHP-Extension-Verzeichnis von ServBay, es können dazu spezielle Rechte notwendig sein. Gegebenenfalls hilftsudo make install(mit Vorsicht zu verwenden!). - Probleme mit dem Quellpaket: Kontrollieren Sie, ob das heruntergeladene Archiv fehlerfrei und vollständig ist.
- A: Fehler beim Kompilieren/Installieren können verschiedene Ursachen haben:
- F: Das Modul-File
.soliegt im Extensions-Verzeichnis und wurde in.iniaktiviert, aberphp -moderphpinfo()zeigt das Modul nicht an?- A:
- Meistens: Das PHP-Paket in ServBay wurde noch nicht neugestartet. Nach jeder
.ini-Änderung unbedingt das PHP-Paket in der ServBay-Oberfläche oder per Kommandozeile neu starten. Ein bloßes Neuladen des Browsers oder Webservers reicht nicht aus! - Überprüfen Sie die
.ini-Datei auf Tipp- oder Syntaxfehler (korrekt:extension=modulename.so). - Kontrollieren Sie, ob der Wert von
extension_dirin derphp.inikorrekt ist.make installrichtet sich nach der Ausgabe vonphp-config --extension-dir. - Ist die Modul-File beschädigt oder nicht kompatibel? Kompilieren Sie alles erneut und prüfen Sie, dass PHP- und Modul-Version zueinander passen. Schauen Sie auch in die Logs unterhalb des ServBay-Verzeichnisses, falls Fehlermeldungen zum Modul ein Problem anzeigen.
- Meistens: Das PHP-Paket in ServBay wurde noch nicht neugestartet. Nach jeder
- A:
Fazit
Wenn Sie die in dieser Anleitung beschriebenen Schritte befolgen, können Sie individuelle PHP-Module (wie imagick oder sqlsrv) erfolgreich in Ihre ServBay macOS-Umgebung einbinden. Die wichtigsten Erfolgsfaktoren lauten:
- Vollständige und korrekte Initialisierung der ServBay-Build-Umgebung.
- Eindeutige Versionsangabe für
phpizeundphp-config; stets den vollständigen Pfad zur gewünschten PHP-Version verwenden. - Alle externen Modulabhängigkeiten im Vorfeld klären und korrekt im Buildvorgang (über Umgebungsvariablen wie
LDFLAGS,CPPFLAGSoder Custom-Konfigurationsparameter) angeben. - Module richtig aktivieren: Im Zielverzeichnis der PHP-Installation innerhalb von
conf.djeweilige.ini-Dateien erstellen oder anpassen und mitextension=modulename.sodas Modul laden. - Das entsprechende PHP-Paket in ServBay nach jeder Änderung immer neu starten.
ServBay ist als umfassende lokale Entwicklungsumgebung äußerst flexibel und unterstützt eine Vielzahl von Technologien, darunter neben PHP und deren Modulen auch vollständige Setups für MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust und mehr. Darüber hinaus stehen praktische Features zur Verfügung, etwa das Beziehen von SSL-Zertifikaten via ACME, einfache CORS-Konfiguration, automatische Datensicherung (inklusive Einstellungen, Websites, Datenbanken, SSL-Zertifikate), Zurücksetzen des root-Datenbankpassworts sowie eigene CA-Zertifikate für lokales HTTPS.
Mit diesem Leitfaden können Sie Ihre lokale ServBay-PHP-Umgebung zielgerichtet erweitern und Ihre Webentwicklung noch effizienter gestalten. Bei weiterführenden Fragen ziehen Sie bitte die offizielle ServBay-Dokumentation oder die Community zu Rate.
