0

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

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

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

4

2 回答 2

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/

于 2010-01-06T11:36:44.397 回答
1

使您要上传到的文件夹归您的 www 服务器所有。如果 chmodded 755,那么您的 php 脚本将能够写入该文件夹。

# chown www somefolder
# chmod 755 !$

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

于 2010-01-06T11:10:27.723 回答