Php

文件上傳文件夾權限 fastCGI - 如何使其可寫?

  • October 29, 2012

我正在使用執行 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 HandlersuPHP這裡的重要部分。

原因:

  1. 您沒有執行suEXEC,實際上腳本沒有在使用者名下執行。您可以執行top -u username -d 1其中 username 是帳戶的使用者名。您應該注意到 php 文件每次執行時都會顯示在該螢幕上。
  2. 父文件夾沒有正確的權限。如果您執行的是舊版本的 Apache,我懷疑是這種情況,因為您提到suEXEC您可以擺脫這種情況。如果您正在執行 suPHP,這將不是問題,因為它會擷取它。因此,請確保父文件夾具有正確的權限。
  3. 您沒有執行 PHP。suPHP 或 suEXEC 僅適用於 PHP 腳本。如果您正在執行其他任何東西,它們可能會或可能不會在該使用者下執行,具體取決於您如何設置 Apache。大多數情況下他們應該這樣做,但誰知道呢!

帶走:使用 suPHP 升級到 Apache 2.x,你應該會被覆蓋。只需確保按照我發布的連結所述將 PHP 處理程序更改為 suPHP。

引用自:https://serverfault.com/questions/432952