【发布时间】:2014-04-20 14:56:21
【问题描述】:
我刚刚切换到生产环境,所以我正在设置所有内容,我只是遇到了 Permission Denied 错误(在使用 include() 时),我很确定这是由权限。问题是我以前从未使用过实际的服务器,我一直使用 cPanel 托管,所以我不是处理 chmod 和这些事情的专家。
包含我将成为include()ing 的所有文件的文件夹具有以下权限drwxr-xr-x。
我很确定w 代表写入,r 代表读取,x 代表执行。但我不知道为什么它有 3 列(由“-”分隔)以及如何使用 chmod 更改它。任何帮助将不胜感激。
【问题讨论】:
-
运行 Web 服务的用户帐户与文件所有者之间可能存在脱节。您可能需要
chown更改包含文件的所有权以匹配您的服务器运行的帐户。 -
嗯不知道你的意思。但是我希望我的 include() 读取的目录位于 /home/user1/ 中,这是一个非 root 用户的主文件夹。
-
这通常不是为您的 Web 服务保存文件的好地方。您希望它们至少位于相对于您的 Web 根目录的文件夹中。有关您的 apache 服务帐户的信息,请参阅 here。说是
www-root,那么你需要chown www-root -R /path/to/includes -
/home/user1doretory 通常不能被 Web 服务器读取。如果您检查该目录的权限,它很可能是drwx------。因此,Web 服务器也无法读取该目录下的任何目录/文件。您可能需要将其他人的读取和执行权限添加到那个不安全的目录。 -
另外,如果您尝试将 Web 文件保存在
/var/www/html文件夹之外,您可能会遇到SeLinux权限问题并且需要添加特殊权限。