结构是像这样:PHP CLI包括()未找到文件我的文件
config.php
script
|--myscript.php
myscript.php
<?php
require '../config.php';
?>
当执行php /path/to/myscript.php
我得到Warning: require(../config.php): failed to open stream: No such file or directory.
请告诉我原因?
结构是像这样:PHP CLI包括()未找到文件我的文件
config.php
script
|--myscript.php
myscript.php
<?php
require '../config.php';
?>
当执行php /path/to/myscript.php
我得到Warning: require(../config.php): failed to open stream: No such file or directory.
请告诉我原因?
那是因为你当前的工作目录是一个你打电话给你的命令,而不是一个你的脚本位于。
使用
require __DIR__ . '/../config.php';
代替。 __DIR__
是一个常量,指向当前文件所在的目录。
很可能你的工作目录错误,所以你的相对路径并不指向你期望的位置。看看PHP如何看到它:
echo getcwd();
作为脚本的第一行。
如果你不想(或不能)在你的代码,改变require
线只是cd
到你的脚本需要运行脚本之前中执行的目录:
cd /path/to
php /path/to/myscript.php
我这样做,一种方法是这样的:
php -d include_path=/path/to/config.php script.php
-d用于在运行时设置INI指令,所以你不要有任何更改代码/ CONFIGS /目录。
您需要使用绝对路径或改变工作目录:
chdir(dirname(__FILE__));
以绝对路径试试吧,而不是相对的。 – andrewsi
是的,我现在很失望。 – nick