Installation einer PHP-Erweiterung unter Windows
Unter Windows gibt es zwei Möglichkeiten, eine PHP-Erweiterung zu laden:
Entweder sie wird in PHP einkompiliert oder sie wird als DLL geladen. Eine
vorkompilierte Erweiterung zu laden ist die einfachste und auch die
bevorzugte Methode.
Um eine Erweiterung zu laden, muss sie als ".dll"-Datei auf dem System
vorhanden sein. Alle Erweiterungen werden automatisch und regelmäßig von
der PHP-Gruppe kompiliert (bezüglich des Downloads siehe nächster
Abschnitt).
Informationen darüber, wie Erweiterungen beim Kompilieren in PHP
eingebunden werden, sind in der Dokumentation zum
Erstellen aus dem Quellcode
zu finden.
Um eine eigenständige Erweiterung (auch DLL-Datei genannt) zu kompilieren,
siehe die Dokumentation
Erstellen aus dem Quellcode.
Wenn die DLL-Datei weder in der PHP-Distribution noch in PECL enthalten
ist, muss sie möglicherweise kompiliert werden, bevor die Erweiterung
verwendet werden kann.
Wo finde ich eine Erweiterung?
PHP-Erweiterungen heißen normalerweise "php_*.dll" (wobei der Stern für
den Namen der Erweiterung steht) und befinden sich im Ordner "PHP\ext".
PHP wird mit den Erweiterungen ausgeliefert, die für die meisten
Entwickler am nützlichsten sind. Sie werden als Kern-Erweiterungen (oder
"Core"-Erweiterungen) bezeichnet.
Wenn Sie jedoch Funktionen benötigen, die von keiner Kern-Erweiterung zur
Verfügung gestellt werden, finden Sie die benötigte Erweiterung
möglicherweise in » PECL. Die PHP
Extension Community Library (PECL) ist eine Sammlung von
PHP-Erweiterungen, die eine Liste aller bekannten Erweiterungen sowie
einen Hosting-Service für die Entwicklung und das Herunterladen dieser
PHP-Erweiterungen bereitstellt.
Wenn Sie eine Erweiterung für Ihre eigenen Zwecke entwickelt haben,
möchten Sie diese vielleicht auf PECL zur Verfügung stellen, damit auch
andere davon profitieren können. Ein netter Nebeneffekt ist, dass Sie
anderen auf diese Weise eine gute Möglichkeit bieten, Ihnen Feedback,
(hoffentlich) Dank, Fehlerberichte und sogar Korrekturen/Patches zu geben.
Bitte lesen Sie » PECL submit,
bevor Sie Ihre Erweiterung zum Hosting auf PECL einreichen.
Welche Erweiterung soll ich herunterladen?
Häufig gibt es mehrere Versionen von einer DLL:
-
Verschiedene Versionsnummern (zumindest die ersten beiden Nummern
sollten übereinstimmen)
-
Verschiedene Einstellungen für die Thread-Sicherheit
-
Verschiedene Prozessorarchitekturen (x86, x64, ...)
-
Verschiedene Einstellungen für das Debugging
-
etc.
Beachten Sie, dass die Einstellungen der Erweiterung mit den Einstellungen
des von Ihnen verwendeten PHP-Programms übereinstimmen sollten. Das
folgende PHP-Skript zeigt Ihnen alle
PHP-Einstellungen an:
Alternativ können Sie Folgendes über die Befehlszeile ausführen:
drive:\\path\to\php\executable\php.exe -i
Laden einer Erweiterung
Die übliche Methode, eine PHP-Erweiterung zu laden, besteht darin, sie in
die Konfigurationsdatei php.ini einzutragen. Bitte
beachten Sie, dass bereits viele Erweiterungen in der
php.ini enthalten sind und dass Sie nur das Semikolon
entfernen müssen, um sie zu aktivieren.
Beachten Sie auch, dass ab PHP-Version 7.2.0 anstelle des Dateinamens der
Erweiterung auch deren Name verwendet werden kann. Da dies unabhängig vom
Betriebssystem gilt und insbesondere für Neueinsteiger einfacher ist, ist
dies die empfohlene Methode, um die zu ladenden Erweiterungen anzugeben.
Dateinamen werden aus Gründen der Kompatibilität mit früheren Versionen
weiterhin unterstützt.
;extension=php_extname.dll
extension=php_extname.dll
; Ab PHP Version 7.2 vorzuziehen:
extension=extname
zend_extension=another_extension
Manche Webserver können allerdings etwas verwirrend sein, da sie nicht die
php.ini aus der PHP-Distribution verwenden, sondern
ihre eigene. Wo sich die tatsächlich verwendete
php.ini befindet, können Sie herausfinden, indem Sie
in phpinfo() nach dem Pfad suchen:
Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\Program Files\PHP\5.2\php.ini
Nachdem Sie eine Erweiterung aktiviert haben, speichern Sie die
php.ini, starten den Webserver neu und überprüfen die
phpinfo() erneut. Die neue Erweiterung sollte nun ihren
eigenen Abschnitt haben.
Probleme beheben
Wenn die Erweiterung nicht in phpinfo() erscheint,
sollten Sie Ihre Logs überprüfen, um herauszufinden, wo das Problem liegt.
Wenn Sie PHP auf der Befehlszeile (CLI) verwenden, können Sie den Fehler
beim Laden der Erweiterung direkt auf dem Bildschirm sehen.
Wenn Sie PHP über einen Webserver verwenden, hängen Ort und Format der
Logs von Ihrer Software ab. Da die Logs nichts mit PHP selbst zu tun
haben, sollten Sie die entsprechende Dokumentation Ihres Webservers lesen,
um sie zu finden.
Die häufigsten Ursachen für Probleme sind die Speicherorte der DLL selbst
und der DLLs, von denen sie abhängt, der Wert der Einstellung
"extension_dir" in der
php.ini und falsche Einstellungen beim Kompilieren.
Wenn das Problem auf falsche Einstellungen beim Kompilieren zurückzuführen
ist, haben Sie wahrscheinlich nicht die richtige DLL heruntergeladen.
Versuchen Sie, die Erweiterung nochmal mit den richtigen Einstellungen
herunterzuladen. Auch hier kann phpinfo() eine große
Hilfe sein.