大喊之前,请重复!把我放进深渊,听我说。:)
我一直在为与我合作的公司开发一个Intranet站点,最初我是直接从运行 Windows 7 / IIS的 工作站开发它的。当我接近站点/应用程序的完成时,我得到了一个运行 Apache 的 Centos 7 盒子,因此我开始了将其迁移到该系统的过程。我已经解决了大部分次要问题,并且现在使网站开始运行。但是,网站的一部分与我们的数据库进行交互,并根据登录人员创建日志目录/文件。这部分利用了mkdir()函数,但我遇到了权限问题。
mkdir(): Permission denied
这是我已经完成的工作:
因此,无论我使用chmod还是chown更改正在访问的文件夹的权限,都会遇到相同类型的错误。为了安全起见,我还检查了PHP用户,它也使用了apache用户。
如果即使更改了权限,任何人都可能对它为什么不起作用有更多的了解,请赐教。如果我碰巧错过了一篇解释这种特殊情况的文章,那就大喊一声,把我放逐到深渊。大声笑 :)
编辑 好的,因此在进一步测试中,我发现了2个似乎引起此总体问题的问题。
只是要注意,我试图在PHP的mkdir上将递归值设置为true,但这是当我得到最初指出的权限问题时。删除递归/模式后,它不会出现权限问题,但无法创建嵌套目录。
编辑2
为了检验我的理论,我删除了嵌套,并尝试使mkdir仅创建1个目录,并且它生成的错误与以前相同。尽管它是Apache拥有的,即使我将其设置为777,它也会抛出权限问题。
可能是,尽管您拥有755/777权限,但SELinux阻止了httpd编写/创建目录。
尝试:
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