2011-09-06 64 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