我有一些PHP代码需要使用chgrp()
更改文件组。代码在另一台服务器(php 5.2)上运行,但是当迁移到新服务器(php 5.3)时,它停止工作
chgrp()
: 不允许操作。
我已经仔细检查了用户帐户 apache 是否具有该文件的写入权限(并且它是所有者只是为了加倍确定)。我还仔细检查了 PHP safe_mode
是否关闭。
还有其他提示吗?
我猜您正在尝试将一个组分配给目标文件/目录,apache
该组不是该组的成员,正如它在chgrp文档中提到的:
只有超级用户可以任意更改文件的组;其他用户可以将文件的组更改为该用户所属的任何组。
我不确定它背后的想法是什么,但它说你不应该能够将你的文件/目录分配给你不是他们成员的组;因此apache
用户不能将其任何文件/目录分配给你可能想到的大多数组(默认配置)。
附言您可能能够以apache
用户拥有的相同权限chmod
和chown
,但同样,不允许将这些文件分配给您不是其成员的其他组。
所以这个问题就停止了。我从字面上开始添加一些调试语句,并在添加新语句时刷新日志,然后我注意到错误突然停止显示在日志中。我猜有些东西需要重新启动,这发生在我的调试之间。我不确定。但从理论上讲,safe_mode关闭,文件存在,并且作为文件的所有者/创建者的 apache 用户应该从一开始就工作。