2011-09-06 76 views
0

我一直在使用CodeIgniter(1.7.2+)多年,現在它在15個以上的現場製作環境(LOVE IT)中運行。最近,我和我的團隊制定了一個非常複雜的系統,這需要一些比標準MVC更復雜的系統,所以我們開始研究CI(2.0.3)的HMVC模塊化擴展。到目前爲止,我們已經在本地系統的XAMPP和MAMP環境中解決了問題,而且看起來正是我們所需要的。當我們嘗試在CentOS中加載時出現問題。CodeIgniter模塊化擴展在CentOS上損壞

採取與我們本地安裝適用的完全相同的SVN回購協議,並將其提供給CentOS服務器(我嘗試了兩個單獨的CentOS盒),它只是拋出一個白色屏幕 - 拖尾日誌我得到500錯誤。我確定它是HMVC模塊的內部,因爲這個相同的CentOS安裝正在運行基本的CI安裝而沒有問題。

要解決我刪除加載數據庫,然後自動加載項我得到以下輸出到屏幕上:

A PHP Error was encountered 

Severity: Notice 

Message: Undefined property: CI::$db 

Filename: MX/Controller.php 

Line Number: 58 

我只得到這對CentOS的盒子,這個文件的第58行不非常明顯,HTTPD錯誤日誌也沒有顯示任何有用的信息。有沒有人有過這個問題,其他人可以重現嗎?我從來沒有見過任何服務器依賴關係,除了基礎CI要求之外,所以我不知所措。我們迫切需要在這個項目上使用HMVC,但我無法用我甚至無法加載的東西進入市場。

爲了進一步限制我們注入不好東西的可能性,我做了一個全新的CI安裝,重新加載了HMVC模塊,並沒有碰到其他任何東西......失敗!完全相同的結果,運行在CentOS 5.5上以相同錯誤打破的本地語言上。

任何幫助,不勝感激...

UPDATE

在意識到錯誤只是一個通知(就像我討厭這樣做)我打開錯誤報告關閉只是爲了看看發生了。它立即回到剛剛拋出500錯誤。我能夠在index.php中放入一個die()語句並將輸出顯示到屏幕上,因此更麻煩的是我在CentOS中完全忽略了HMVC模塊,而不僅僅是一個通知。我將特里結構死()通過系統,發現是這樣做的實際行....喜悅..

4級CI日誌文件由克雷格Rodway

DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Hooks Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Utf8 Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> UTF-8 Support Enabled 
DEBUG - 2011-09-06 20:49:37 --> URI Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Router Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> No URI present. Default controller set. 
DEBUG - 2011-09-06 20:49:37 --> Output Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Security Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Input Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Global POST and COOKIE data sanitized 
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Language Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Config Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Controller Class Initialized 
DEBUG - 2011-09-06 20:49:37 --> Welcome MX_Controller Initialized 
DEBUG - 2011-09-06 20:49:37 --> Loader Class Initialized 
ERROR - 2011-09-06 20:49:37 --> Severity: Notice --> Undefined property: CI::$db /home/www/qualcentral.com/application/third_party/MX/Controller.php 58 
的要求

更新#2

OK,出現兩件事情已經引起了我的問題 - 我不是完全固定的,但我現在可以在系統正常工作。首先,在Windows機器上解壓縮HMVC,提交給SVN,然後完全下載到CentOS。當我通過WGET將所有內容直接下載到CentOS並將其設置在服務器上時,它工作得很好!很奇怪,但至少這是一個解決方法 - 不需要對PHP或Apache進行調整,我想在最初的過程中會有一行結束或者有什麼東西被頂起來了。

其次是當我使用HMVC模塊時,我不能使用核心系統自動加載器加載數據庫。我可以手動將它加載到三元組中,我可以使用三元組的config/autoload.php文件自動加載,但是如果我嘗試了,核心系統會拋出500。這是一個怪癖,它加劇了,但我可以解決它。

再次感謝大家的建議,這只是一個古怪的遊戲。

巴蒂爾

+0

該錯誤看起來像是試圖加載數據庫,它不能 - 當你阻止它加載。所以這可能不是問題發生的地方。 嘗試將application/config.php中的log_level更改爲4,然後檢查在application/logs文件夾中創建的文件,以查看是否有任何指向錯誤的指針。 –

+0

良好的通話,我只是做了這一切,並與相關的日誌條目更新我的文章 - 仍然沒有幫助,但也許它會指出某人在正確的方向。 – Shane

+0

如果您再次自動載入數據庫庫,它是否會得到相同的結果,因爲它最初是? –

回答

1

Undefined property: CI::$db

此錯誤意味着您的數據庫尚未加載。這看起來像你的autoload.php文件沒有加載它,或者什麼。這可能是該數據庫被加載到一個MY_Controller中,現在它已被替換。另外,如果你使用的是最新的HMVC,你可能會很困難,因爲它正在被開發爲使用2.0.x分支,而不是1.7.x。這並不是說它工作,而是說每發佈一個新版本都不太可能。

+0

感謝菲爾,其實我似乎已經迷迷糊糊這是一個非常奇怪的錯誤,我認爲是由我的SVN造成的,另一個是自動載入問題。我會在我的主要職位上做筆記,但我認爲我可以在這一點上前進。我們在HMVC模塊中使用2.0.0,所以至少那麼好! – Shane

+0

升級到2.0.3和最新的HMVC,然後確保你的模塊沒有autoload.php。可能是因爲一些瘋狂的原因,使用該自動加載而不是加載。另外,停止使用SVN。這不是2001年:) –

+1

哈!剛剛看到您對SVN的評論。你讓我在那裏......只是因爲同伴的壓力,我會在我的下一個項目上嘗試GIT。 =) – Shane