PHP使用apache:apache所有權創建文件,這似乎是導致其他php腳本訪問文件的問題。我該如何讓PHP創建與創建它們的文件具有相同所有權的文件?
我該如何允許php創建與創建文件相同所有權的文件?
我已經在其他地方看到,打開safe_mode會影響這個,但是我已經關閉了它並重新上傳這些文件,而且我仍然遇到同樣的問題。
我敢肯定,這將是一個更熟悉apache的人的簡單問題,但我未能通過搜索找到解決方案。
感謝
PHP使用apache:apache所有權創建文件,這似乎是導致其他php腳本訪問文件的問題。我該如何讓PHP創建與創建它們的文件具有相同所有權的文件?
我該如何允許php創建與創建文件相同所有權的文件?
我已經在其他地方看到,打開safe_mode會影響這個,但是我已經關閉了它並重新上傳這些文件,而且我仍然遇到同樣的問題。
我敢肯定,這將是一個更熟悉apache的人的簡單問題,但我未能通過搜索找到解決方案。
感謝
如果所有權問題和多用戶/項目都在同一臺服務器上,你可能要考慮的SuExec在Apache中:PHP文件,然後將通過在設置中指定的用戶運行,所以文件的默認所有權自動處理。它節省了大量的chown/chmod,並且用戶運行的進程更容易受到限制。
否則,我通常創建一個組,同時與業主& Apache和設置您正在使用哪種環境中的默認umask爲007
如果您使用的是Windows操作系統,你可以啓動Apache作爲一種服務,讓Apache來啓動時使用自己的帳戶的權限。
我沒有在本地運行它,我在一個rackspace服務器上運行,所以linux – DonutReply 2010-09-03 12:20:57
在那種情況下,我不知道如何 – Thariama 2010-09-03 12:57:01
嘗試使用fileowner(http://www.php.net/manual/en/function.fileowner.php)來獲得當前腳本的擁有者的ID,POSIX的getpwuid來獲取該ID(http://www.php.net/manual/en/function.posix-getpwuid.php)和chown(http://php.net/manual/en/function.chown.php)的用戶名來設置文件的用戶。
爲什麼要通過所有的編程麻煩來改變業主?無論如何,apache.apache
是一個非常不安全的擁有者。爲什麼不只是chmod 0777
文件爲所有者提供讀取,寫入和執行。這將消除這個問題。
如果您仍然有麻煩,那麼您可能需要檢查open_basedir是否打開。如果是這種情況,它不是文件所有權或權限,而是位置。這基本上意味着你需要把文件放在apache/php已經包含在路徑中的位置。
呃,抱怨一個不安全的'apache',然後提倡0777是一個相當古怪的組合。 – Wrikken 2010-09-03 14:57:41
我在說的是,如果Apache需要訪問這些文件,將它們設置爲0777不會產生太大的區別。就這樣。 – 2010-09-04 14:46:28
A.M.上面提到的chown(),請注意,通常chown()只能被root用戶使用,而你的web服務器運行帳戶不太可能是root用戶,這是一個非常糟糕的主意。
可以設置sudo以允許其他用戶在特定區域播放,並且只允許特定用戶播放。只需在/ etc/sudoers中創建一個合適的條目,通常使用visudo程序。如果您自己沒有root權限,那麼您的託管服務提供商必須爲您執行此操作,如果他們願意的話。
? Windows還是Linux? – 2010-09-03 12:08:46
我假設他在談論Linux。 – fabrik 2010-09-03 12:11:22