2010-01-06 70 views
0

我希望我的PHP軟件能夠自動更新。爲了這個工作,我需要PHP能夠寫入現有和不存在的(創建)文件。如果我只是將目標文件CHMOD爲0777然後寫入它,它會一直工作嗎?或者PHP/Apache/wtvr進程需要成爲文件的所有者?PHP和CHMOD問題

有時當人們使用FTP帳戶上傳時,所有者可能與PHP過程不同,這是一個問題嗎?

編輯:我正在構建一個PHP應用程序,我不知道應用程序將在哪些配置上運行,並且我無法修改任何與服務器相關的設置。我可以做PHP可以做的事情,比如chown(),chmod()。

回答

2

我有一個服務器,當通過FTP上傳文件時,文件的所有權變成了ftp用戶,這在過去引起了一些權限問題。

我們使用組來避開這個

例如,你可以訪問這些文件創建一個用戶組,並添加阿帕奇加上每個FTP用戶組:

usermod -a -G appUpdaters www 
usermod -a -G appUpdaters ftp1 
usermod -a -G appUpdaters ftp2 
etc... 

然後你可以CHOWN文件/文件夾到用戶+組和chmod 775

chown www.appUpdaters foldername 
chmod 775 foldername 

這樣,如果所有權改變ftp1.appUpdaters或ftp2.appUpdaters,其他用戶可以仍然寫入該文件。

就像我說的,我似乎並不需要在我使用的所有服務器上都這樣做,所以我猜你是否要取決於你的服務器配置。如果你決定使用羣體壽,我發現這個鏈接就派上用場了,有時

http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

+0

我認爲存在問題。我不認爲我可以通過PHP創建用戶組?我不需要訪問服務器?我只是一個開發者,爲多個平臺編寫軟件。 – Tower 2010-01-06 14:23:22

1

將您要上傳的文件夾歸您的www服務器所有。然後你的PHP腳本就能夠寫入該文件夾,如果它chmodded 755

# chown www somefolder 
# chmod 755 !$ 

(不要讓其他的東西通過WWW擁有你的網頁文件)。

+0

有沒有辦法找出通過PHP www的用戶? – Tower 2010-01-06 12:03:21

+0

製作一個文件夾chmod 777,然後製作一個小php腳本在該文件夾中編寫一個文件,然後ls -l並查看該文件的所有者,我猜。雖然有更簡單的方法。你有root權限嗎? – Gazzer 2010-01-06 12:19:16