【问题标题】:Codeigniter App on EC2 - Helpers not loadingEC2 上的 Codeigniter 应用程序 - 助手未加载
【发布时间】:2011-05-25 14:20:45
【问题描述】:

我最近刚刚开始将 CI 应用程序迁移到 Amazon 的 EC2 服务。为了测试,我设置了一个 ubuntu 的微型实例和一个 LAMP 堆栈。 PHP、MySQL、HTTPD 都运行良好。我现在遇到的一个问题是,当我运行我的应用程序时,我收到一条错误消息,说我的助手不会加载。特别是未加载的助手是助手目录中子目录中的助手,即:/var/www/system/application/helpers/subdirectory/foo_helper.php

助手正在自动加载,在我的 autoload.php 配置文件中,它们的写法如下:

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

有没有人遇到过这个问题,或者有任何关于我可以去哪里查看我的配置来解决这个问题的指示?

感谢您的帮助!

【问题讨论】:

    标签: codeigniter amazon-ec2 lamp


    【解决方案1】:

    我会尝试调试Loader 类的helper 函数,尤其是这些行:

    system/libraries/Loader.php

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

    这是包含应用程序助手时将被命中的代码。检查 CodeIgniter 试图包含的路径。仔细检查路径是否存在 - 每个人都会时不时地打错字;-)

    【讨论】:

    • 只是添加到斯蒂芬的回答中,检查 Loader 是否正在为您的助手寻找正确路径的一个好方法是在IF 循环,看看它输出什么。
    • 感谢您的帮助。路径似乎都是正确的,在我将其移至 EC2 之前,该应用程序正在我的 Windows 开发服务器上运行。所以拼写错误不是问题,否则它们会出现在开发中。我在 EC2 中注意到的另一件非常奇怪的事情是每当我遇到 php 执行错误时。我将进入并修复错误,然后当我刷新时我仍然得到同样的错误。它就像 EC2 有缓存的代码或其他东西。像这样调试真的很令人沮丧。
    【解决方案2】:

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

    但这仍然不能解决页面似乎被缓存并且我无法刷新并查看我的更改的问题。有没有办法强制页面在每次刷新时从服务器获取新副本?

    【讨论】:

      猜你喜欢
      • 2012-12-30
      • 1970-01-01
      • 2015-05-20
      • 2023-03-25
      • 2011-01-12
      • 2023-02-15
      • 1970-01-01
      • 2018-01-14
      • 2013-09-19
      相关资源
      最近更新 更多