open_basedir
RFZ
- php
0 Christoph Schnauß0 MudGuard0 RFZ0 Christoph Schnauß0 RFZ0 Christoph Schnauß0 RFZ
Moin,
hab wieder mal ein Problem :)
Hab jetzt php als Modul im Apache und kann in der httpd.conf PHP konfigurieren.
Hab zum Test "php_admin_value safe_mode On" für einen VHost angegeben, hat funktioniert.
Dann hab ich "php_admin_value open_basedir e:\server\http" hinzugefügt und erhalte plötzlich beim aufruf aller php-seiten eine leere Site. Also Header ist normal (200 OK), aber eben absolut kein Inhalt.
Woran kann das nun wieder liegen? Die PHP Error-log sagt nix...
cu RFZ
morgens auch,
Hab jetzt php als Modul im Apache
ähm ... ja. "Modul im Apache" triffts nun mal nicht so _ganz_ exakt. Daher wird dann deine Aussage
und kann in der httpd.conf PHP konfigurieren.
so richtig schön falsch. Was die Eintragungen in der httpd.conf bewirken, ist keineswegs eine "Konfiguration". Es ist lediglich der Hinweis an den Apache, einen bestimmten "Typ" von Anfragen an einen bestimmten "Handler" weiterzureichen (sehr verkürzt ausgedrückt).
Wenn du PHP wirklich "konfigurieren" möchtest, machst du das in und mit der php.ini, und der kann eine httpd.conf völlig wurscht sein und bleiben - übrigens plattformunabhängig.
Hab zum Test "php_admin_value safe_mode On" für einen VHost angegeben, hat funktioniert.
oh, interessant.
Dann hab ich "php_admin_value open_basedir e:\server\http" hinzugefügt
Wo und wie hast du das "hinzugefügt" und vor allem: warum hast du das eigentlich gemacht?
Die PHP Error-log sagt nix...
Und was sagen die Server-logs (hier dann insbesondere die "access.log" des Apache), hat es denn überhaupt einen Zugriff gegeben?
Grüße aus Berlin
Christoph S.
Hi,
Hab jetzt php als Modul im Apache
ähm ... ja. "Modul im Apache" triffts nun mal nicht so _ganz_ exakt.
Informiere Dich über mod_php
cu,
Andreas
hallo Andreas,
Informiere Dich über mod_php
Ich glaube, das habe ich gelegentlich bereits getan.
Nur ist _hier_ aufgrund der Angabe "e:\server\http" zu vermuten, daß es um ein Windows-System geht, und _da_ ist es eben mit mod_php trotz "AddModule mod_php4.c" nicht ganz so einfach (nein, ich behaupte ja nicht, daß es "gar nicht geht"). Die "Modul-Variante" wird mit Hilfe von php4apache.dll und/bzw. php4ts.dll realisiert, und die stehen nun einmal nicht "im" Apache drin - unter Windows.
Ein wenig zu denken geben sollte auch, daß weder unter http://httpd.apache.org/docs/mod/#other noch unter http://httpd.apache.org/docs-2.0/mod/#other das Stichwort mod_php zu finden ist.
Übrigens sehe ich (_nur_ unter Windows) keinen Vorteil darin, PHP unbedingt als "Modul" aufrufen zu wollen, die CGI-Variante hat es bei meinen Testinstallationen immer auch zufriedenstellend getan - und da es dafür den entsprechenden "Installer" gibt, halte ich das derzeit noch für den zu empfehlenden Weg - wenn man "Extensions" benötigt, kann man sich die ja problemlos aus dem Sourcen-Archiv dazuinstalleren und dann eben in der php.ini "konfigurieren". Belehre mich eines Besseren, wenn du es besser weißt.
Das Ganze scheint zwar eine Spitzfindigkeit, ist meines Erachtens zum Gesamtverständnis aber nicht ganz unwichtig.
Grüße aus Berlin
Christoph S.
Wenn du PHP wirklich "konfigurieren" möchtest, machst du das in und mit der php.ini, und der kann eine httpd.conf völlig wurscht sein und bleiben - übrigens plattformunabhängig.
Ich will zwei verschiedenen VHosts zwei verschiedene Werte zuweisen, das kann ich in der ini nicht.
Hab zum Test "php_admin_value safe_mode On" für einen VHost angegeben, hat funktioniert.
oh, interessant.
findest? schön..
Wo und wie hast du das "hinzugefügt" und vor allem: warum hast du das eigentlich gemacht?
In die httpd.conf? In einen VHost. Weil ich für jeden VHost so andere Werte angeben kann.
Und was sagen die Server-logs (hier dann insbesondere die "access.log" des Apache), hat es denn überhaupt einen Zugriff gegeben?
Was sollte die Access.log dazu sagen, wenn ich die Antwort 200 OK erhalte? Genau das selbe, von Apache her hat alles funktioniert.
Nur PHP liefert eben einen leeren Inhalt.
cu RFZ
hallo,
Ich will zwei verschiedenen VHosts zwei verschiedene Werte zuweisen
Oh, dann sag das doch gleich. Das ist in der Tat ein "Apache-Problem", du kannst verschiedenen virtuellen hosts natürlich sehr unterschiedliche Konfigurationen mitgeben.
Was sollte die Access.log dazu sagen, wenn ich die Antwort 200 OK erhalte?
Auch "200 OK" kann dir einen wichtigen Hinweis liefern - nämlich den, daß der Apache gemäß der Anfrage das ausgeliefert hat, was verlangt wurde.
Nur PHP liefert eben einen leeren Inhalt.
Ist es wirklich "leerer Inhalt"? Das heißt, sind "DOCTYPE" und <html> enthalten und sonst nichts, oder ist es _völlig_ leer?
Du müßtest einmal schauen, mit welchem Script du diesen Fehler erhältst. Wenn das _immer_ passiert, sobald du ein PHP-Script aufrufen möchtest, ist es wahrscheinlich doch die php.ini, die du dir anschauen solltest.
Grüße aus Berlin
Christoph S.
Ist es wirklich "leerer Inhalt"? Das heißt, sind "DOCTYPE" und <html> enthalten und sonst nichts, oder ist es _völlig_ leer?
So ist die Ausgabe:
HTTP/1.1 200 OK
Date: Fri, 12 Sep 2003 11:20:43 GMT
Server: Apache/2.0.47 (Win32)
Content-Length: 0
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Die PHP-Signatur im Header hab ich deaktiviert, nicht wundern dass die fehlt.
Du müßtest einmal schauen, mit welchem Script du diesen Fehler erhältst. Wenn das _immer_ passiert, sobald du ein PHP-Script aufrufen möchtest, ist es wahrscheinlich doch die php.ini, die du dir anschauen solltest.
Passiert bei phpinfo genauso wie wenn ich nur ein echo in das Script schreibe, oder garkeine PHP-Tags drin sind!
An der ini kanns ja nicht liegen, bei den anderen VHosts klappts ja, und die unterscheiden sich nur durch die eine Zeile in der httpd.conf
Christoph S.
cu RFZ
hallo nochmals,
So ist die Ausgabe:
HTTP/1.1 200 OK
Date: Fri, 12 Sep 2003 11:20:43 GMT
Server: Apache/2.0.47 (Win32)
Content-Length: 0
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Das hatte ich nicht gemeint, sondern ich meinte dein "leeres Dokument", das du ja wohl im Browser siehst.
Passiert bei phpinfo genauso wie wenn ich nur ein echo in das Script schreibe, oder garkeine PHP-Tags drin sind!
Dann hängt es eben wahrscheinlich am "safe mode" - das ist schließlich ein ziemlich mächtiger Befehl. Aber mehr, als du in http://de2.php.net/features.safe-mode nachlesen kannst, weiß ich leider auch nicht.
An der ini kanns ja nicht liegen, bei den anderen VHosts klappts ja
"safe mode" überwacht ein Verzeichnis und sämtliche Unterverzeichnisse. Wenn du deinem zweiten virtuelle host jetzt als DocumentRoot e:\server\http\virthost2 zuweist, aber "safe mode" für e:\server\http\ gilt, müßte genau das passieren, was du beschreibst. Allerdings solltest du auch einen Warnhinweis bekommen. Ich hab das aber jetzt nicht getestet und mag an meinem Apache im Moment auch nicht herumspielen.
Grüße aus Berlin
Christoph S.
Das hatte ich nicht gemeint, sondern ich meinte dein "leeres Dokument", das du ja wohl im Browser siehst.
Das meinte ich doch auch, wie du siehst wird nach dem Header nix übertragen, eine LEERES Dokument eben.
Dann hängt es eben wahrscheinlich am "safe mode" - das ist schließlich ein ziemlich mächtiger Befehl. Aber mehr, als du in http://de2.php.net/features.safe-mode nachlesen kannst, weiß ich leider auch nicht.
Am Save Mode hängt's nicht, den hab ich schon längst wieder aus, den hab ich ja nur zum testen benutzt, ob das mit der hattpd.conf geht.
Die Config unterscheidet sich wirklich nur durch die eine Einstellung mit open_basedir.
Document Root ist e:\server\http\www_username\html\ Open Basedir wäre dann e:\server\http\www_username\
Christoph S.
cu RFZ