Benutzerdefinierte PHP-Module in ServBay kompilieren und installieren
ServBay ist eine leistungsstarke lokale Web-Entwicklungsumgebung, die macOS und Windows unterstützt und zahlreiche Softwarepakete integriert, um den Anforderungen moderner Webentwickler gerecht zu werden. Es enthält vorkonfigurierte Technologien wie PHP, Node.js, Python, Go, Java, Datenbanken (z.B. MySQL, PostgreSQL, MongoDB), Caches (Redis) und Webserver (Caddy, Nginx, Apache). ServBay bietet für jedes Softwarepaket Multiversions-Support, sodass Sie Ihre Umgebung flexibel je nach Projektanforderung wechseln können.
Obwohl ServBay viele gebräuchliche PHP-Module bereits enthält, kann es vorkommen, dass Sie zusätzliche PHP-Module kompilieren und installieren müssen, um die Funktionalität von PHP zu erweitern oder spezielle Drittanbieter-Dienste einzubinden.
In diesem Leitfaden erfahren Sie Schritt für Schritt, wie Sie in ServBay für Ihre PHP-Version benutzerdefinierte Module kompilieren und installieren. Die Anleitung verwendet die populären Module imagick für Bildverarbeitung und sqlsrv als Microsoft SQL Server Treiber als Praxisbeispiele, damit Sie die gewünschten Funktionen einfach zum lokalen ServBay PHP-Umfeld hinzufügen können.
Voraussetzungen
Wichtiger Hinweis
Bevor Sie mit dem Kompilieren beliebiger PHP-Module beginnen, ist der wichtigste Schritt die Initialisierung der ServBay-Kompilierungsumgebung und die korrekte Konfiguration der System-Umgebungsvariablen gemäß der offiziellen ServBay-Dokumentation. Dies ist die grundlegende Voraussetzung für eine erfolgreiche Kompilierung jeglicher Pakete (einschließlich PHP-Erweiterungen) in ServBay. Falls Sie diesen Schritt überspringen oder Fehler dabei machen, werden die folgenden Kompilierungsschritte höchstwahrscheinlich fehlschlagen – typischerweise mit Fehlermeldungen zu fehlenden Befehlen, Bibliotheken oder Header-Dateien.
Das Initialisierungsskript der ServBay-Kompilierungsumgebung setzt alle notwendigen Umgebungsvariablen, wie z.B. PATH (zeigt auf die internen ServBay-Build-Tools), SERVBAY_PACKAGE_FULL_PATH (der Pfad zum ServBay-Paket-Root) und CPU_NUMBER (für parallele Kompilierung). Diese Variablen sind für die folgenden Kompilierbefehle essenziell.
Detaillierte Informationen zur Initialisierung der ServBay-Kompilierungsumgebung finden Sie in der Dokumentation: Pakete mit ServBay kompilieren. Vergewissern Sie sich, dass Sie die Anweisungen vollständig verstanden und korrekt umgesetzt haben.
Bevor Sie mit der Modul-Kompilierung fortfahren, stellen Sie sicher, dass die oben beschriebenen Initialisierungsschritte erfolgreich abgeschlossen und alle relevanten Umgebungsvariablen in Ihrer aktuellen Terminal-Session gesetzt wurden.
Bedeutung der PHP-Version Auswahl
Ein Hauptmerkmal von ServBay ist die Unterstützung mehrerer paralleler PHP-Versionen auf demselben System. Diese Flexibilität erleichtert Entwicklern den Wechsel der PHP-Umgebung für verschiedene Projekte. Wenn Sie ein PHP-Modul kompilieren möchten, müssen Sie dies immer für eine bestimmte PHP-Version tun. Die Tools phpize und php-config, die zur Kompilierungsvorbereitung und zum Abrufen von Versions-Konfigurationsdaten genutzt werden, sind immer mit einer spezifischen PHP-Version verknüpft.
phpize: Ein Skript zur Vorbereitung der Kompilierungsumgebung für PHP-Erweiterungen. Es liest die Dateiconfig.m4und erstellt daraus ein Standard-configure-Skript – der erste Schritt für die Kompilierung von C/C++-Software.php-config: Das Skript liefert detaillierte Konfigurationsinfos zur jeweiligen PHP-Version, wie Compiler-Flags, Include-Verzeichnisse, Bibliothekspfade und das Erweiterungsinstallationsverzeichnis. Dasconfigure-Skript ruftphp-configauf, um einen korrekten Modul-Build und Link zur jeweiligen PHP-Version sicherzustellen.
Daher müssen Sie beim Einsatz von phpize, php-config oder anderen Build-Befehlen stets den vollständigen Pfad angeben, der exakt zu der PHP-Version gehört, für die Sie das Modul kompilieren möchten.
Beispiel für Pfadangaben
Möchten Sie beispielsweise ein Modul für PHP 8.3 in ServBay kompilieren:
macOS:
phpize:/Applications/ServBay/package/php/8.3/current/bin/phpizephp-config:/Applications/ServBay/package/php/8.3/current/bin/php-config
Windows:
phpize:C:\ServBay\package\php\8.3\current\bin\phpizephp-config:C:\ServBay\package\php\8.3\current\bin\php-config
Nur die exakte Versionsauswahl garantiert die Kompatibilität der kompilierten Module mit dem Ziel-PHP, und verhindert Kompilierungsfehler oder Laufzeitprobleme wie „Symbol not found“.
Die folgenden Beispiele aus dieser Anleitung beziehen sich auf die installierte PHP-Version 8.3 in ServBay. Bitte ersetzen Sie in der Praxis die benutzten Pfade jeweils mit denen Ihrer tatsächlichen Ziel-PHP-Version in ServBay.
Kompilieren des PHP imagick-Moduls
imagick ist eine populäre PHP-Erweiterung für anspruchsvolle Bildverarbeitung und basiert auf der leistungsstarken ImageMagick-Bibliothek. Mit imagick können Sie direkt in PHP komplexe Bildoperationen wie Skalierungen, Zuschnitte, Formatkonvertierungen, Wasserzeichen, Bildzusammenstellungen u.v.m. durchführen. Dies sind die vollständigen Schritte zur Kompilierung und Installation des imagick-Moduls für eine bestimmte ServBay-PHP-Version:
Schritt 1: Installation der ImageMagick-Bibliothek
Das imagick-Modul setzt voraus, dass die ImageMagick-Bibliothek auf dem System vorhanden ist.
macOS
Empfohlen wird die Installation per Homebrew Paketmanager. Falls Sie Homebrew noch nicht installiert haben, finden Sie eine Anleitung auf der Homebrew Website.
Terminal öffnen und folgenden Befehl ausführen, um ImageMagick inklusive Entwicklertools zu installieren:
bash
brew install imagemagick1
Windows
Windows-Nutzer müssen ImageMagick manuell herunterladen und installieren. Gehen Sie dazu auf die offizielle ImageMagick Downloadseite und wählen Sie die passende Version aus.
Vergewissern Sie sich, dass Sie die Version mit Entwicklertools installieren und den Installationspfad der Umgebungsvariablen hinzufügen.
Schritt 2: Quellcode des imagick-Moduls beschaffen
Laden Sie als nächstes den Quellcode des imagick-Moduls von der offiziellen PECL-Website herunter. Auf der PECL imagick Seite finden Sie die jeweils aktuelle Version (meist die empfohlene stabile Version). Beispielhaft wird in diesem Leitfaden die Version 3.7.0 verwendet:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz1
Schritt 3: Quellpaket entpacken und Verzeichnis wechseln
Nach dem Download entpacken Sie das Quellpaket und wechseln in das Verzeichnis mit folgendem Befehl:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.01
2
2
Schritt 4: Kompilierungsumgebung vorbereiten (phpize einsetzen)
Wechseln Sie in das Quellverzeichnis und führen Sie das zum Ziel-PHP passende phpize-Tool aus. Wie oben dargestellt, verwenden Sie unbedingt den vollständigen Pfad Ihrer PHP-Version (hier z.B. PHP 8.3, wobei die Variable SERVBAY_PACKAGE_FULL_PATH vorab gesetzt sein muss):
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize1
Wurde phpize erfolgreich ausgeführt, prüft es die config.m4 und generiert das configure-Skript und andere nötige Builddateien. Die Terminalausgabe informiert Sie darüber, sobald die Buildumgebung bereit ist.
Schritt 5: Build-Konfiguration festlegen
Führen Sie das eben erstellte configure-Skript aus, um die Build-Optionen zu konfigurieren. Sie müssen die --with-php-config-Option verwenden, um den PHP-Konfigurationspfad exakt für Ihre Zielversion zu setzen.
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config1
Das Skript prüft alle Voraussetzungen, findet die ImageMagick-Bibliothek und nötigen Header, und erstellt aus den PHP-Konfigurationsdaten das endgültige Makefile. Kommt es zu Fehlern, fehlen meist Systemabhängigkeiten oder es liegen falsche Pfade vor.
Schritt 6: Modul kompilieren und installieren
Ist die Konfiguration ohne Fehler gelaufen und das Makefile erstellt, starten Sie die Kompilierung mit:
bash
make -j ${CPU_NUMBER}
make install1
2
2
Das make install-Kommando kopiert das fertige Modul automatisch in das Standard-Erweiterungsverzeichnis der gewählten PHP-Version:
- macOS:
/Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/ - Windows:
C:\ServBay\package\php\8.3\current\lib\php\extensions\no-debug-non-zts-YYYYMMDD\
Pfadangaben variieren je nach PHP-Version und Build-Konfiguration.
Schritt 7: Modul aktivieren
Ist das Modul installiert, aktivieren Sie es in der Konfiguration der jeweiligen PHP-Version. ServBay bietet hierzu eine GUI-Methode:
- Öffnen Sie ServBay
- Navigieren Sie im Menü links zu
Sprachen-PHP-PHP 8.3 - Rechts wählen Sie den Reiter
PHPaus, scrollen bis zum Abschnitt „Weitere Parameter“ und geben dortextension=imagick.soein - Speichern Sie, ServBay startet den PHP-Prozess automatisch neu und liest das neue Modul ein

