2017-08-05 67 views
0

所以我運行Fedora Web服務器上的Apache了。我試圖寫入文本文件。Fedora的PHP「未能打開流:權限被拒絕」

if(!empty($_POST['versionWrite'])){ 
$file = fopen(APP_DIR."/resources/version.txt", "w"); 
fwrite($file, $_POST['versionWrite'].PHP_EOL); 
fclose($file); 
} 

當我執行的代碼,我得到這個:

Warning: fopen(/var/www/spumprnagle/resources/version.txt): failed to open stream: Permission denied in /var/www/spumprnagle/head.php on line 28 

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 29 

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 30 

這發生在每個腳本中使用文件。我不知道該怎麼做才能授予Apache權限來編輯文件。

感謝您的時間:)。

回答

0

問題:Apache用戶不必寫文件的權限。

解決方案

chown -R apache:apache path/to/directory 

其中阿帕奇是Fedora和路徑默認用戶/到/目錄包含的文件和你想要寫的目錄路徑。

如果你想給權限的單個文件省略-R

+0

好的,所以這...工作......但可能通過將文件所有權轉交給Apache我從FTP服務器上刪除權限......任何想法如何解決這個問題? –

0

我將通過在文件上/var/www/spumprnagle/resources/version.txt權限檢查,以確保它是由網絡用戶可寫的開始。既然你標記fedora在這裏,我相信這是通常的apache用戶,所以儘量chown apache:apache /var/www/spumprnagle/resources/version.txt

如果你不確定權限設置,可以隨時臨時設置777,例如chmod 777 /var/www/spumprnagle/resources/version.txt。如果解決了這個問題,您可以將權限調整到更合理的位置(644)。

+0

所以,我太累了,並將其與777的作品,但不與644是什麼水平(如果是任何級別)意思?我知道我在某種程度上調整了訪問該文件所需的權限級別,但我並不真正瞭解這一點。在777處有任何問題嗎?我不使用Linux,所以我很抱歉,如果這些問題是愚蠢的,併爲他們明顯的答案...我也可以設置整個項目文件夾,或者讓我爲每個文件手動設置它? 謝謝。 –

相關問題