我有文件/root/update/test.php。还有一个文件,/root/connect.php;这个文件有一行
include "../config.php";
在 /root/update/test.php 中。有代码
set_include_path(".:/root");
include "connect.php";
当我运行 /root/update/test.php 时,它找到了 connect.php,但找不到 config.php,给了我
PHP Warning: include(../config.php): failed to open stream: No such file or directory in /root/connect.php on line 2
PHP Warning: include(): Failed opening '../config.php' for inclusion (include_path='.:/root')
这让我感到困惑,因为这些警告让我看起来一切都正确 - 包含路径是 /root,它正在寻找存在的文件 ../config.php (/config.php)。有人可以帮我解决这个问题吗?请注意,由于部署到我无权访问的生产服务器,因此我不能选择使用绝对路径。
Ubuntu/阿帕奇
原文由 George B 发布,翻译遵循 CC BY-SA 4.0 许可协议
您始终可以使用
__DIR__
包含它:__DIR__
是一个“ 魔法常数”,返回当前文件的目录,不带斜杠。它实际上是一个绝对路径,您只需要将文件名连接到__DIR__
。在这种情况下,由于我们需要提升目录,我们使用 PHP 的dirname
来提升文件树,从这里我们可以访问config.php
。您也可以在此方法中设置根路径:
在 test.php 中会将您的根设置为
/root/
级别。然后应该努力从您想要的位置包含配置文件。