php fopen 权限问题

php fopen 权限问题

我正在学习 php,在编写文件上传页面时遇到了问题。在 docroot 中,我有 index.php(调用 fopen 的页面)和一个名为“images”的目录,我希望将临时文件移动到该目录。但是,fopen 失败,并显示“权限被拒绝”(参见 /var/log/httpd/error_log )。调用 fopen 请求写入。

我搜索了网络,发现问题出在图片目录的权限上。我首先将目录的组所有者更改为非 root 组,并将“apache”添加到该组。组对该目录具有 w 权限。(我发现我的 Apache 以用户 apache 的身份运行,并且

# ps aux| grep httpd

这失败了。(应该可以,不是吗?)

再次,我徒劳地将整个 images/ 目录的所有权移交给“apache”。

是的,我在完成上述每个更改后都重新启动了服务器。

谢谢,

亚提

PS:我的名声不允许我在 8 小时内自行回答,因此决定在这里进行编辑。在 Ignacio 的帮助下,更改图像目录的 SELinux 上下文的命令是:

# chcon -R -h -t httpd_sys_rw_content_t ./images

从 docRoot 内部。

再次感谢。

答案1

SELinux 阻止 HTTPd 写入该目录。使用chcon将 的文件上下文更改images/httpd_sys_rw_content_t,如果这样可以正常工作,则使用semanage使其永久生效。

相关内容