Upload auf Subdomain Verzeichnisse

versuch13

Erfahrenes Mitglied
Jetzt geht das ganze ja von PHP weg, eventuel macht es Sinn wenn das Thema verschoben wird.

Hallo, ich möchte eine Datei welcher erstellt wird mit imagejpg() im Verzeichnis einer Subdomain speichern, erhalte aber diese Fehlermeldung:

PHP:
<b>Warning</b>:  imagejpeg() function.imagejpeg: open_basedir restriction in effect. 
File(/srv/www/vhosts/example.org/subdomains/files/httpdocs/images/1221756844.jpg) is not within the allowed path(s): (/srv/www/vhosts/example.org/httpdocs:/tmp) 
in <b>/srv/www/vhosts/example.org/httpdocs/upload/upload.php</b> on line <b>102</b><br />

<b>Warning</b>:  imagejpeg() function.imagejpeg: 
Invalid filename '/srv/www/vhosts/example.org/subdomains/files/httpdocs/images/1221756844.jpg' in <b>/srv/www/vhosts/example.org/httpdocs/upload/upload.php</b> on line <b>102</b><br />

Die Datei welche die Datei auf der Subdomain erstellen will liegt also unter:

/srv/www/vhosts/example.org/httpdocs/upload/upload.php

und soll in diesem Verzeichnis landen

/srv/www/vhosts/example.org/subdomains/files/httpdocs/images/1221756844.jpg


Welche Gründe gibt es dafür dass ich keinen Zugriff auf die Subdomain Verzeichnisse habe? Wie kann das Problem am besten lösen? Danke im vorraus.
 
Zuletzt bearbeitet:
Klar, das habe ich auch schon gelesen. Ich kann damit allerdings leider nicht viel anfangen und weiß nicht um die Wirkung wenn ich open_basedir nun einfach verändere und wüßte auch nicht auf welchen Wert. Ich habe Zugriff darauf und könnte es ändern, nur will ich nichts ändern von dem ich nicht weiß was es alles bewirkt. Ist die Änderung von open_basedir die einzige Lösung? Oder kann ich den Wert ohne Risiken einfach umstellen?
 
Hi,

diese Einstellung verhindert einfach, dass PHP-Skripte auf Dateien, die außerhalb der angegebenen Pfade liegen, zugreifen. Du könntest jetzt den Pfad zu dem Verzeichnis auf Deiner Subdomain hinzufügen, musst Dir dabei aber im Klaren sein, dass das dann auch global gilt und nicht nur für dieses eine Skript.
Alternativ könntest Du die Datei temporär auf der Domain speichern, auf der das Skript läuft und es dann z.B. per FTP auf die Subdomain schieben.

LG
 
Hilft mir jetzt leider ehrlich gesagt nicht wirklich weiter. Anhand dessen was ich bisher gelesen habe denke ich ist es nicht ratsam open_basedir Einstellungen einfach insgesamt zu verändern bzw. zu deaktivieren. Gibt es die Möglichkeit den Zugriff nur auf das gewünschte Verzeichnis zu ermöglichen?
 
Hi,

Gibt es die Möglichkeit den Zugriff nur auf das gewünschte Verzeichnis zu ermöglichen?

Ja, indem Du das gewünschte Verzeichnis zur Liste der erlaubten Pfade hinzufügst. Das habe ich Dir doch schon geschrieben.
Du musst Dir nur darüber im Klaren sein, dass das nicht nur für diese eine Funktion in diesem einen Skript gilt. Der Zugriff auf dieses Verzeichnis ist dann von allen Skripten deiner Hauptdomain aus möglich. Wenn Dir das zu unsicher ist, dann löse es über die genannte Alternative.

LG
 
Das hast du?

Du könntest jetzt den Pfad zu dem Verzeichnis auf Deiner Subdomain hinzufügen

Damit? Sagt mir leider gar nichts. Was heißt ich kann den Pfad zu dem Verzeichnis auf meiner Subdomain hinzufügen? Die Aussage ist für mich leider etwas "schwammig". Wärst du so nett mir das etwas auführlicher zu erklären? Ich frage ja nicht einfach so danach sondern weil ich es selbst einfach nicht weiß ;)
 
Hi,

na "der Pfad zu dem Verzeichnis auf Deiner Subdomain" ist das Verzeichnis, in das Du versuchst, Deine Bilder zu speichern. In der Fehlermeldung wird er Dir sogar angezeigt. Diesen müsstest Du der Liste von Pfaden in der open_basedir-Direktive hinzufügen.

LG
 
Hey, danke, ja soweit habe ich das schon verstanden. Nur wie hat es ausszusehen?

php_admin_value open_basedir "/srv/www/vhosts/example.org/httpsdocs:/tmp"

Ergänze ich hier einen zweiten Wert durch durch ein Komma? Wie müßte der zweite Wert aussehen?

"/srv/www/vhosts/example.org/subdomains/files/httpdocs"

so?

edit: oh da kam schon deine antwort
 
Zuletzt bearbeitet:
Hi,

Du meinst einen dritten Wert, da sind schon zwei drin. ;)

Auf allen Nicht-Windowssystemen musst Du das mit einem Doppelpunkt trennen. Das steht aber auch auf der Manualseite, die ich Dir verlinkt habe...

LG

Nachtrag: Ich würde nur das images-Verzeichnis dazunehmen: /srv/www/vhosts/example.org/subdomains/files/httpdocs/images/
 
Zuletzt bearbeitet:
Zurück