2012-09-11 77 views
17

結構是像這樣: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.

請告訴我原因?

+0

以絕對路徑試試吧,而不是相對的。 – andrewsi

+0

是的,我現在很失望。 – nick

回答

24

那是因爲你當前的工作目錄是一個你打電話給你的命令,而不是一個你的腳本位於。

使用

require __DIR__ . '/../config.php'; 

代替。 __DIR__是一個常量,指向當前文件所在的目錄。

1

很可能你的工作目錄錯誤,所以你的相對路徑並不指向你期望的位置。看看PHP如何看到它:

echo getcwd(); 

作爲腳本的第一行。

1

如果你不想(或不能)在你的代碼,改變require線只是cd到你的腳本需要運行腳本之前中執行的目錄:

cd /path/to 
php /path/to/myscript.php 
6

我這樣做,一種方法是這樣的:

php -d include_path=/path/to/config.php script.php 

-d用於在運行時設置INI指令,所以你不要有任何更改代碼/ CONFIGS /目錄。

0

您需要使用絕對路徑或改變工作目錄:

chdir(dirname(__FILE__));