2010-09-03 70 views
6

PHP使用apache:apache所有權創建文件,這似乎是導致其他php腳本訪問文件的問題。我該如何讓PHP創建與創建它們的文件具有相同所有權的文件?

我該如何允許php創建與創建文件相同所有權的文件?

我已經在其他地方看到,打開safe_mode會影響這個,但是我已經關閉了它並重新上傳這些文件,而且我仍然遇到同樣的問題。

我敢肯定,這將是一個更熟悉apache的人的簡單問題,但我未能通過搜索找到解決方案。

感謝

+0

? Windows還是Linux? – 2010-09-03 12:08:46

+0

我假設他在談論Linux。 – fabrik 2010-09-03 12:11:22

回答

2

如果所有權問題和多用戶/項目都在同一臺服務器上,你可能要考慮的SuExec在Apache中:PHP文件,然後將通過在設置中指定的用戶運行,所以文件的默認所有權自動處理。它節省了大量的chown/chmod,並且用戶運行的進程更容易受到限制。

否則,我通常創建一個組,同時與業主& Apache和設置您正在使用哪種環境中的默認umask爲007

0

如果您使用的是Windows操作系統,你可以啓動Apache作爲一種服務,讓Apache來啓動時使用自己的帳戶的權限。

+0

我沒有在本地運行它,我在一個rackspace服務器上運行,所以linux – DonutReply 2010-09-03 12:20:57

+0

在那種情況下,我不知道如何 – Thariama 2010-09-03 12:57:01

0

爲什麼要通過所有的編程麻煩來改變業主?無論如何,apache.apache是一個非常不安全的擁有者。爲什麼不只是chmod 0777文件爲所有者提供讀取,寫入和執行。這將消除這個問題。

如果您仍然有麻煩,那麼您可能需要檢查open_basedir是否打開。如果是這種情況,它不是文件所有權或權限,而是位置。這基本上意味着你需要把文件放在apache/php已經包含在路徑中的位置。

+2

呃,抱怨一個不安全的'apache',然後提倡0777是一個相當古怪的組合。 – Wrikken 2010-09-03 14:57:41

+0

我在說的是,如果Apache需要訪問這些文件,將它們設置爲0777不會產生太大的區別。就這樣。 – 2010-09-04 14:46:28

0

A.M.上面提到的chown(),請注意,通常chown()只能被root用戶使用,而你的web服務器運行帳戶不太可能是root用戶,這是一個非常糟糕的主意。

可以設置sudo以允許其他用戶在特定區域播放,並且只允許特定用戶播放。只需在/ etc/sudoers中創建一個合適的條目,通常使用visudo程序。如果您自己沒有root權限,那麼您的託管服務提供商必須爲您執行此操作,如果他們願意的話。

欲瞭解更多信息:http://www.sudo.ws/sudo/sudo.html

相關問題