2012-07-19 134 views
1

我在PHP中有一个脚本/应用程序,它适用于我们的办公室,并且我成功地将它部署到另一个办公室。现在在第三个办公室,某个glob()函数返回一个空字符串。linux apache/PHP读写权限

所有的办公室都使用debian stable,所以这些软件包的版本应该是一样的。我能想到的最好的办法是,该特定目录的权限是不够的。

这个我已经这样做:

  • 添加“/股”到的open_basedir指令的虚拟主机内没有尾随“/”,使之递归 - >验证与的phpinfo工作()
  • 对'/ share'设置权限:'setfacl -Rm d:u:www-data:rwx,u:www-data:rwx/share',随后我重新安装了'/ share'并重新启动apache以确保新权限正在使用中。 - >验证与'getfacl/share'一起工作:确认www-data具有读/写权限/共享以及其下的所有目录
  • 我已验证'safe_mode'已关闭
  • 我已添加www-数据发送到拥有'/ share'的POSIX组:'chown -R username/groupname/share',并通过'ls -l'验证。该目录上的POSIX权限为'drwxrws --- +'

我在忽略什么?

+1

哪里安装了apache ..?外部或lampp等..? 如果是这样,请使用chmod 0644修改您的所有应用程序文件夹的权限,例如/ var/www/html/*,或者/ opt/lampp/htdocs/ – Learner 2012-07-19 11:20:36

+0

apache,PHP,postgres等都安装在同一台机器上。我尝试了chmodding'/ share'到0644,0755,0777,1777,但glob()函数仍然返回一个空字符串。谢谢你的建议! – zenlord 2012-07-19 13:07:16

+0

我也尝试了/ var/www /目录下的glob()函数,并且它返回了数组,正如它所记录的那样。这必须是权限问题... – zenlord 2012-07-19 13:08:46

回答

0

找到了它,当然这很明显,我可以把自己打在脑袋上。包含'/ share'的文件夹拥有严格的权限,可能会阻止用户的'www-data'输入'/ share'。 Thx与我一起思考......