PHP-Erweiterungen unter Windows
So schön einfach man PHP unter Windows zum Laufen bringt, um so schwieriger wird es, wenn man es erweitern will.
Konrekte Zielstellung: ich will die Erweiterungen gd2 und curl aktivieren.
Rein intuitiv geht der Griff zunächste in die php.ini-Datei, in der die entsprechenden Zeilen scharf geschaltet werden (d.h. Semikolon am Zeilenanfang entfernen):
extension_dir = "c:/..."
extension=php_gd2.dll
extension=php_curl.dll
Danach stellt man erst einmal fest, daß die php.ini-Datei nicht aktiviert ist (sie soll im PHP-Installationsordner liegen, gut: in der httpd.cong kann man mit der Anweisung PHPIniDir
machen.). Die richtige php.ini-Datei wird nun interpretiert, auch wenn bei der Ausgabe von phpinfo()
noch das Windows-Verzeichnis angeben ist ...
In verschiedenen Anleitungen steht, daß man noch zwei Dateien ins Systemverzeichnis kopieren muß (was ich nicht unbedingt will, aber ok).
Alles erledigt, doch es läuft noch nicht. Auszug aus der Fehlerprotokollierungsdatei vom Apache:
PHP Warning: PHP Startup: SVx8bt$x10WVhxc8px95: Unable to initialize module
Module compiled with module API=20020429, debug=0, thread-safety=1
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match
in Unknown on line 0
OK, es ist nur eine Warnung. Aber es läuft trotzdem noch nichts. Ein Aufruf folgender Testfunktion bringt eine Fehlermeldung (Funktion nicht gefunden)
curl_version(); gd_info();
Weitere Ideen?
(Ich will nicht noch mal alles mit Xampp aufziehen, ich will dafür auch nicht auf Linux/Mac wechseln)
Bisherige Kommentare (8)
Kommentar von Martin
Das eine Modul scheint schon arg angestaubt (2002) zu sein, gibt es davon keine neuere Version?
Du kannst ja mal testweise nur ein Modul aktivieren und sehen, welches die Meldung verursacht.
Im übrigen halte ich es für keine schlechte Idee, diese beiden SSL-DLLs in dieses Systemverzeichnis legt, denn so können die auch von anderen Programmen genutzt werden (konkret z. B. Miranda und FileZilla).
Kommentar von René
Ich nutze PHP444, das Paket ist so runtergeladen und ausgepackt (läuft übrigens als Modul im Apache), daher müßten die Dateien eigentlich miteinander harmonieren ...
Die Anzahl der Warnungen ist proportional zu den aktivierten Modulen, d.h. ich bekomme damit zwei Meldungen (Damit habe ich auch einen Nachweis, daß die richtige php.ini-Datei auch geladen wird).
Eine Ausnahme bildete das Modul php_mcrypt.dll
. Hier erhalte ich den Hinweis, daß PHP die Datei nicht findet (obwohl vorhanden).
Kommentar von Matthias
> extension_dir = »c:/...«
> ...
> Eine Ausnahme bildete das Modul
> php_mcrypt.dll. Hier erhalte ich den
> Hinweis, daß PHP die Datei nicht findet
> (obwohl vorhanden).
Dann scheint das Verzeichnis falsch angegeben zu sein. Probier's mal mit Backslashes anstatt Slashes. Und die Laufwerke / Verzeichnisse so schreiben, wie sie wirklich heissen, also auf Gross- und Kleinschreibung achten.
Kommentar von René
Zum mcrypt: er bemängelt, daß das Modul nicht gefunden wird. Vermutlich liegt da ein Fehler in der Datei vor (aber das ist erst einmal egal. curl und gd2 müssen laufen)
Kommentar von Matthias
Nein, das glaube ich nicht, ich denke eher, dass der Pfad — wie oben schon geschrieben — falsch eingegeben ist. Was passiert denn, wenn Du ihn änderst? Ich hatte da anfangs auch so meine Probleme mit dem richtigen Format des Pfades...
Kommentar von René
Wenn ich ihn änder, findet er das Modul nicht mehr ...
Kommentar von René
Ich habe testweise die entsprechenden Dateien durch die von PHP 520 ausgetauscht. Hier gibt es keine Fehlermeldung mehr — aber es geht trotzdem nicht.
Aus der Logdatei:
[Wed Feb 07 14:46:46 2007] [notice] Apache/2.0.59 (Win32) PHP/4.4.4 PHP/5.2.0 configured -- resuming normal operations
[Wed Feb 07 14:46:46 2007] [notice] Server built: Jul 27 2006 15:55:03
[Wed Feb 07 14:46:46 2007] [notice] Parent: Created child process 5556
[Wed Feb 07 14:46:47 2007] [notice] Child 5556: Child process is running
[Wed Feb 07 14:46:47 2007] [notice] Child 5556: Acquired the start mutex.
[Wed Feb 07 14:46:47 2007] [notice] Child 5556: Starting 250 worker threads.
(das PHP520 ist nur eine Parallelinstallation)
Kommentar von René
Ich habe nun versucht, die beiden Module mit PHP520 zum Laufen zu bekommen. Es lief auf Anhieb.
Kommentar verfassen
Bisherige Trackbacks (0)
Es wurde noch kein Trackback empfangen!