Problem mit PHP5.3 und Apache.

jpieper

New Member
[Fixed] Problem mit PHP5.3 und Apache.

Bitte keine Kommentare wie "nimm doch XAMPP".

Ich möchte PHP5.3 mit Apache2.2 für meine lokale Entwicklungsumgebung nutzen. Der Apache läuft bereits und macht auch keine Probleme, jedoch finde ich keinen Weg PHP5.3 in Apache2.2 einzuhängen, dass meine PHP-Dateien geparsed werden. Mit PHP5.2 gibt es absolut keine Probleme, aber bei PHP5.3 muss sich irgendwas grundlegend geändert haben. Ich habe es nun bereits als Modul und auch mit FastCGI versucht.

Es wäre super, wenn mir da einer einen Tipp geben könnte, wie ich PHP5.3 zum Laufen bekomme, oder was ich in meiner Konfiguration falsch gemacht habe. Es wäre mir ansich lieber, wenn ich PHP5.3 als Modul geladen bekäme, aber als FastCGI geht es natürlich auch.

Problem mit PHP5.3 als Modul
Im Paket gibt es keine "php5apache2_2.dll" (o.ä.) mehr, wie es sie bei PHP5.2 gibt. Dadurch kann ich PHP5.3 nicht als Modul laden. Da die Kombination bei XAMPP ja scheinbar funktioniert, habe ich mir deren Paket mal runtergeladen und dort nachgeschaut, wie die es machen. Die haben dort eine solche DLL-Datei. Also kopiert und meine Konfiguration angepasst:

Code:
LoadModule php5_module "C:/Server/httpd/modules/php5apache2_2.dll"

Bringt da irgendwie nichts, denn dann gibt es folgende Meldung beim Start des Apachen:

httpd.exe: Syntax error on line 462 of C:/Server/httpd/conf/httpd.conf: Syntax error on line 6 of C:/Server/httpd/conf/extra/httpd-php.conf: Cannot load C:/Server/httpd/modules/php5apache2_2.dll into server: Das angegebene Modul wurde nicht gefunden.

Problem mit PHP5.3 als FastCGI
Ich muss sagen, ich habe PHP schon seit PHP4.x nicht mehr als CGI-Version laufen lassen, daher habe ich keine wirkliche Ahnung mehr, wie das funktioniert. Aber es gibt ja das Internet mit vielen vielen Erklärungen und Tutorials.

Also habe ich mir diesen Artikel und diesen Artikel (zwar Linux, aber ansich sollte es da keinen Unterschied geben) und die Apache Dokumentation (etwas Abstrakt, da nicht auf PHP bezogen) angeschaut.

Meine Konfiguration für FastCGI sieht nun wie folgt aus:

Code:
ScriptAlias php_cgi_bin "C:/Server/php"
Action application/x-httpd-php /php_cgi_bin/php-cgi.exe
AddHandler application/x-httpd-php php
AddHandler application/x-httpd-php-source phps

<IfModule mime_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

Nun bekomme ich den Apachen zwar gestartet, aber wenn ich eine PHP-Datei aufrufe, bekomme ich folgende Meldung im Browser angezeigt:

Not Found

The requested URL /php_cgi_bin/php-cgi.exe/index.php was not found on this server.
 
Last edited by a moderator:
Code:
LoadModule php5_module "C:/Server/httpd/modules/php5apache2_2.dll"

Sicher, dass der Pfad zum Modul absolut angegeben wird?
Bei Linux ist es relativ zu ServerRoot.

Code:
LoadModule php5_module modules/php5apache2_2.dll

Probier das mal ;-)
 
Dann kommt folgende Meldung beim Starten des Apachen:

httpd.exe: Syntax error on line 462 of C:/Server/httpd/conf/httpd.conf: Syntax error on line 6 of C:/Server/httpd/conf/extra/httpd-php.conf: Cannot load C:/Server/httpd/modules/php5apache2_2.dll into server: Das angegebene Modul wurde nicht gefunden.

Ein "dir" bringt folgendes Ergebnis (gekürzt):

Code:
C:\Server\httpd\modules>dir
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: B2AD-DE49

 Verzeichnis von C:\Server\httpd\modules

23.08.2010  08:37    <DIR>          .
23.08.2010  08:37    <DIR>          ..
30.07.2010  16:16            24.667 mod_actions.so
30.07.2010  16:16            24.665 mod_alias.so
30.07.2010  16:16            24.667 mod_asis.so
[...]
30.07.2010  16:19            24.671 mod_vhost_alias.so
20.12.2009  00:00            41.616 php5apache2_2.dll
20.12.2009  00:00            41.616 php5apache2_2_filter.dll
              68 Datei(en),      2.079.914 Bytes
               2 Verzeichnis(se),  5.939.474.432 Bytes frei

Der Fehler hört sich auch eher so an, als würde die DLL geladen werden können, aber das Modul "php5_module" kann nicht gefunden werden. Aber wie kann ich denn herausfinden, wie das Modul richtig heisst?
 
Wie oft habe ich diesen Hinweis auf der linken Seite schon gelesen!? :eek:

Okay, ich habe nun die VC9- durch die VC6-Version ersetzt. Da gibt es nun auch eine "php5apache.dll", die sicherlich das Modul beinhaltet, aber ich kann die DLL weiterhin nicht laden. Gleiche Fehlermeldung, wie in meinem letzten Beitrag, nur nun mit einer anderen DLL, die ich lade.

Edit: Achso, ich habe die ZIP-Variante. Soweit es geht, umgehe ich Installationen, da man da dann nie sicher sein kann, ob man die Dateien 1:1 woanders hinkopieren und weiternutzen kann.

Edit: Habe nun die VC6-ThreadSafe und da gibt es zumindest schonmal die DLL "php5apache2_2.dll", wie es sie bei PHP5.2 auch gab. Wenn ich diese nun per LoadModule versuche zu laden, schmiert der Apache ab. Eine brauchbare Fehlermeldung konnte ich bisher noch nicht auftreiben.
 
Last edited by a moderator:
PHP5.3 funktioniert

Oh man, ich habe es nun nach mehreren Stunden hinbekommen :)

Ich habe Apache und PHP komplett neu installiert, aber im Gegensatz zu allen anderen Installationen von PHP, die ich je hatte, hatte ich diesmal die "php.ini" im Windows-Verzeichnis liegen. Bei allen anderen Installationen, die ich je unter Windows hatte, lag die Konfiguration mit im selben Verzeichnis.

Der Apache ist also nicht abgestürzt, weil PHP5.3 nicht wollte, sondern weil in der Konfiguration PHP-Module geladen wurden, die (noch) nicht existieren.
 
PHP3 und apache

Ich habe immer wieder das Problem das dass Modul nicht gefunden wird.
So wie ich das sehe habt Ihr eine Lösung gefunden vielleicht kann mir die auch mal jemand mitteilen.
Wobei ich keinen Eintrag php.ini in Windows habe.
Vielen dank :)
Gruß Einhorn
 
Ähm sind unter Windows nicht Backslashes für Pfadangaben?
Probier doch mal: C:\Server\httpd\modules\php...dll
 
Back
Top