【发布时间】:2016-01-13 20:01:21
【问题描述】:
我见过几个类似的问题,但在我的情况下没有答案,除了它可能与权限有关。
Apache 提供的一个 PHP 脚本告诉我 unable to open database file。
当我打印该文件的路径时,它会返回一个有效的路径,比如 DBPATH。该文件确实存在于该位置;我给了它和它的父文件夹777 权限;我给了他们user:user 访问权限,其中user 是所有脚本文件所属的sudoer。为了以防万一,我对整个 htdocs/ 文件夹做了同样的事情。
当我打印 file_exists(DBPATH) 时,它返回 false。很可能是权限问题,但我不知道我应该为 PHP 更改什么以获得访问权限。我也试过apache:apache。我不能su apache(用户不可用)。
我的脚本在htdocs/。 DBFILE 不在其中(我试过/tmp/test,都在777,但也没有运气)。
没有安全模式,新安装的 PHP 5.4,CentOS7。
请至少有人给我一个线索来帮助调试它。 也许例如:如何在不运行脚本本身的情况下检查我的文件是否可以从 apache/我的 php 脚本中读取?如何获取用于执行它的用户名?
【问题讨论】:
-
可以通过
cat DBPATH打开文件吗? -
file_exists不会说谎,有些地方不对劲。我猜你的DBPATH不正确。请注意,如果您将文件包含在某处,则当前目录是包含所有内容的根文档的目录。 -
您是否尝试过使用文件的绝对路径?
-
我正在打印绝对路径(以 /home/user/... 开头,如
pwd -P所述),我可以“ls”并看到它存在并且有 777权利。我可以从其他任何地方用 sqlite3 打开它。
标签: php apache file-exists