open_basedir (PHP-Fehler oder Konfiguration?)

Schludi

Registered User
Hallo!

Ich komme von hier nur über den SOCKS-Port eines Proxy-Servers ins Internet und der FTP-Upload funktioniert nicht so ganz. Ich möchte jetzt ein PHP-Skript für den FTP-Upload verwenden, habe bereits folgendes entsprechend geändert.

1.) Ich habe einen FTP-Account auf mein Web-Verzeichnis www.domain.de/markus/
gelegt, wo markus:ftpuser normalerweise der hochladende Benutzer ist, bekomme jetzt allerdings eine Open_basedir-Fehlermeldung:

Verbunden mit als Benutzer
Warning: ftp_put(): open_basedir restriction in effect. File(/tmp/phpW9CUgB) is not within the allowed path(s): (/srv/www/web1/:/srv/www/htdocs/phpmyadmin/:/srv/www/confixx/html/gesperrt/) in /srv/www/web1/html/markus/upload.php on line 25
Ftp upload war fehlerhaft!

Liegt das an meiner Konfiguration oder ist das folgende Skript falsch?

PHP:
if (!empty($datei))
{

$source_file=$datei;

$destination_file="./bla.jpg";

//Herstellen der Basis-Verbindung
$conn_id = ftp_connect("localhost");


// Einloggen mit Benutzername und Kennwort
$login_result = ftp_login($conn_id, "markus", "markus");

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
        echo "Ftp-Verbindung nicht hergestellt!";
        echo "Verbindung mit $ftp_server als Benutzer $ftp_user_name nicht möglich";
        die;
    } else {
        echo "Verbunden mit $ftp_server als Benutzer $ftp_user_name";
    }

// Upload der Datei
$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);

// Upload-Status überprüfen
if (!$upload) {
        echo "Ftp upload war fehlerhaft!";
    } else {
        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben";
    }

// Schließen des FTP-Streams
ftp_quit($conn_id);

}
else
{
  print "
<html>
<head><title>Datei hochladen</title></head>
<body>
<form enctype=\"multipart/form-data\" method=\"POST\" action=\"./upload.php\">
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000000\">
Diese Datei hochladen: <input name=\"datei\" type=\"file\">
<input type=\"submit\" value=\"Übernehmen\" name=\"Send File\">
</form>
</body>
</html>
";
}
?>
 
Hallo!
Dein Script versucht in /tmp zu schreiben. Das ist mit der aktuellen open_basedir Konfiguration nicht erlaubt und auch gut so. Unter confixx sollte doch jeder webX Benutzer ein Verzeichnis phptemp oder so ähnlich haben.

mfG
Thorsten
 
Hallo Thorsten!

Danke für deine schnelle Antwort. Aber ich habe doch gar kein Verzeichnis angegeben, das ist doch das Standardskript von www.php.de um was hochzuladen :P. Was muss ich denn eigentlich in CONFIXX ändern, damit es geht?
 
Hallo!
Durchsuch doch mal dein Script nach /tmp. Ansonsten mal [thread]1386[/thread] lesen. Ähnliche Problematik.

mfG
Thorsten
 
Back
Top