不允许 PHP chgrp 操作


PHP chgrp operation not permitted

我有一些PHP代码需要使用chgrp()更改文件组。代码在另一台服务器(php 5.2)上运行,但是当迁移到新服务器(php 5.3)时,它停止工作

chgrp() : 不允许操作。

我已经仔细检查了用户帐户 apache 是否具有该文件的写入权限(并且它是所有者只是为了加倍确定)。我还仔细检查了 PHP safe_mode 是否关闭。

还有其他提示吗?

我猜您正在尝试将一个组分配给目标文件/目录,apache该组不是该组的成员,正如它在chgrp文档中提到的:

只有超级用户可以任意更改文件的组;其他用户可以将文件的组更改为该用户所属的任何组。

我不确定它背后的想法是什么,但它说你不应该能够将你的文件/目录分配给你不是他们成员的组;因此apache用户不能将其任何文件/目录分配给你可能想到的大多数组(默认配置)。

附言您可能能够以apache用户拥有的相同权限chmodchown,但同样,不允许将这些文件分配给您不是其成员的其他组。

所以这个问题就停止了。我从字面上开始添加一些调试语句,并在添加新语句时刷新日志,然后我注意到错误突然停止显示在日志中。我猜有些东西需要重新启动,这发生在我的调试之间。我不确定。但从理论上讲,safe_mode关闭,文件存在,并且作为文件的所有者/创建者的 apache 用户应该从一开始就工作。