PHP chmod( ):不允许操作,safe_mode弃用?

我有点挣扎着掌握PHP的概念,因为我目前正在学习的课程有点过时,涉及safe_mode。它指出,当safe_mode被关闭时,当所有者与执行命令的所有者不同时,修改对文件的权限的限制将被删除。我正在与XAMPP结合使用PHP 5.5.9,我已经验证了标志已关闭(以防万一),但似乎无法使其正常工作。当我执行以下PHP脚本时:chmod()chmod()

echo "File permissions :" .  decoct(fileperms("file_permissions.php"));
chmod("file_permissions.php" ,0777);

我收到以下输出:

Warning: chmod(): Operation not permitted

我对该文件的权限如下

-rwxrwxrwx@  1 joelhernandez  staff     24 Apr 14 06:59 file_permissions.php

我已经执行以确认我的Web服务器正在用户“守护进程”下运行。ps aux | grep httpd

当我将文件所有权更改为守护程序时

-rwxrwxrwx@  1 daemon  staff     24 Apr 14 06:59 file_permissions.php

一切正常,我不明白为什么我已经理解了关闭safe_mode,文件所有权将毫无意义,相反,文件权限是处理访问的方式。


答案 1

用户不是 ,因此不允许更改其他用户拥有的文件的模式。PHP safe_mode不是这里的原因。该警告告诉您,由于 Web 服务器用户没有更改模式的权限,因此尝试的操作失败。daemonroot

手动将文件的所有权更改为 后,操作成功,因为允许用户更改他们拥有的文件的模式。daemon


答案 2

推荐