PHP Extensions unter Windows aktivieren
Ich zeige wie man PHP Extensions unter Windows aktivieren kann um somit den Funktionsumfang der Skriptsprache zu erweitern. Zahlreiche Erweiterungen fügen der Skriptsprache Funktionen hinzu ohne, dass man wie bei C++ üblich Bibliotheken erstellen und einbinden muss. Je nach System sind andere Extensions aktiv oder nicht.
PHP Extensions unter Windows aktivieren
Jeder PHP Entwickler kennt es. Das Problem mit Extensions die bei einem Hoster aktiv sind und bei anderen wieder nicht. Meist muss man zusätzliche Funktionalität über den Support in Auftrag geben. In meinen PHP unter Windows installieren Artikel habe ich euch bereits gezeigt wie man PHP auf Windows 10 installiert und über die Kommandozeile (CMD) wie unter Linux nutzt um PHP Skripte auszuführen. Jetzt geht es darum eine beliebige Bibliothek zu aktivieren – genau das, was beim Hoster ein System Administrator für euch macht.
undefined function Fehler
Wenn eine Extension nicht aktiviert ist, dann wird folgender Fehler ausgegeben:
PHP Fatal error: Uncaught Error: Call to undefined function imagecreatefrompng() in …
Die Funktion imagecreatefrompng ist nicht bekannt.
Schaut man in der PHP Dokumentation nach wird klar, dass diese Funktion aus der Grafikbibliothek GD2 kommt. Offensichtlich ist diese nicht aktiviert.
Extension aktivieren
Die Konfiguration von PHP geschieht ausschließlich über die php.ini Datei. Bei Hoster gibt es oft mehrere dieser Konfigurationsdateien, damit man pro Benutzer leicht abgeänderte Konfigurationen erstellen kann. Bei unserer Installation unter Windows gibt es nur eine globale Datei mit Einstellungen. Bei mir ist diese unter C:\Program Files\PHP\php.ini zu finden.
Die php.ini Datei ist zwar sehr lang, enthält aber bereits viele auskommentierte Beispielkonfigurationen. Außerdem finden sich sehr viele Kommentare und vieles ist selbsterklärend. Relativ mittig findet sich eine lange Liste an Extensions die alle deaktiviert sind (ein ; vor dem Befehlt). Um GD2 und andere Extensions zu aktivieren muss man lediglich das Semikolon in der ersten Spalte entfernen. Danach muss die Datei noch im Administrationsmodul (weil unter C:) abgespeichert werden.
Der nächste Aufruf von einem PHP Skript berücksichtigt bereits die geänderte Konfiguration:
Alle Extensions aktivieren
Warum sind nicht standardmäßig alle Extensions aktiviert? Manch ein Benutzer stellt sich vermutlich diese Frage. Es ist doch mühsam beim Hoster für jede Verwendung über den Support nach Umstellung der Konfiguration zu fragen. Tatsächlich ist es so, dass jede laufende Extension eine potentielle Sicherheitslücke ist. Die Extensions müssen vom Administrator gewartet und aktualisiert werden. Außerdem benötigt man für mehr Funktionalität auch mehr Speicher, was sich gerade bei ausgelasteten Servern schnell negativ auswirken kann.
Für unser lokales Windows System sind diese Überlegungen kaum von belang, weshalb wir lokal auch alle Extensions aktivieren können. Man muss aber immer im Kopf behalten, dass es vermutlich keinen Hoster gibt, der genau so eine Konstellation anbietet. Man sollte die Software immer so schreiben, damit man möglichst wenige Extensions benötigt.
Fazit
Soweit meine kurze Einführung wie man PHP Extensions unter Windows aktivieren kann. Über die php.ini Datei könnte man noch viele weitere Artikel schreiben. Es macht Sinn, wenn man als PHP Entwickler diese Konfigurationsdatei gut kennt, auch wenn man diese nicht selber administriert. Grundkenntnisse zur Administration ist bei der Entwicklung von Software nie falsch. Den Administrator am Support wird es freuen, wenn man gleich konkret angibt, was getan werden muss und weshalb.
Hallo Werner, dein kurzer Artikel über die Aktivierung der PHP Extensions unter Windows gefällt mir sehr gut. Deine kurze und prägnante Art macht den Text sehr ansehnlich und gut verständlich.