PHP文件存在于文档根目录之外无法工作


PHP file_exists not working outside document root

我有以下目录结构,文档根指向/var/www/html/public:

  • /应用程序
  • /应用程序/控制器
  • /public(文档根目录)

我正在尝试使用以下代码来检查/public目录中的文件中是否存在文件(在本地设置中工作,但不在实时服务器上)

<?php 
if (file_exists('../application/controllers/TestController.php'))
{
    /* do something */
}

Apache配置文件中是否有我需要添加的内容?我不知道从这里到哪里去。

file_exists()可以在任何地方工作,它与文档根目录无关,也没有任何apache配置设置可以更改这一点。

有两个可能的问题会导致您的问题:

  • 相对路径不是相对于你认为的路径。请使用绝对路径并编辑你的问题,以显示你用来检查绝对路径的代码(顺便说一句,你在评论中发布的代码有错误)
  • 运行PHP的UNIX进程没有访问该文件的权限。请检查运行PHP的用户,并检查文件的权限

所以我发现的真正问题是,在我的实时服务器上,当我将文件名重命名为小写时,文件名没有改变(APIController=>APIController)。尽管更改发生在本地,但在提交代码时,我的GIT提交没有正确重命名文件。

抱歉造成混乱!