我有/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 /阿帕奇
您可以始终使用__DIR__以下命令将其包括在内:
__DIR__
include(dirname(__DIR__).'/config.php');
__DIR__是一个“ 魔法常数”,并返回当前文件的目录,且不带斜杠。它实际上是绝对路径,您只需要将文件名连接到即可__DIR__。在这种情况下,由于我们需要提升目录,因此我们使用PHP来提升dirname文件树,从这里我们可以访问config.php。
dirname
config.php
您也可以在此方法中设置根路径:
define('ROOT_PATH', dirname(__DIR__) . '/');
在test.php中,将您的根目录设置为该/root/级别。
/root/
include(ROOT_PATH.'config.php');
然后应该可以在需要的位置包含配置文件。