open_basedir restriction in effect

Shorty

Registered User
Hallo ich habe eine Frage was bedeutet diese meldun und wo muss ich was ändern,damt es diese meldung nicht mehr gibt?
PHP:
open_basedir restriction in effect. File(/tmp) is not within the allowed
 path(s): 
(/var/www/web1/html/:/var/www/web1/phptmp/:/var/www/web1/files/:/var/www/web1/atd/)

Gruss
 
Das heißt, dass dein Script nicht auf /tmp zugreifen darf. Du musst das im jeweiligen vHost in der Apache-Config entsprechend anpassen und noch ":/tmp" hinzufügen. ;)
 
Ah danke ich habe das noch nie gemacht könntest dumir bitte etwas genauer erkären wo und wie ich das machen kann?
 
In einer Multi-Site-Umgebung wäre es besser dein Skript so anpassen, dass es statt in "/tmp" in "/var/www/web1/phptmp/" schreibt, da sonst alle PHP-Instanzen ggf. Zugriff auf die Daten in "/tmp" haben...
 
In einer Multi-Site-Umgebung wäre es besser dein Skript so anpassen, dass es statt in "/tmp" in "/var/www/web1/phptmp/" schreibt, da sonst alle PHP-Instanzen ggf. Zugriff auf die Daten in "/tmp" haben...

Danke das würde ich gerne machen,aber leider weiss ich nicht wie und wo?
 
Moin,

also ich habe das gleiche Problem. :mad:

Ich habe in der Datei: /var/www/vhosts/domain.tld/conf/http.include folgenden Eintrag stehen:

Code:
php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"

Leider kommt beim Aufruf immer noch folgende Fehlermeldung:

Code:
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../../class/class.db.php) is not within the allowed path(s): (/var/www/vhosts/domain.tld/httpdocs:/tmp) in /var/www/vhosts/domain.tld/httpdocs/shop/dynsb/include/functions.inc.php on line 33

Was muß ich denn da wo und wie noch ändern? So langsam bin ich ratlos. :confused:

Gruß

Ulf

P.S. Server ist Ubuntu 8.04 mit Plesk 9.3
 
Last edited by a moderator:
So, habe mal etwas anderes ausprobiert und es scheint zu gehen:

Code:
php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/"

Nun meine Frage, gilt das jetzt nur für domain.tld oder für das root-Verzeichnis?

Gruß

Ulf
 
Hallo!
Es gilt für das Verzeichnis, für das es gesetzt wird:
Code:
<Directory /var/www/vhosts/domain.tld/httpdocs/>
   php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"
</Directory>
Sieh dir in diesem Zusammenhang mal den Parameter upload_tmp_dir an. Damit könntest du wahrscheinlich den Vorschlag von Ben. umsetzten.

mfG
Thorsten
 
Hallo!
Es gilt für das Verzeichnis, für das es gesetzt wird:
mfG
Thorsten

Hallo Thorsten,

Sorry, ich frage lieber 3x blöde als das ich den Server nun vollends unsicher machen. :cool:

Code:
<Directory /var/www/vhosts/domain.tld/httpdocs/>
   php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"
</Directory>

= "/var/www/vhosts/domain.tld/httpdocs/tmp"

Code:
<Directory /var/www/vhosts/domain.tld/httpdocs/>
   php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/"
</Directory>

= "/var/www/vhosts/domain.tld/httpdocs/"

Korrekt?

Gruß

Ulf

P.S. Zumndest ist die Fehlermeldung bei " php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/"
" weg und es geht.
 
Hallo Ulf!
Was ist mit = gemeint? Ist dir klar, was open_basedir genau bewirkt?

mfG
Thorsten
 
Code:
<Directory /var/www/vhosts/domain.tld/httpdocs/>
   php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"
</Directory>

= "/var/www/vhosts/domain.tld/httpdocs/tmp"

Code:
<Directory /var/www/vhosts/domain.tld/httpdocs/>
   php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/"
</Directory>

= "/var/www/vhosts/domain.tld/httpdocs/"

Korrekt?
Nein, der Doppelpunkt trennt 2 verschiedene Verzeichnisse. Du hast bei dir dann jeweils 2 Verzeichnis aus der basedir-Restriction ausgenommen. Du kannst da mit mehr Doppelpunkten auch noch weitere Verzeichnisse angeben.
 
@Torsten

jein, es wird ein Verzeichnis "freigegeben" in dem PHP auf Dateien außerhalb des eigenen Verzeichnisses zugreifen und/oder schreiben darf?!

@rest

Ihr versteht mich nicht oder ich Euch. :-(

Also gibt die Anweisung
Code:
php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"
die Verzeichnisse "...domain.tld/httpdocs/" und "/tmp" (also im Hauptverzeichnisbaum) frei?

Zur Erklärung, ich habe eine Shopsoftware laufen, die im Verzeichnis "/var/www/vhosts/domain.tld/httpdocs/shop/" installiert wurde.

Gebe ich ":/tmp" an kommt die Fehlermeldung mit open_basedir. bei ":/" läuft das Programm ohne zu murren.

Darum meine Frage wie ich es mit diesem vermeiledeiten open_basedir machen muß. Ich habe den Server mit einem neuen Betriebssystem versehen müssen und die Einstellungen genauso übernommen, wie sie beim alten Server waren.
Da stand in der http.conf
Code:
php_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/tmp"

Der Shop will damit aber nicht funktionieren. Erst wenn ich nur ":/" eingebe geht er.

Gruß

Ulf
 
Last edited by a moderator:
Back
Top