Schritt 8: Modul-Ladung überprüfen
Nach der Aktivierung starten Sie das PHP-Paket in ServBay neu, damit die Konfiguration wirksam wird. Das geht über das ServBay-Panel per Knopfdruck oder per ServBay-Kommandozeilentool (Befehle siehe Dokumentation).
Nach dem Neustart prüfen Sie am besten im Terminal, ob das imagick-Modul geladen wird:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick1
Nutzen Sie den exakten Binärpfad zu Ihrer PHP-Version. Mit -m werden alle geladenen Module angezeigt. Taucht imagick im Output auf, ist das Modul aktiv.
Eine ausführlichere Kontrolle erreichen Sie mit einer PHP-Datei (info.php) im Webroot, die folgenden Code enthält: <?php phpinfo(); ?>. Webroot-Standardpfade sind:
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
Rufen Sie die Datei dann per Browser auf, z.B. unter http://localhost/info.php. Suchen Sie auf der PHPInfo-Seite nach „imagick“, um die Modulaktivierung und Version zu verifizieren.
Kompilieren der Module PHP sqlsrv / pdo_sqlsrv
Die Module sqlsrv und pdo_sqlsrv sind offizielle PHP-Erweiterungen zur Verbindung und Steuerung von Microsoft SQL Server-Datenbanken. Sie bauen auf den von Microsoft bereitgestellten ODBC-Treibern auf. Wer mit ServBay und PHP auf SQL Server zugreifen möchte, benötigt diese Module. Im Folgenden die notwendigen Schritte zur Kompilierung und Installation von sqlsrv und pdo_sqlsrv:
Hinweis: Wichtige Voraussetzungen
Bevor Sie das sqlsrv-Modul kompilieren und installieren, müssen Sie zuerst die Microsoft SQL Server ODBC-Treiber und Tools bereitstellen. Diese Pakete sind nicht Teil von ServBay und müssen manuell installiert werden.
macOS
Die Installation erfolgt idealerweise per Homebrew. Ist Homebrew noch nicht verfügbar, besuchen Sie die Homebrew-Website.
Installieren Sie ODBC-Treiber und Tools von Microsoft mit folgenden Homebrew-Befehlen (Lizenzvereinbarung muss oft über die Umgebungsvariable HOMEBREW_ACCEPT_EULA=Y bestätigt werden):
bash
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools181
2
3
2
3
Die Pakete werden typischerweise nach /opt/homebrew/ (Apple Silicon Macs) oder /usr/local/ (Intel Macs) installiert. Pfade müssen beim Build korrekt angegeben werden.
Windows
Windows-Nutzer erhalten den ODBC Driver über die Microsoft ODBC Driver für SQL Server Website:
- Passenden Treiber herunterladen und installieren
- Nach Installation prüfen, ob der Treiber systemweit verfügbar ist
Klären Sie daher vor der Kompilierung des sqlsrv-Moduls, ob alle Abhängigkeiten installiert sind.
Tipp
sqlsrv und pdo_sqlsrv sind zwei getrennte Module, die getrennt kompiliert werden müssen – der Ablauf ist nahezu identisch. Nachfolgend erfolgen die Schritte am Beispiel von sqlsrv.
Schritt 1: Microsoft ODBC-Treiber und Tools installieren
(Vgl. oben: mit Homebrew msodbcsql18 und mssql-tools18 installieren.)
Schritt 2: Quellcode für sqlsrv-Modul beziehen
Über die PECL-Website laden Sie die Quellpakete für sqlsrv und pdo_sqlsrv. Aktuelle Links finden Sie auf der PECL sqlsrv Seite. Beispielhaft wird Version 5.12.0 verwendet:
bash
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_sqlsrv1
2
2
Schritt 3: Quellpaket entpacken und Verzeichnis wechseln
Nach Download Quellpaket entpacken und in das Modulverzeichnis wechseln:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# Für pdo_sqlsrv nach gleichem Schema, die folgenden Schritte erfolgen beispielhaft für sqlsrv.1
2
3
4
2
3
4
Schritt 4: Kompilierungsumgebung vorbereiten (phpize einsetzen)
Im Quellverzeichnis das passende phpize für die Ziel-PHP verwenden, etwa so:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize1
Schritt 5: Build-Optionen konfigurieren (mit Abhängigkeits-Pfaden)
Das sqlsrv-Modul benötigt die von Homebrew installierten Microsoft ODBC-Treiber und unixODBC-Header. Vor dem Starten von ./configure setzen Sie die Umgebungsvariablen LDFLAGS und CPPFLAGS, um die Suchpfade für Bibliotheken und Header korrekt zu hinterlegen. Die Option --with-php-config gibt den zum Ziel-PHP gehörenden Konfigurationspfad vor.
Wählen Sie die richtigen Homebrew-Pfade – auf Intel Macs meist /usr/local, auf Apple Silicon Macs /opt/homebrew. Beispiel für /opt/homebrew:
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # /opt/homebrew/include sorgt für Auffinden aller benötigten Header
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config1
2
3
2
3
LDFLAGS: Suchpfad des Linkers für Bibliotheken.-L/opt/homebrew/libzeigt auf das Standardverzeichnis von Homebrew.CPPFLAGS: Pfade für C/C++ Präprozessor für Header-Dateien.-I/opt/homebrew/opt/unixodbc/includefür unixODBC-Header;-I/opt/homebrew/includefür weitere Header.${CPPFLAGS}und${LDFLAGS}erhalten vorherige Einstellungen aus der ServBay-Kompilierungsumgebung.
Schritt 6: Modul kompilieren und installieren
Läuft die Konfiguration fehlerfrei und das Makefile liegt vor, kompilieren und installieren Sie das Modul mit:
bash
make -j ${CPU_NUMBER}
make install1
2
2
Das make install-Kommando bringt das erzeugte Modul (z.B. sqlsrv.so und ggf. auch pdo_sqlsrv.so) in das korrekte PHP-Erweiterungsverzeichnis.
Schritt 7: Modul aktivieren
Nach der Installation wird das Modul in der PHP-Konfiguration der Zielversion aktiviert – ServBay bietet dafür eine GUI:
- ServBay öffnen
- Links im Menü zu
Sprachen-PHP-PHP 8.3navigieren - Rechts unter dem Reiter
PHPbis „Weitere Parameter“ scrollen undextension=sqlsrv.sosowieextension=pdo_sqlsrv.soeintragen - Speichern – ServBay startet den PHP-Prozess automatisch neu und lädt das Modul

