我希望從我的Android手機上傳文件到運行apache2的Raspberry Pi上的服務器。我想通過不工作的PHP來做到這一點,所以我已經將問題簡化爲一個最小化的例子,它也失敗了。我認爲這個問題涉及到權限。權限被拒絕在服務器上寫入文件
在服務器上擁有以下wtest.php文件:
<!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>
如果我從瀏覽器訪問我的電腦文件,我得到
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
如果我跑裏面是什麼的php標記作爲Raspberry Pi服務器上的腳本,它工作正常。 暫時我已將wtest.php和gcm文件夾的權限更改爲777。我知道這對於permananet解決方案來說是個壞主意,但我試圖簡單地試圖縮小問題的範圍。
到目前爲止,沒有任何工作。任何幫助將非常感激
確定Web服務器用戶和文件所有者是否相同?你想在應該寫入的文件上執行'chmod 777'嗎? –
@PraveenKumar要寫入的文件在執行代碼之前並不存在。 PHP創建它。它在服務器上運行的腳本中運行正常,但不能通過瀏覽器運行。 – NickT
檢查[get_current_user()](http://php.net/manual/en/function.get-current-user.php)下正在運行的所有者/組的php,然後將Web文件夾的所有者/組設置爲相同。 – Novocaine