0

我最近安装了 FC13,并试图在我的 PHP 代码中编写一种机制,将收集到的数据缓存到特定目录中(出于我们的目的,我们将其称为 /var/www/html/_php_resources/cache)。

我将文件复制到 /var/www/html 目录,然后chown -R apache:apache /var/www/html/*chmod a+w /var/www/html/_php_resources/cache新数据上运行。现在我只是为了方便而使用全局写权限。我稍后会调整权限。

当我尝试使用chmodmkdirPHP 函数时,我最终得到:

警告:chmod():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝

或者

警告:mkdir():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝

现在,当我禁用 SELinux 时,一切正常。问题是我宁愿不禁用 SELinux 并实际设置正确的权限,以便我可以将其移植到某人没有这种明确控制的服务器上。

例如:我的个人站点主机允许我设置目录的读/写权限,但不允许 SELinux 策略更改。


供参考:

  • uname -r = 2.6.34.7-56.fc13
  • * php -版本 * = PHP 5.3.3
  • rpm -qa | grep httpd = httpd-2.2.16-1.fc13

有没有人有什么建议?

4

1 回答 1

1

我有同样的问题,试图从 php 中 mkdir。关于谷歌的信息不多,但这是我发现的,我想这是正确的解决方案。必须标记 apache 应该在其中创建目录的目录。

标签应该是“httpd_sys_script_rw_t”,我在这里找到了该信息:http: //docs.fedoraproject.org/en-US/Fedora_Core/5/html/SELinux_FAQ/index.html#id672528

以下是如何标记目录:chcon -R -t httpd_sys_script_rw_t <dir> 在此处参考:http ://www.centos.org/docs/5/html/Deployment_Guide-en-US/rhlcommon-chapter-0017.html

希望这可以帮助那里的人。

于 2012-05-12T12:49:28.180 回答