2013-05-28 72 views
1

我有以下PHP腳本放置在我的虛擬主機服務器的根目錄中,它工作正常。在Linux上的LiteSpeed Web服務器上正確的文件路徑

<?php 
include(dirname(__FILE__).'/config/config.inc.php'); 
require_once(dirname(__FILE__).'/init.php'); 

當我移動的腳本到一個新的文件夾下我的Web根,即public_html/myfolder,腳本提供了以下錯誤:

Warning: include(/home/name/public_html/folder/config/config.inc.php) [function.include]: failed to open stream: No such file or directory in /home/name/public_html/folder/test.php on line 2 

Warning: include() [function.include]: Failed opening '/home/name/public_html/folder/config/config.inc.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/name/public_html/folder/test.php on line 2 

Warning: require_once(/home/name/public_html/folder/init.php) [function.require-once]: failed to open stream: No such file or directory in /home/name/public_html/folder/test.php on line 3 

Fatal error: require_once() [function.require]: Failed opening required '/home/name/public_html/folder/init.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/name/public_html/folder/test.php on line 3 

我應該改變的路徑如下:

<?php 
include(dirname(__FILE__).'/../config/config.inc.php'); 
require_once(dirname(__FILE__).'/../init.php'); 

我正確嗎?

+0

我敢打賭,自己試試它會容易一些。無論如何,這些文件需要包含在哪裏?當你包括一些東西時,你只需要檢查包含的文件是否真的在那裏:) –

+0

它可以工作,但我想確保我是正確的。這些文件位於:'public_html/config/config.inc.php'和 'public_html/init.php' – triwo

+0

'echo dirname(__ FILE __);'輸出給你什麼? –

回答

0

呃,你說你只是將你的腳本(包含include行的腳本)移動到「public_html /文件夾」。這樣,dirname(__FILE__)包含完整路徑,包括「文件夾」目錄。所以,現在,您需要在目錄樹中進行一步操作,以便能夠到達「config」目錄;解釋如下:

你之前有:

/home/name/public_html/config/config.inc.php 
/home/name/public_html/init.php 

所以你的文件

/home/name/public_html/test.php 

管理從dirname(__FILE)訪問使用路徑的文件。但現在,test.php的已經movedto目錄「文件夾」:

/home/name/public_html/folder/test.php 

因此,dirname(__FILE__)應該返回路徑全面的「文件夾」目錄。但你需要包含的文件是在「舊」目錄中,所以你需要將../添加到包含路徑中,以便能夠訪問這些文件:)

+0

'echo dirname(__ FILE __);'從根目錄/ public_html:'/ home/name/public_html'和public_html/folder:'/ home/name/public_html/folder'的輸出。因此,我應該使用上面提到的路徑或這個:'include(dirname(__ FILE __)。'../config/config.inc.php');''require_once(dirname(__ FILE __)。'/ init.php 「);'? – triwo

+0

當然,我在我的回答中給出瞭解釋。如果不清楚,請告知我:) –

+0

要在**斜線或**斜線內(即哪一個是正確的),Nr 1)或Nr 2)之前添加「../ **」? 1)'require_once(dirname(__ FILE __)。'/ init.php');'2)'require_once(dirname(__ FILE __)。'/ ../init.php');' – triwo

相關問題