Php
文件上傳文件夾權限 fastCGI - 如何使其可寫?
我正在使用執行 fastcgi/suEXEC 的 cPanel WHM 的 centos 5.7
我正在嘗試使特定文件夾可寫以允許腳本上傳文件,但似乎有問題。
我想要可寫的文件夾(和所有遞歸文件夾)是:
/home/mydomain/public_html/uploads
而且我只希望使用者“songbanc”執行的腳本能夠寫入這個目錄。
我嘗試了以下方法:
chown -R songbanc /home/mydomain/public_html/uploads chmod -R 755 /home/mydomain/public_html/uploads
但它似乎仍然不起作用。
只有當我通過 FTP 客戶端手動將權限設置為 777 時,該腳本才會上傳文件。
我想我誤解瞭如何使用 fastcgi 為使用者設置權限,希望有人可以幫助我。
提前致謝
**編輯:**在腳本或文件夾之一上執行 getfacl 會得到以下結果:
# file: home/mydomain/public_html/ripples/1.jpg # owner: songbanc # group: songbanc
所以看來樓主是對的?我現在完全糊塗了!
編輯2:
情節變厚了… lsattr 和 chattr 正在返回 Inappropriate ioctl for device 在讀取標誌時…
首先,
suEXEC
是一個 Apache 1.x 模組。由於各種原因和支持問題,升級到 Apache 2.xsuPHP
是正確的選擇。請參閱我之前的文章,了解如何升級。可能發生的事情是我將簡要介紹的一些事情,但是升級到 suPHP 很可能會解決這個問題。重要的是要注意,改變
PHP 5 Handler
是suPHP
這裡的重要部分。原因:
- 您沒有執行
suEXEC
,實際上腳本沒有在使用者名下執行。您可以執行top -u username -d 1
其中 username 是帳戶的使用者名。您應該注意到 php 文件每次執行時都會顯示在該螢幕上。- 父文件夾沒有正確的權限。如果您執行的是舊版本的 Apache,我懷疑是這種情況,因為您提到
suEXEC
您可以擺脫這種情況。如果您正在執行 suPHP,這將不是問題,因為它會擷取它。因此,請確保父文件夾具有正確的權限。- 您沒有執行 PHP。suPHP 或 suEXEC 僅適用於 PHP 腳本。如果您正在執行其他任何東西,它們可能會或可能不會在該使用者下執行,具體取決於您如何設置 Apache。大多數情況下他們應該這樣做,但誰知道呢!
帶走:使用 suPHP 升級到 Apache 2.x,你應該會被覆蓋。只需確保按照我發布的連結所述將 PHP 處理程序更改為 suPHP。