【问题标题】:Failed opening './admin/main.inc' for inclusion (include_path='.:/usr/local/php5_3/lib/php') [closed]未能打开“./admin/main.inc”以包含(include_path='.:/usr/local/php5_3/lib/php')[关闭]
【发布时间】:2013-08-31 22:57:58
【问题描述】:

出现以下错误

未能打开“./admin/main.inc”以包含 (include_path='.:/usr/local/php5_3/lib/php')

包含的文件位于/admin 目录中。同一个站点在我尝试过的其他 2 个主机上运行良好,但在那个(老爹)主机上它不起作用并引发错误。 如果我将路径更改为../admin/main.inc,它可以工作,但我无法使用脚本中的包含更改所有文件,所以我在这里寻求帮助。如果你能告诉我解决这个问题,或者至少我应该说什么来支持他们以便他们解决它?

我在互联网上找到的只是“您主机上的 PHP 未配置为包含当前目录”

更新:

好的,现在我让它工作了,但是......情况就是这样。文件夹名为 /admin 有 index.php 和 forgot.php(忘记密码)。两个文件都包含 /admin/main.inc 这里是 index.php 包含

`include_once "../admin/main.inc";`

这里是forgot.php包含

`include_once "./admin/main.inc";`

您看到一个文件使用 ../ 和另一个 ./ 并且它们都包含同一个文件。这里 main.inc

`session_start();
require_once '../class/class_db.php';
require_once '../class/class_wwf.php';
require_once '../class/class_other.php';
require_once '../admin/class/class_auth.php';`

所以这个想法是,如果它保持这种方式,index.php 工作正常但 forgot.php 返回失败包含,没有这样的文件...

如果我将 main.inc 更改为使用 ./index.php 停止工作并且 forgot.php 工作...

【问题讨论】:

  • 我认为你找到了正确的东西。考虑联系您的托管服务提供商
  • 为什么你不能把它改成'../admin/main.inc'
  • 我投票决定将此问题作为离题结束,因为这应该转到 GoDaddy 客户支持。

标签: php include include-path


【解决方案1】:

如果你能告诉我解决这个问题,或者至少我应该说什么来支持他们以便他们解决它?我在互联网上找到的只是“您主机上的 PHP 未配置为包含当前目录”

好的,首先解释一下您面临的问题:您的包含以./../ 开头。这些包含的路径是相对于当前工作目录的。

通常是被请求的 php 文件所在的目录,但是,从技术上讲,这是独立的。

所以从技术上讲,您在这里拥有工作目录的隐藏依赖项。如果您不想更改包含路径,请更改工作目录。

但是,通常更容易对多个文件进行搜索和替换并将./__DIR__ . '/开头替换,即magic __DIR__ constant代表当前文件的目录,它独立于工作目录设置。


我在互联网上找到的只是“您主机上的 PHP 未配置为包含当前目录”

这通常意味着不同的东西,实际上你的主机甚至不是这种情况。在您的主机上,它配置为包含当前目录:

...include_path='.:/usr/local/php5_3/lib/php'

包含路径中的第一个点当前工作目录。

【讨论】:

  • 是的,chdir('..');在包含之前使这个 ./ 事情起作用:)
  • 更新了第一篇文章。请检查一下。 @RauliRajande
【解决方案2】:

如果它与 .. 一起使用,那么您可以使用父目录动态扩展默认包含路径:

set_include_path(get_include_path() . PATH_SEPARATOR . '../');

(必须在include语句之前,最好在脚本开头的某个地方,并且php必须有权读取此目录。)

编辑:似乎 ./ 在文件名的开头有效地阻止了这个,所以你可以试试:

set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__DIR__));

...或从包含文件名中删除所有 ./,您的应用程序应该可以在没有这些的情况下工作。

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2016-01-21
    • 2013-04-25
    相关资源
    最近更新 更多