2014-04-11 69 views
2

我有一種情況,即使我具有相同的文件和文件夾結構,PHP線路在本地主機上正常工作,但不在實時服務器上工作。require_once無法在現場服務器上工作

require_once '/../Renderer.php'; 

我活的服務器上得到的錯誤是:

Warning: require_once(/../Renderer.php): failed to open stream: No such file or directory in /home2/attafsir/public_html/balaghatoalquran/production/wp-content/themes/twentyten/Text/Diff/Renderer/unified.php on line 19

Fatal error: require_once(): Failed opening required '/../Renderer.php' (include_path='.:/usr/php/54/usr/lib64:/usr/php/54/usr/share/pear') in /home2/attafsir/public_html/balaghatoalquran/production/wp-content/themes/twentyten/Text/Diff/Renderer/unified.php on line 19

我花了很多時間試圖找出這可能是後面這種行爲的原因,但無濟於事,你幫助表示讚賞。

PS:我已經驗證了我的主機,如果PEAR已安裝並在php.ini中配置,並且他們向我確認。 (因爲代碼使用PEAR包)

解決方案: 的解決方案是公認的答案,但我要注意的是,雖然現場服務器上的問題得到解決,但打破了localhost上functionning。這是一個臨時解決方案,因爲最好的辦法是在本地和現場服務器上使用相同的代碼。當我找到它時,我會回來發佈完整的解決方案。你的建議總是受歡迎的。

+0

這意味着該文件不存在。檢查文件'renderer.php'或'Renderer.php'的實際名稱是什麼,因爲unix機器區分大小寫 – Guns

+0

@Guns,文件名是'Renderer.php'。謝謝你的評論,不幸的是這並不能解決問題。 –

+0

您沒有使用正確的文件位置。 –

回答

3

/是文件系統的根目錄,然後嘗試一個層次去了..。這不存在,所以你得到一個錯誤。

你確定你不想要相對路徑嗎?

如果你希望它是相對於Web服務器的根目錄(這不是文件系統的根目錄,除非有一些非常錯誤的),使用類似:

$_SERVER['DOCUMENT_ROOT'] . '/../Renderer.php' 
+1

我從你的答案中找到解決方案(不幸的是破壞了localhost上的functionnnig)。 –

+2

@whitelettersandblankspaces不應該,如果你的本地網絡服務器設置正確,'$ _SERVER ['DOCUMENT_ROOT']'應該給你你的網站的根文件夾。 – jeroen

+0

你說什麼是合乎邏輯的,但我還是不明白爲什麼我應該把不同的代碼行放在同一個文件中,而從本地主機傳遞到live.this行爲從來沒有出現在整個網站上,除了'require_once'.thank你爲你時間 –

0

儘量只:

require_once '../Renderer.php'; 
+0

謝謝你的時間,不幸的是,這不能解決問題 –

+0

嗯,你可以驗證'Renderer.php'在這裏:'/ home2/attafsir/public_html/balaghatoalquran/production/wp-content/themes/twentyten/Text/Diff/Renderer.php'? – DNACode

+0

根據我的文件管理器在託管帳戶,文件的位置是確切的,並且文件存在那裏 –

0

你不能使用'/../Renderer.php'。它是'../'表示一個文件夾或'/'表示根目錄。

+0

不幸的是,這是行不通的。只有require_once'/../Renderer.php';該工作,但只在本地主機上 –

+2

您可能有基於Windows的本地主機。另外服務器配置也不同。檢查文件的路徑。 –

+0

是的,我同意你的看法,這在邏輯上是原因(在本地主機上的windows和在服務器上的Linux) –

0

刪除第一個斜槓,並嘗試之一:

require_once '../Renderer.php'; 

或者

require_once '../../Renderer.php'; 

哪一個工作取決於你的文件結構。

+0

不幸的是,這是行不通的。只有'require_once'/../ Renderer.php';'可以工作,但只能在localhost –

+0

非常感謝你 –

相關問題