PHP和CHMOD问题

时间:2010-01-06 10:50:17

标签: php linux unix permissions chmod

我希望我的PHP软件能够自动更新。为此,我需要PHP能够写入现有和不存在的文件(创建)。如果我只是将目标文件CHMOD为0777然后写入它,它总能工作吗?或者PHP / Apache / wtvr进程是否需要是文件的所有者?

有时当人们使用FTP帐户上传时,所有者可能与PHP流程不同,这是一个问题吗?

编辑:我正在构建一个PHP应用程序,我不知道应用程序将在哪些配置上运行,我无法修改任何服务器相关设置。我可以做PHP可以做的事情,比如chown(),chmod()。

2 个答案:

答案 0 :(得分:2)

我有一台服务器,当通过FTP上传文件时,文件的所有权变为ftp用户,这在过去曾造成一些权限问题。

我们使用群组来解决这个问题

例如,您可以创建一个用户组来访问文件,并将apache和每个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/

答案 1 :(得分:1)

将要上传的文件夹设为由www服务器拥有的文件夹。然后你的PHP脚本将能够写入该文件夹,如果它是chmodded 755。

# chown www somefolder
# chmod 755 !$

(不要在www拥有的网络文件中制作其他内容。)