Apache mit PHP unter Windows Server 2008


Hallo,

habe mich jetzt damit spielen dürfen auf einem Windows 2008 Server (64 bit) einen Apache Webserver mit PHP 5.4.9 zum Laufen zu bekommen.

Beim Download von PHP gibts immer die Qual der Wahl – nehme ich VC6 oder die VC9-Version? Möchte ich Thread Safe oder Non Thread Safe? Naja, bisher bin ich mit der VC6-Version immer ganz gut gefahren, allerdings gibt es die nur bis PHP-Version 5.3.

Mit PHP 5.3 wäre das alles auch ganz glatt gelaufen, allerdings benötigte ich für die aktuellste Moodle-Version auch eine neuere PHP-Version – somit also doch VC9 und Thread Safe. Doch leider erschien beim Einsatz von PHP 5.4.9 nur die folgende Fehlermeldung in der Ereignisanzeige:

Fehler beim Generieren des Aktivierungskontextes für „C:\*\*\php5apache2_2.dll“. Die abhängige Assemblierung „Microsoft.VC90.CRT,processorArchitecture=“x86″,publicKeyToken=“1fc8b3b9a1e18e3b“,type=“win32″,version=“9.0.21022.8″“ konnte nicht gefunden werden. Verwenden Sie für eine detaillierte Diagnose das Programm „sxstrace.exe“.

Na toll.. 

Eine Internetrecherche ergab, dass man doch nur das Microsoft Visual C++ 2008 Redistributable Package installieren müsse. Schwups habe ich also die 64bit Version dieses Pakets installiert. Hat nichts gebracht.

Nach langer Mühsal fand ich die Lösung – dabei war sie doch so nah!

Apache ist ein 32bit-Programm. Ergo benötige ich auch für das C++ Redistributable Package auch die 32bit-Version. Diese gibt es hier zum Download.

Doch damit leider nicht genug. Moodle verweigerte die Installation, weil man die Extension curl aktivieren soll. Das ist ja Baby! Man öffnet die php.ini und entfernt das Semikolon bei extension=php_curl.dll.

Powidl!

CURL war trotzdem nicht aktiv. Ich hab sicher 10 mal den Apache neu gestartet, die PHP.ini mehrmals geöffnet und gespeichert um sicher zu gehen, dass ich in der richtigen Datei bin – nix.

Dann fand ich einen Beitrag in einem Forum, und der war die Lösung. Just für diese Extension solle man den ganzen Pfad zur DLL angeben, also extension=“C:/*/*/ext/php_curl.dll“.

Klingt blöd, aber das war die Lösung. Alle anderen Extensions laden auch mit dem relativen Pfad normal, nur nicht php_curl!

R.S.