在你喊复制人之前!把我赶进深渊,听我说完。:)
我一直在为我工作的公司开发一个内部网站点,最初我是在运行Windows 7/ IIS的工作站上直接开发它的。当我已经接近完成站点/应用程序时,我得到了一个运行Apache的Centos 7盒,所以我已经开始了将它迁移到该系统的过程。我已经解决了大部分的小问题,并使网站现在运行。但是,站点中有一部分与我们的数据库交互,并根据登录的人创建日志目录/文件。这个部分使用mkdir()函数,但是我得到了它的权限问题。
mkdir(): Permission denied这里是我已经做过的:
因此,无论我使用chmod还是chown来更改正在访问的文件夹的权限,我都会得到相同类型的错误。为了安全起见,我还检查了PHP用户,它也使用apache用户。
如果有人可能有更多的洞察为什么它不工作,即使是在权限改变,那么请启发我。如果我碰巧错过了一篇解释这种特殊情况的文章,那就大喊重复,把我驱逐到深渊。lol :)
编辑好吧,在进一步的测试中,我发现了两个问题,这些问题似乎是导致这个整体问题的原因。
请注意,我尝试在PHP中的mkdir上将递归值设置为true,但这时我得到了最初注意到的权限问题。当删除递归/模式时,它不会得到权限问题,但它无法创建嵌套目录。
EDIT2
为了测试我的理论,我删除了嵌套,并试图使mkdir只创建一个目录,并且它会产生与前面相同的错误。尽管它属于Apache,即使我将其设置为777,它也会引发权限问题。
发布于 2015-03-04 18:09:53
可能是尽管您拥有755/777权限,但SELinux正在阻止httpd编写/创建dir。
尝试:
chcon -R -t httpd_sys_content_t /path/to/www
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw更多信息:http://wiki.centos.org/TipsAndTricks/SelinuxBooleans
发布于 2015-03-04 18:44:51
不确定,但是Centos的PHP二进制文件可能有损坏的文件权限。有两种方法可以解决这个问题。
发布于 2017-01-17 06:46:13
根据DRU的答复
这个问题是由于SELINUX。使用贝娄命令
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw
https://stackoverflow.com/questions/28856148
复制相似问题