Apache + PHP爲什麼不能在www目錄下寫文件以及如何解決PHP寫文件問題

本文以Ubuntu爲例,其他的Linux系統類似。

環境爲Apache + PHP搭建的web服務器

假設網站根目錄爲/var/www/html

 

問題:

直接通過shell執行PHP,在網站目錄下面讀寫文件沒有問題,但是通過瀏覽器訪問php,卻不能寫文件。

原因:

Apache是通過用戶www-data來執行PHP的,所以PHP能夠做什麼,取決於用戶www-data能做什麼?一般情況下,www-data用戶並沒有在www/html下面寫文件的權限,所以PHP在通過瀏覽器訪問的時候是沒有辦法寫入文件的。

解決辦法:

可以簡單的把www/html或者www/html下面的某個子目錄比如/var/www/html/download的所有者設置爲www-data,這樣PHP就可以正常寫文件。

命令:sudo chown -R www-data /var/www/html

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章