PHP Error-Docs

Fireball22

Registered User
Hallo,
ich habe einen Virtuellen Server bei Strato und habe das Problem, dass bei mir im /error-docs/ Unterordner keine PHP-Scripte funktionieren.
Ich habe Plesk 7.5.4 Reloaded installiert

Was muss ich denn in der vhost.conf ändern, sodass dieser Ordner PHP-Rechte bekommt?

Suse Linux 9.3 ist übrigends das OS.

Fireball22
 
Hallo!
Was passiert, wenn eine solche PHP Datei aufgerufen wird? Was steht im error_log?

mfG
Thorsten
 
Wenn ich die PHP-Datei aufrufe, dann wird sie zum Download angeboten, die HTML-Dateien jedoch nicht.

Folgende Fehlermeldung steht in der Error-Log, wobei ich hier sagen muss, dass diese Fehlermeldung warscheinlich gekommen ist, da ich vorcher kurz in dem Ordner drin war...

Code:
[Mon May 08 13:59:28 2006] [error] [client 84.155.140.232] Directory index forbidden by rule: /var/www/vhosts/michis-homepage.net/error_docs/

Wie kann man denn die PHP-Funktion in diesem Ordner freischalten?

Fireball22
 
Vielen Dank für deine Antwort!

Genau so ähnlich habe ich es gemacht, ich habe hinten einfach .php hingeschrieben, aber es wird dann unverändert auch einfach heruntergeladen...

Fireball22
 
Beachte, daß bei meiner Lösung (ohne das Verzeichnis error-docs) das PHP-Script in Deinem normalen Webroot liegt, wo PHP-Dateien ausgeführt werden dürfen. (oder nicht?)

Alternativ kannst Du (wenn es unbedingt im error-docs liegen soll) folgendes in die vhost.conf einfügen:
Code:
<directory /home/httpd/vhosts/domain.de/error_docs/>
   <IfModule sapi_apache2.c>
      php_admin_flag engine on
      php_admin_value open_basedir "/home/httpd/vhosts/domain.de/error_docs:/tmp"
   </IfModule>
</directory>

huschi.
 
Vielen Dank, endlich funktioniert es!!

Ist diese Zeile schon so richtig, läuft alles perfekt, aber hab mich gewunder, wegen dem Pfad:

php_admin_value open_basedir "/home/httpd/vhosts/domain.de/error_docs:/tmp

Der Temp-Ordner wird also in diesem error_docs Verzeichniss erstellt?

Fireball22
 
Fireball22 said:
Der Temp-Ordner wird also in diesem error_docs Verzeichniss erstellt?
Nein, das ":" wird als Trennzeichen benutzt um mehrere Ordner angeben zu können. In diesem Fall hat PHP Zugriff auf die folgenden absoluten Pfade
Code:
/home/httpd/vhosts/domain.de/error_docs
/tmp
Alternativ könntest Du auch den tmp Ordner des vhosts angeben
Code:
php_admin_value open_basedir "/home/httpd/vhosts/domain.de/error_docs:/home/httpd/vhosts/domain.de/tmp
Gruß flyingoffice
 
Last edited by a moderator:
Achso, genau!

Ich hab das jetzt einfach so geschrieben:

Code:
php_admin_value open_basedir "/var/www/vhosts/michis-homepage.net:/tmp"

Ist das soweit ok?

Fireball22
 
Fireball22 said:
Ist das soweit ok?
Sicher, aber es ging Dir doch um PHP im /error_doc/ Ordner. Warum gestattest Du jetzt PHP Zugriffrecht auf aller vhosts Ordner? Huschis Vorschlag war und ist genau passend für Dein Problem.

Gruß flyingoffice
 
Also soweit ich das verstehe, ist das nicht die Erlaubniss für PHP, sondern nur ein Temp-Ordner und dazu benutze ich halt einfach mal den Standart-Temp-Ordner von httpdcos, ist doch so ok?! Oder täusche ich mich da?

Fireball22
 
Mit open_basedir wird festgelegt, auf welche Ordner PHP Zugriff hat. Entscheidend ist auch nicht unbedingt der tmp Ordner, auch wenn im default tmp Ordner /tmp Dateien zu finden sind, auf die PHP evt. nicht zugreifen sollte. Entscheidend ist in Deinem Fall der Ordner /var/www/vhosts/michis-homepage.net. Warum willst Du PHP die Erlaublis geben, auf alle Ordner des vhosts zuzugreifen, wenn es Dir lediglich um eine PHP Unterstütung in /error_docs geht.

herrsche und teile!

Gruß flyingoffice
 
Last edited by a moderator:
D.h. es müsste so ausschauen, oder:

Code:
php_admin_value open_basedir "/var/www/vhosts/michis-homepage.net/error_docs:/tmp"

Fireball22
 
Genau, oder wie bereits weiten oben geschrieben:
Code:
php_admin_value open_basedir "/home/httpd/vhosts/michis-homepage.net/error_docs:/home/httpd/vhosts/michis-homepage.net/tmp

Gruß flyingoffice
 
Achso ok, habe ich auch gleich mal gemacht, aber das ist das Ergebniss:

Code:
Warning: main() [function.main]: open_basedir restriction in effect. File(/var/www/vhosts/michis-homepage.net/httpdocs/vote/booth.php) is not within the allowed path(s): (/var/www/vhosts/michis-homepage.net/error_docs:/var/www/vhosts/michis-homepage.net/tmp) in /var/www/vhosts/michis-homepage.net/error_docs/forbidden.php on line 162

Und das hier steht drin:

Code:
 php_admin_value open_basedir "/var/www/vhosts/michis-homepage.net/error_docs:/var/www/vhosts/michis-homepage.net/tmp

Wo liegt der Fehler?

Fireball22
 
In welchen Zusammenhang steht /var/www/vhosts/michis-homepage.net/httpdocs/vote/booth.php mit Deiner PHP Fehlerseite?

Gruß flyingoffice
 
Wie meinst du das genau?
Das ist ein Vote-Panel.
Vorcher wo ich für alles freigegeben habe, ging alles, aber das will ich ja eigentlich gar nicht, sonder ja nur für diesen Ordner ;)

Fireball22
 
Die Fehlermeldung läßt vermuten, daß deine PHP Fehlerseite in /error_docs die Funktion Main() in /var/www/vhosts/michis-homepage.net/httpdocs/vote/booth.php benutzt.

Gruß flyingoffice
 
Ja, das könnte sein, aber ich kann daraus auch erkennen, dass er keine Temp-Datei in den Ordner anlegen kann, oder nicht?

Fireball22
 
Das kann ich aus der Fehlermeldung nicht ableiten. Wenn Dein Fehlerseitenscript unbedingt auf die besagte Datei angewiesen ist, dann füge doch den erforderlichen Pfad (/var/www/vhosts/michis-homepage.net/httpdocs) zusätzlich ein.

Gruß flyingoffice
 
Back
Top