为啥 Apache + PHP 需要执行权限才能写入文件?

Posted

技术标签:

【中文标题】为啥 Apache + PHP 需要执行权限才能写入文件?【英文标题】:Why does Apache + PHP require execution permissions to write to a file?为什么 Apache + PHP 需要执行权限才能写入文件? 【发布时间】:2012-07-01 05:51:30 【问题描述】:

一直让我感到困惑的是,如果一个文件夹具有读写权限,Apache + php 就无法对其进行写入。您必须结束授予 apache 执行权限才能在该文件夹中写入文件。为什么?

例如使用 chmod 664(其中构建组包括 apache 用户)apache 将无法在此文件夹中写入临时缓存文件:

drw-rw-r--  5 jenkins build 4096 Jun 15 13:05 cache

使用 chmod 774 apache 将能够将新文件写入文件夹:

drwxrwxr--  5 jenkins build 4096 Jun 29 11:44 cache

【问题讨论】:

【参考方案1】:

您需要执行权限才能从概念上进入一个目录(cd 进入其中,列出其中的文件等)。如果他们将这个位称为目录的其他名称会更清楚。 article 建议将其视为目录的“搜索”权限。

【讨论】:

【参考方案2】:

当为目录设置这些权限时,它可以访问元信息和访问内容,我认为这就是您需要执行的原因。

【讨论】:

以上是关于为啥 Apache + PHP 需要执行权限才能写入文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 www-data 需要执行权限才能将上传的文件写入目录?

PHP:exec()函数为啥没有反应呢?

php apache用户写文件夹权限设置

centos 配置 php 执行shell的权限

Apache+PHP 在 unix 上的写权限

使用 PHP/Apache 上传文件夹的正确权限是啥?