Schritt 8: Modul-Ladung überprüfen
Nach Aktivierung unbedingt das PHP-Paket in ServBay neu starten.
Modulladung testen Sie wie folgt im Terminal:
bash
${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_sqlsrv1
2
2
Erscheinen sqlsrv und/oder pdo_sqlsrv im Output, ist das Modul aktiv. Auch mittels phpinfo() können Status und Konfigurationsdetails verifiziert werden.
FAQ – Häufige Probleme
- Frage: Beim Kompilieren erscheint „Cannot find autoconf“ oder ein ähnlicher Fehler?
- Antwort: In nahezu allen Fällen ist die ServBay-Kompilierungsumgebung nicht korrekt initialisiert. Prüfen Sie nochmals Schritt „Voraussetzungen“ und folgen Sie der Anleitung Pakete mit ServBay kompilieren penibel. Vergewissern Sie sich, dass Buildtools wie autoconf, automake, libtool installiert und über die Umgebungsvariable referenziert werden. Oft reicht das Ausführen des ServBay-Initialisierungsskripts und ein Neustart des Terminals.
- Frage: Das
configure-Skript schlägt fehl mit Meldung, dass eine Bibliothek oder ein Header fehlt?- Antwort: Es fehlen entweder Systembibliotheken oder Header – entweder gar nicht installiert oder der Pfad wird nicht gefunden:
- Bei
imagick: Prüfen Sie, ob das ImageMagick-Entwicklungspaket installiert ist (brew install imagemagick). - Bei
sqlsrv: Kontrollieren Sie, ob die Microsoft ODBC-Treiber (msodbcsql18) undmssql-tools18per Homebrew installiert wurden. Vor./configureunbedingtLDFLAGSundCPPFLAGSvariablen korrekt setzen, inkl. Homebrew-Pfade (/opt/homebrew/lib,/opt/homebrew/opt/unixodbc/include). - Prüfen Sie, ob in den ServBay-Konfigurationsumgebungen die Homebrew-Pfade enthalten sind und ob Sie ggf. das Homebrew-Binverzeichnis manuell zum
PATHhinzufügen müssen.
- Bei
- Antwort: Es fehlen entweder Systembibliotheken oder Header – entweder gar nicht installiert oder der Pfad wird nicht gefunden:
- Frage:
makeodermake installschlagen fehl?- Antwort: Mögliche Gründe:
- Fehlende Build-Abhängigkeiten: Fehleroutput genau lesen, es wird meist benannt, was fehlt. Entsprechende Pakete nachinstallieren.
- Konfigurationsfehler: Prüfen Sie die Parameter von
configure, insbesondere ob bei--with-php-configder korrekte Pfad Ihrer ServBay-PHP-Version gesetzt ist. - Berechtigungsprobleme: Beim Kopieren via
make installin die PHP-Erweiterungsordner, kann es Berechtigungsprobleme geben. Notfallssudo make installnutzen (Achtung: nur wenn Sie die Risiken kennen!). - Quellpaketprobleme: Prüfen Sie, ob das heruntergeladene Quellpaket vollständig und intakt ist.
- Antwort: Mögliche Gründe:
- Frage: Die
.so-Datei wurde generiert und liegt im Erweiterungsverzeichnis, ist im.iniaktiviert, aber beiphp -moderphpinfo()taucht das Modul nicht auf?- Antwort:
- Sehr häufig: Das ServBay-PHP-Paket wurde nach der
.ini-Änderung nicht neu gestartet. Sie müssen explizit via ServBay-Panel oder Kommandozeile das PHP-Paket der gewünschten Version neu starten! Einfaches Neuladen der Webseite oder Webserver-Neustart (z.B. Caddy/Nginx) reicht nicht, die PHP-Instanz muss neu gestartet werden. - Syntaxfehler in der
.ini: Prüfen Sie die Einträge auf Tipp- oder Formatfehler (extension=modulename.so). - Falscher Erweiterungspfad: Kontrollieren Sie, ob die Option
extension_dirinphp.inikorrekt auf das Modulverzeichnis in ServBay zeigt. Der Pfad kann viaphp-config --extension-dirverifiziert werden. - Defektes Modul/Versioninkompatibilität: Modul einmal neu kompilieren. Prüfen Sie, ob das Quellpaket mit Ihrer PHP-Version kompatibel ist. Notfalls PHP-Logs unter ServBay prüfen (meist im
logs-Verzeichnis), um Details zu Modul-Ladefehlern zu erhalten.
- Sehr häufig: Das ServBay-PHP-Paket wurde nach der
- Antwort:
Zusammenfassung
Befolgen Sie die oben genannten Schritte sorgfältig, um in Ihrer ServBay-Entwicklungsumgebung benutzerdefinierte PHP-Module (wie imagick und sqlsrv) erfolgreich zu kompilieren und installieren. Der Schlüssel zum Erfolg liegt in:
- Sorgfältiger Initialisierung der ServBay-Kompilierungsumgebung – zwingende Voraussetzung für alles Weitere.
- Exakte Auswahl und Nutzung der Pfade zur Ziel-PHP-Version – insbesondere bei
phpizeundphp-config. - Korrektes Handling der externen Modul-Abhängigkeiten – Installation von Bibliotheken/Tools wie ImageMagick, ODBC-Treiber; bei der Build-Konfiguration (
./configure) korrekter Umgebungsvariablen- oder Parameter-Einsatz (LDFLAGS,CPPFLAGS, etc.). - Richtige Aktivierung des Moduls in der PHP-Konfiguration – Anlage/Änderung der
.inimit Eintragextension=modulename.so. - Neustart des ServBay-PHP-Pakets – damit die neuen Erweiterungen tatsächlich geladen werden.
ServBay bietet als Komplettpaket für die lokale Entwicklung umfassende Flexibilität und unterstützt vielfältige Technologien: MySQL, PostgreSQL, MongoDB, Redis, Caddy, Nginx, Apache, Node.js, Python, Go, Java, .NET, Ruby, Rust und mehr. Nützliche Features wie ACME-SSL-Zertifikatbeantragung, bequeme CORS-Konfiguration, automatisierte Backups (von Einstellungen, Webseiten, Datenbanken, Zertifikaten), Zurücksetzen des root-Datenbankpassworts sowie ServBay User CA und Public CA für lokales HTTPS erleichtern den effizienten Aufbau eines modernen Entwicklungs-Workflows.
Wir hoffen, dass Ihnen diese Anleitung hilft, die notwendigen PHP-Funktionen in ServBay einfach zu ergänzen und produktiv Web-Applikationen zu entwickeln. Bei weiteren Fragen finden Sie Hilfe in der ServBay-Dokumentation oder der Community.
