CodeIgniter模块化扩展在CentOS上损坏

时间:2011-09-06 21:13:21

标签: php codeigniter centos hmvc

我多年来一直在使用CodeIgniter(1.7.2+)并让它在15个以上的实时制作环境中运行(爱它)。最近我和我的团队编写了一个非常复杂的系统,需要比标准MVC更复杂的东西,所以我们开始研究用于CI的HMVC模块化扩展(2.0.3)。到目前为止,我们已经在我们的本地系统上的XAMPP和MAMP环境中解决了它,完全没有任何问题,它看起来就像我们需要的那样。当我们尝试在CentOS中加载它时会出现问题。

使用与我们本地安装相同的完全相同的SVN repo并将其拉出到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上以相同错误打破的本地运行。

非常感谢任何帮助...

更新

意识到错误只是一个通知(就像我讨厌做的那样)我只是关闭了错误报告,看看发生了什么。它会立即回到抛出500错误。我能够在index.php中放置一个die()语句并将输出输出到屏幕 - 所以更令人不安的是我在CentOS中完全出现了HMVC模块,而不仅仅是一个通知。我将通过系统trie to die()并找到正在执行它的实际行.... Joy ..

Craig A Rodway要求的4级CI日志文件

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

好吧,两件事似乎引起了我的问题 - 我还没有完全修复,但我现在可以在系统中工作了。首先,在Windows机器上解压缩HMVC,提交到SVN,然后完全降低到CentOS BORKED它。当我通过WGET将所有内容直接下载到CentOS并将其设置在服务器上时它运行得很好!非常奇怪,但至少它是一种解决方法 - 不需要调整PHP或Apache,我想到一个行结束或者在初始过程中遇到了什么。

其次,当我使用HMVC模块时,我不能使用核心系统自动加载器来加载数据库。我可以在三合一中手动加载它,我可以使用三合一的config / autoload.php文件自动加载,但如果我尝试,核心系统会抛出500。这是一个怪癖,它加重了,但我可以解决它。

再次感谢大家的建议,这只是一个古怪的事。

沙恩

1 个答案:

答案 0 :(得分:1)

Undefined property: CI::$db

此错误表示尚未加载您的数据库。这看起来像你的autoload.php文件没有加载它,或者其他东西。可能是数据库正在MY_Controller中加载,现在已被替换。

此外,如果您使用最新的HMVC,您可能会因为开发使用2.0.x分支而非1.7.x而挣扎。这并不是说WONT的工作原理,而是说每发布一个新版本的可能性都不大。