2014-02-08 76 views
3

這是我發現很難調試,因爲PHP:沒有這樣的文件或目錄

  1. 我沒有體驗到它在我的本地開發平臺,僅在遠程服務器上(但不是所有的錯誤)和

  2. 我不確定從哪裏開始尋找或調查什麼PHP設置,儘管我懷疑問題是與遠程服務器環境有關。

另外一個複雜之處在於,在大的多模塊腳本我開發,問題永遠只能出現在執行tinyMCE的連接。一個典型的問題是:

警告:include_once(核心/啓動/ GLOBALS.php)function.include一次]:未能打開流:在沒有這樣的文件或目錄的/ home/WIKINDX/WWW/WWW /wikindx4/core/tiny_mce/plugins/wikindxLink/dialog.php線路33

除了一個可能的解決方案

所以要在服務器環境設置中找到,我可能需要改變的東西在TinyMCE的設置 - - 我曾多次在tinyMCE論壇上提出過幫助,但沒有收到任何回覆。

這一切都可以在我的本地平臺和其他刪除服務器上正常工作。不用說,GLOBALS.php是在覈心/啓動/但我不能硬編碼它可以在/home/wikindx/www/www/wikindx4/core/startup/找到,因爲這些腳本必須在任何服務器上工作。

編輯:我真的懷疑它與tinyMCE環境有關,因爲導致此問題的服務器安裝在調用include_once(core/startup/GLOBALS.php)時沒有任何問題,因爲該調用不在tinyMCE系統中。 tinyMCE中的某些內容會改變include_once()尋找的路徑。

+0

最有可能的,你正在開發的Windows,服務器是* nix中?在這種情況下,您應該記住Windows上的文件名不區分大小寫,但不在linux上:大小寫不重要。如果情況並非如此,請檢查你的['include_path'](http://www.php.net/manual/en/ini.core.php#ini.include-path)是什麼。我通常更喜歡根據他們所在的目錄來包含文件,所以這會使其'需要__DIR __。'/ ../../../startup/GLOBALS.php';' – Wrikken

+0

在OsX上進行開發。由於上述原因,我無法使用硬編碼路徑解決方案。 –

+0

我看不出爲什麼相對包含不起作用。或者你是說你在實際包中包含一個文件_not_部分,所以與相關全局文件路徑的相對路徑不起作用? (換句話說:dialog.php與GLOBALS.php不是同一個軟件包的一部分,但由於某種原因仍然知道它的存在並希望將其包含在_'somewhere'_?) – Wrikken

回答

2

我認爲你正在尋找$_SERVER['DOCUMENT_ROOT']

include_once $_SERVER['DOCUMENT_ROOT'].'core/startup/GLOBALS.php'; 

在當前的服務器將具有值/home/wikindx/www/www/wikindx4/

+0

嘗試在我的本地系統(以前的工作),我現在得到:include_once():失敗打開'/Applications/XAMPP/xamppfiles/htdocs/core/startup/GLOBALS.php'包含(include_path ='。:/應用程序/ XAMPP/xamppfiles/htdocs/wikindx4/trunk中的應用程序/ XAMPP/xamppfiles/lib/php')。 –

+0

同樣,由於該腳本必須適用於各種情況和安裝路徑,因此我無法對丟失的路徑信息進行硬編碼。 –

+0

請注意'DOCUMENT_ROOT'是_pretty_可靠的,但不適用於具有'VirtualDocumentRoot'指令的apache虛擬主機。 – Wrikken

相關問題