2010-12-14 28 views
0

我最近刚刚开始通过CI应用程序迁移到Amazon的EC2服务。为了测试,我设置了一个ubuntu和一个LAMP栈的微型实例。 PHP,MySQL,HTTPD都很漂亮。我现在遇到的一个问题是,当我运行我的应用程序时,我收到一个错误,说我的助手不会加载。特别是那些没有加载的帮助程序是帮助程序目录中的子目录中的帮助程序,例如:/var/www/system/application/helpers/subdirectory/foo_helper.phpEC2上的Codeigniter App - 帮手不加载

帮助程序正在自动加载并在我的自动加载中。 PHP配置文件都写,如:

$autoload['helper'] = array('subdirectory/foo', 'foo2',...); 

有没有人遇到这个问题,或者对在那里我可以去看看我的配置任何指针来解决这个?

感谢您的帮助!

回答

0

我会尝试调试Loader类的helper功能,尤其是这些线路:

系统/库/ Loader.php

elseif (file_exists(APPPATH.'helpers/'.$helper.EXT)) 
{ 
    include_once(APPPATH.'helpers/'.$helper.EXT); 
} 

这是将被打码当包括申请助手时。检查CodeIgniter试图包含的路径。仔细检查路径是否存在 - 每个人都会一次又一次地出现拼写错误;-)

+0

只需添加到Stephen的回答中,检查Loader是否正在为您的助手寻找正确路径的好方法是在IF循环之前添加回显APPPATH.'helpers /'.$ helper.EXT并查看内容它输出。 – Shivaas 2010-12-15 02:43:32

+0

感谢您的帮助。这些路径似乎都是正确的,在将应用程序移至EC2之前,该应用程序正在处理我的Windows开发服务器。所以拼写错误不是问题,或者他们会在发展中显示出来。 我注意到EC2的另一个奇怪的事情是每当我得到一个PHP执行错误。我会进去修复这个错误,然后当我刷新时我仍然会得到同样的错误。它像EC2那样缓存了代码。这样调试真令人沮丧。 – whobutsb 2010-12-15 13:49:37

0

我认为问题在于,当我从Windows移到Linux时,我忘记了考虑到linux区分大小写。所以现在我需要通过并重命名我的文件和文件夹。

但是,这仍然不能解决这个问题,似乎该网页正在缓存,我无法刷新,看到我的变化。有什么办法可以强制页面在每次刷新时从服务器获取全新副本?