Hallo zusammen,
habe gerade folgendes Problem.
Um ein programmiertes Tool zu dokumentieren, sollen über SimpleGrid verschiedene spezifische Dokumentationen zum Download stehen.
Verwaltet werden diese eben über ein SimpleGrid in einem Admin Bereich.
Die Dateien werden auf dem Server in einem Upload Directory abgelegt.
Parallel wird in eine Oracle Datenbank: Themenbereich, Kurzbeschreibung und Hyperlink abgelegt.
Das Script läuft auf einem Sun-Solaris Server.
Dabei hatte ich allerdings Probleme mit dem Dateiupload selber. Also habe ich den entsprechenden Teil separiert um mögliche Komplikationen mit SimpleGrid und HTML Quickform auszuschließen.
Auf lokalem XAMPP läuft es einwandfrei. Auf einer Workstation mit installiertem Apache Server funktioniert es.
Um noch einen Test durchzuführen, habe ich den Server vom Clan genommen und das Script dort getestet aber dort kam auch folgende Fehlermeldung:
Bei normalen HTTP Uploads über Formulare wird die Datei ja temporär in ein Verzeichnis abgelegt und dann bei PHP über die Funktion: move_uploaded_file in das Zielverzeichnis verschoben.Warning: move_uploaded_file(/srv/www/vhosts/ctk-clan.com/httpdocs/cotoga/upload/index.php) [function.move-uploaded-file]: failed to open stream: Permission denied in /srv/www/vhosts/ctk-clan.com/httpdocs/cotoga/upload/upload.php on line 7
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php5X89gn' to '/srv/www/vhosts/ctk-clan.com/httpdocs/cotoga/upload/index.php' in /srv/www/vhosts/ctk-clan.com/httpdocs/cotoga/upload/upload.php on line 7
Fehler: 0
Warning: chmod() [function.chmod]: No such file or directory in /srv/www/vhosts/ctk-clan.com/httpdocs/cotoga/upload/upload.php on line 13
Der Teil des Script sieht folgender Maßen aus:
Nach den Test war mein erster Gedanke ein Fehler in den Berechtigungen.<?php
$upload_verzeichnis = '/srv/www/vhosts/ctk-clan.com/cotoga/upload/files';
$dateiname = $_FILES['datei']['name'];
$tempname = $_FILES['datei']['tmp_name'];
if (move_uploaded_file($tempname , $upload_verzeichnis . $dateiname)) {
echo "Ok";
} else {
echo "Fehler: " . $_FILES['datei']['error'];
}
chmod($upload_verzeichnis . $dateiname,0777);
?>
Allerdings kann ich mit SCP Dateien in das Temp Verzeichnis uploaden und auch wieder löschen.
Folgendes Script gibt mir auch positive Rückmeldung:
Habe leider keine Möglichkeit, die php.ini zu ändern. Dort gibt es eine Variable namens '$upload_dir' welche bei nicht Belegung, was der Fall ist, die system defaults verwendet.<?php
$dir_dest="/tmp";
if (!$dir_dest) {
echo "</p></p>Verzeichnis existiert nicht";
}
else {
echo "</p></p>Verzeichnis existiert";
}
if (!@is_dir ($dir_dest)) {
echo "</p></p>Kein Verzeichnis";
}
else {
echo "</p></p>Verzeichnis ist korrekt";
}
if (!is_writeable ($dir_dest)) {
echo "</p></p>Keine Schreibberechtigung";
}
else {
echo "</p></p>Schreibberechtigung vorhanden";
}
?>
Das Temp Dir gehört dem User 'root' und der Gruppe 'sys' und hat chmod 770.
Der User des Webservers lautet 'oracle' und hat die Gruppe 'dba' (Kombinations Pack aus Oracle 10g und Apache 1.3 wegen Support).
Der User vom SCP ist ein normaler User der im Apache einen virtuelles Verzeichnis hat.
Hat irgendwer noch einen Lösunsansatz parat. Stehe gerade irgendwie vor einer Wand.
Vielen Dank für Hilfe
Cotoga
Lesezeichen