我一直在使用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。這是一個怪癖,它加劇了,但我可以解決它。
再次感謝大家的建議,這只是一個古怪的遊戲。
巴蒂爾
該錯誤看起來像是試圖加載數據庫,它不能 - 當你阻止它加載。所以這可能不是問題發生的地方。 嘗試將application/config.php中的log_level更改爲4,然後檢查在application/logs文件夾中創建的文件,以查看是否有任何指向錯誤的指針。 –
良好的通話,我只是做了這一切,並與相關的日誌條目更新我的文章 - 仍然沒有幫助,但也許它會指出某人在正確的方向。 – Shane
如果您再次自動載入數據庫庫,它是否會得到相同的結果,因爲它最初是? –