Ich möchte eine Datei von meinem Android-Handy auf einen Server auf einem Raspberry Pi mit Apache2 hochladen. Ich möchte dies über PHP tun, die nicht funktioniert, also habe ich das Problem auf ein minimales Beispiel reduziert, das auch fehlschlägt. Ich denke, das Problem betrifft die Berechtigungen.Berechtigung verweigert Schreiben einer Datei auf einem Server
haben folgende wtest.php Datei auf dem Server:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/s$
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<?php
echo 'Current script owner: ' . get_current_user();
echo "\n";
$file2 = fopen('testfile2', 'w');
if ($file2 === false)
{
print_r(error_get_last());
}
$fwrite2 = fwrite($file2, 'hello');
if ($fwrite2 === false){
echo "\n";
echo "write 2 error\n";
}
else{
echo "write2 OK\n";
}
fclose($file2);
?>
</html>
Wenn ich diese Datei von einem Browser auf dem PC zugreifen, bekomme ich
Current script owner: pi Array ([type] => 2 [message] => fopen(testfile2): failed to open stream: Permission denied [file] => /var/www/gcm/wtest.php [line] => 8) write 2 error
Wenn ich laufe, was im Inneren der ist PHP-Tags als Skript auf dem Raspberry Pi-Server, funktioniert es OK. Vorübergehend Ich habe die Berechtigungen in der wtest.php und dem gcm-Ordner auf 777 geändert. Ich weiß, dass dies eine schlechte Idee für eine Permananet-Lösung ist, aber ich habe es kurz versucht, um das Problem einzugrenzen.
Bis jetzt hat nichts funktioniert. Jede Hilfe wird viel
geschätzt werden
Sind Sie sicher, dass der Webserver-Benutzer und der Dateibesitzer identisch sind? Möchten Sie 'chmod 777' für die Datei schreiben, die geschrieben werden soll? –
@PraveenKumar Die zu schreibende Datei existiert erst, wenn der Code ausgeführt wurde. Der PHP erstellt es. Es funktioniert im Skript auf dem Server, aber nicht über einen Browser. – NickT
Überprüfen Sie, welcher Besitzer/Gruppe php läuft unter [get_current_user()] (http://php.net/manual/en/function.get-current-user.php), dann legen Sie den Besitzer/Gruppe des Web-Verzeichnisses auf die gleich. – Novocaine