Peter Pan: PHP copy von HTTP_POST_FILES: permission denied

Beitrag lesen

Hi Tom,

Wenn das die einzige Meldung ist, könnte das damit zusammenhängen, dass im Verzeichnis bereits ein File dieses Namens vorhanden ist, das schreibgeschützt ist. Das halte ich aber selber für unwahrscheinlich.

genau; das Verzeichnis ist bislang (fast) leer; keine Uploads da, und auch keine Datei mit gleichem Dateinamen. Und es gehört apache und die Gruppe ist apache (mit diesem User/Gruppe wird auch die temporäre Datei auch in /tmp angelegt).

Für wahrscheinlicher halte ich, dass das eine verkürzte Fehlermeldung ist und Du bei

error_reporting(E_ALL);
  ini_set('display_errors','On');  # oder '1'
  ini_set('track_errors','On');    # oder '1'

und dann nach jeder IO-Operation die Variable $php_errormsg abfragen.

Das hatte ich auch schon so in php.ini spezifiziert; aber trotzdem vielen Dank für den Tipp; dann muss ich demnächst zumindest nicht immer die globale php.ini ändern.

»»

$fh = fopen($zieldatei,'w');     # $zieldatei kommt aus $_FILES['userfeldname']['tmp_name']
  if (!empty($php_errormsg)) echo "htmlentities($php_errormsg)";

Probier es mal so, um die Ursach zu finden.

Da steht immer nur eine Sache:

Warning: copy(/var/www/html/db/script.sql): failed to open stream: Permission denied in /var/www/html/db/submit-exercise.php on line 118

(das ist ja sehr abstrakt) und:

htmlentities(failed to open stream: Permission denied)

Später solltest Du dann move_uploaded_files() benutzen.

Habe ich auch getestet... hier ist das (gleiche) Ergebnis:

Warning: move_uploaded_file(/var/www/html/db/script.sql): failed to open stream: Permission denied in /var/www/html/db/submit-exercise.php on line 119

Das Problem schein wirklich sehr tief irgendwo begraben zu sein; z.B. läuft das Script ohne Änderungen auf einer Sun mit einer anderen PHP-Version und einem anderen Rechte-System; habe schon alles verglichen, aber keinen Hinweis auf eine mögliche Fehlerquelle gesehen.

Trotzdem vielen Dank für Deine Antworten, Tom! Und wenn Dir noch was einfällt, dann wäre ich Dir auch sehr dankbar, wenn Du mich es wissen lassen könntest!