
透過我的網站上傳檔案失敗,因為 apache 未被識別為具有寫入權限。但是,我的權限顯示情況並非如此。有任何想法嗎?
透過腳本上傳時,腳本返回
Error: Directory is not writable
目錄是/home/username/public_html/uploads
目錄權限是drwxrwsr-x
目錄由 Apache 擁有username:webadmins
,作為群組運行www-data
並且是群組的成員www-data webadmins
我應該更改什麼以便 www-data (Apache) 能夠寫入此目錄?謝謝。
答案1
您可以嘗試將上傳資料夾的權限設定為777(所有使用者都具有讀寫權限)。但這並不安全。您不應該在生產系統或具有多個使用者的系統上使用它。無論如何,這會像這樣工作
sudo chown -R 777 /home/username/public_html/uploads
另一種(也是更好的)方法是對 Apache 使用 mod_ruid2。你可以在這裡下載http://sourceforge.net/projects/mod-ruid/
您必須編譯它,然後必須啟用該模組sudo a2enmod ruid2
安裝並啟用此功能後,您可以編輯 userdir 模組的設定檔sudo nano /etc/apache2/mods-enabled/userdir.conf
新增以下內容
<IfModule mod_ruid2.c>
RMode stat
RUidGid username usergroup
RGroups username usergroup
</IfModule>
之後,您必須重新啟動Apache服務sudo service apache2 restart
透過此配置,您可以將 public_html 目錄與您的使用者和使用者群組一起使用。
但這僅適用於只有一個使用者俱有 userdir public_html Apache 的情況。