首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos 7/ Apache / PHP ():权限被拒绝

Centos 7/ Apache / PHP ():权限被拒绝
EN

Stack Overflow用户
提问于 2015-03-04 13:49:02
回答 3查看 29.9K关注 0票数 20

在你喊复制人之前!把我赶进深渊,听我说完。:)

我一直在为我工作的公司开发一个内部网站点,最初我是在运行Windows 7/ IIS的工作站上直接开发它的。当我已经接近完成站点/应用程序时,我得到了一个运行ApacheCentos 7盒,所以我已经开始了将它迁移到该系统的过程。我已经解决了大部分的小问题,并使网站现在运行。但是,站点中有一部分与我们的数据库交互,并根据登录的人创建日志目录/文件。这个部分使用mkdir()函数,但是我得到了它的权限问题。

代码语言:javascript
复制
mkdir(): Permission denied

这里是我已经做过的:

  • 由于我使用的是Centos 7,Apache用户/组是apache:apache。我使用了chown,并将/var/www/html/和Logs文件夹的所有者更改为apache用户/组。为了安全起见,我双重检查了httpd.conf,还检查了正在运行的进程,以确保我有正确的用户/组。
  • 为了测试目的,我尝试将所有这些文件夹的权限更改为chmod 777,但是得到了相同的错误。
  • 从上到下搜索StackOverflow,只得到我已经尝试过的东西的答案,但没有结果。

因此,无论我使用chmod还是chown来更改正在访问的文件夹的权限,我都会得到相同类型的错误。为了安全起见,我还检查了PHP用户,它也使用apache用户。

如果有人可能有更多的洞察为什么它不工作,即使是在权限改变,那么请启发我。如果我碰巧错过了一篇解释这种特殊情况的文章,那就大喊重复,把我驱逐到深渊。lol :)

编辑好吧,在进一步的测试中,我发现了两个问题,这些问题似乎是导致这个整体问题的原因。

  1. PHP试图在从脚本创建文件夹时为其设置权限,而且即使apache是所有者,服务器似乎也不喜欢它。删除这部分代码后,权限错误就会消失,我将得到一个“没有这样的文件或目录”的错误。
  2. 当测试通过sudo与用户Apache一起创建目录时,它能够创建一个没有问题的目录。但是,我的PHP脚本创建了2个目录,然后在最后一个目录中创建了一个日志文件。似乎不能同时创建两个目录?例如,已经创建了一个日志文件夹,PHP正在尝试在其中创建两个目录,一个用于用户ID,然后在其中一个文件夹中创建日期。因此,一旦PHP脚本运行,它应该创建类似于"Logs/5235/3-3-2015/“之类的内容。

请注意,我尝试在PHP中的mkdir上将递归值设置为true,但这时我得到了最初注意到的权限问题。当删除递归/模式时,它不会得到权限问题,但它无法创建嵌套目录。

EDIT2

为了测试我的理论,我删除了嵌套,并试图使mkdir只创建一个目录,并且它会产生与前面相同的错误。尽管它属于Apache,即使我将其设置为777,它也会引发权限问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-04 18:09:53

可能是尽管您拥有755/777权限,但SELinux正在阻止httpd编写/创建dir。

尝试:

代码语言:javascript
复制
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

票数 55
EN

Stack Overflow用户

发布于 2015-03-04 18:44:51

不确定,但是Centos的PHP二进制文件可能有损坏的文件权限。有两种方法可以解决这个问题。

  • 从头开始编译PHP。我更喜欢这个,因为所有的控制权都是你的。
  • 或者将PHP脚本更改为使用php的use ()函数。文档链接
票数 2
EN

Stack Overflow用户

发布于 2017-01-17 06:46:13

根据DRU的答复

这个问题是由于SELINUX。使用贝娄命令

chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28856148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档