为什么PHP需要“执行”权限才能写入文件?

时间:2012-02-04 18:22:49

标签: php linux

除非我为其创建的目录启用“执行”权限,否则我无法打开文件进行写入。这看起来很奇怪。为什么“写”权限不够?

这是一个非常简单的fopen,fputcsv循环,fclose序列。该目录中的文件没有其他任何操作。

基本配置 - Centos,Apache,PHP

由于

2 个答案:

答案 0 :(得分:2)

“在目录上,执行权限(也称为”搜索位“)允许您访问目录中的文件并使用cd命令输入它,例如。” source - 对文件权限的良好讨论

答案 1 :(得分:1)

这可能与SELinux有关。基本上,SELinux可让您更好地控制哪些进程和守护进程可以执行...一种超出普通用户/组权限的边界系统。它可以对细粒度控制有所帮助,但有时会妨碍它。

有一些方法可以将其关闭(请参阅http://linuxconfig.org/how-to-disable-selinux)。

但是,还有一些方法可以微调设置(参见:http://sheltren.com/stop-disabling-selinux),从长远来看这可能会更好。如果你没有与CentOS联系,你也可以尝试不同的发行版。

修改

此外,如果这与SELinux无关,如下面评论中提到的sepp2k,您可能需要查看标题为“执行权限”的部分在Wayne Pollock的this file and directory reference guide上。