Apache 2.2 + PHP über FCGI + mod_chroot

Hallo liebe Community,

ich habe ein Problem mit Apache2.2 und der Kombination aus mod_fcgid und mod_chroot.

Offenbar ist mod_chroot die Komponente, welche das Problem verursacht, denn ohne mod_chroot funktioniert alles wie es soll.

Wenn mod_chroot aktiviert ist, lassen sich keine PHP-Skripte ausführen - HTML- und sonstige, nicht zu interpretierende Dateien verursachen allerdings keinen Fehler.

Folgende Meldungen kann ich der error.log entnehmen:

Code:
[Thu Apr 23 16:34:18 2009] [notice] mod_fcgid: call /var/www/htdocs/info.php with wrapper /var/www/disp_php.fcgi
[Thu Apr 23 16:34:18 2009] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Thu Apr 23 16:34:18 2009] [error] [client 127.0.0.1] Premature end of script headers: info.php, referer: http://localhost/
[Thu Apr 23 16:34:21 2009] [notice] mod_fcgid: process /var/www/htdocs/info.php(11238) exit(communication error), terminated by calling exit(), return code: 255
[Thu Apr 23 16:34:21 2009] [notice] mod_fcgid: process /var/www/htdocs/info.php(11237) exit(server exited), terminated by calling exit(), return code: 255
[Thu Apr 23 16:34:21 2009] [notice] mod_fcgid: process /var/www/htdocs/info.php(11236) exit(server exited), terminated by calling exit(), return code: 255


Verwendet wird:
Ubuntu 9.04 x86
Apache 2.2.1
PHP 5.2.6-3ubuntu4
mod_chroot 0.5
mod_fcgid

Das disp_php.fcgi-Skript lässt sich problemlos manuell ausführen und auch ohne mod_chroot funktioniert es.

Hat jemand eine Idee? Ich werd aus der Fehlermeldung nicht schlau!
Ich hoffe Ihr könnt mir weiter helfen, ich habe über google leider keine Lösung finden können.

Liebe Grüße
little
 
Hm, ich würde mal spontan vermuten ihm fehlen in der Chroot-Umgebung irgendwelche wichtigen Dateien.

Hast du alle wichtigen Dateien ins Chroot-Jail kopiert bzw verlinkt? Und stimmen die Berechtigungen?

Was steht denn im PHP-Log?
 
Hallo Knoxx,

danke für die Antwort.

Im PHP-Log steht nichts.

Ich _denke_, dass sich alle benötigten Dateien im jail befinden, bzw. dort angelegt werden.
Und selbst wenn nicht, müsste/sollte ja die jeweilige Fehlermeldung auf eine fehlende Datei verweisen!?

Die *.pid-Datei von Apache wird innerhalb des jails gespeichert, die Attribute SharememPath und SocketPath verweisen auf Verzeichnisse welche innerhalb des Jails existieren und die /etc/mime.types wurde auch ins jail kopiert.

An den Rechten liegts auch nicht, da ich wahlweise den Apache-Benutzer als Owner bestimmt habe, sowie die Dateirechte auf 755 bzw. 644 (und aus der Verzweiflung heraus auch mal 777 ;))geändert habe.

Zusätzlich habe ich innerhalb des jails die Ordnerstruktur ZUM jail erstellt und einen symlink aufs jail root gesetzt, so dass Module, welche noch so konfiguriert sind, dass Sie Dateien im normalem Dateisystem ablegen wollen / suchen, die Ordnerstruktur auch vorfinden (ausserdem erspart das eine umkonfiguration der vhosts ;-)).
Also: /var/www (jail root)
/var/www/var/www => (symlink zu) ../

Wenn ich das ganze recht deute, dann wird das dispatcher-Skript im chroot gar nicht erst aufgerufen; wenn ich dieses um ein echo erweitere, müsste dieses ja in den logs auftauchen. Tut es auch, ohne mod_chroot. Mit mod_chroot tut sich da nix.

Grüße
little
 
Zurück
Oben