【发布时间】:2012-07-19 09:36:55
【问题描述】:
我有一个适用于我们办公室的 PHP 脚本/应用程序,我成功地将它部署到另一个办公室。现在在第三个办公室,某个 glob() 函数返回一个空字符串。
所有办公室都使用debian stable,所以软件包的版本应该是一样的。我能想到的最好的就是该特定目录的权限不足。
我已经这样做了:
- 将“/share”添加到虚拟主机内的 open_basedir 指令中,不带尾随“/”以使其递归 -> 已验证可使用 phpinfo()
- 在“/share”上设置权限:“setfacl -Rm d:u:www-data:rwx,u:www-data:rwx /share”,随后我重新挂载了“/share”并重新启动了 apache 以确保新权限正在使用中。 -> 已验证使用“getfacl /share”:确认 www-data 对 /share 及其下的所有目录具有读/写权限
- 我已确认“安全模式”已关闭
- 我已将 www-data 添加到拥有 '/share' 的 POSIX 组:'chown -R username/groupname /share' 并由 'ls -l' 验证。该目录上的 POSIX 权限是 'drwxrws---+'
我忽略了什么?
【问题讨论】:
-
apache 安装在哪里..?外部或lampp等..?如果是这样,请使用 chmod 0644 修改所有应用文件夹的权限,例如 /var/www/html/* 或 /opt/lampp/htdocs/
-
apache、PHP、postgres 等都安装在同一台机器上。我尝试将 '/share' chmodding 为 0644、0755、0777、1777,但 glob() 函数仍然返回一个空字符串。感谢您的建议!
-
我还在 /var/www/ 内的目录上尝试了 glob() 函数,它返回了数组,正如它所记录的那样。这一定是权限问题...
标签: php apache permissions