代码之家  ›  专栏  ›  技术社区  ›  erik

将CodeIgniter从本地主机上载到网站时出现问题

  •  1
  • erik  · 技术社区  · 16 年前

    我一直在用codeigner在本地开发一个网站,并尝试将其上传到我的Web服务器,并得到以下错误(直到上传后我才看到)。

    Fatal error: Class 'CI_Hooks' not found in <snip>/system/codeigniter/Common.php on line 136
    

    我已经读到CodeIgniter不能很好地使用php 5.3.x,除了它们的最新版本(我也下载并尝试上传,虽然只是替换了系统目录中编辑过的文件),但是我仍然会得到同样的错误。

    在谷歌上搜索这条信息没有多大帮助…有人看到类似的东西吗?

    4 回复  |  直到 13 年前
        1
  •  1
  •   Donny Kurnia    16 年前

    您使用的是哪个版本的CI?我使用最新的CI版本1.7.2和文件中的 system/codeigniter/Common.php 我找不到任何电话 CI_Hooks 班级。

    您是否有自定义库,或在开发时触摸CI系统文件?是否已验证所有文件已成功上载到服务器?

        2
  •  1
  •   Shane    16 年前

    几个月前我也遇到过类似的问题,不幸的是,我从来没有真正确定到底发生了什么。然而,我采取的步骤如下:

    不要上传文件并冒着传输中损坏的风险,只需将codeigner zip文件设置到服务器上即可。

    wget http://codeigniter.com/download.php
    

    解压该文件,然后将其移动到您的网站根目录中。

    现在加载域并确保基本CI安装在不做任何修改的情况下正常工作。如果可以,那么一次移动一点你的网站特定的文件,并经常重新加载,这样你就知道什么是中断(如果有的话)。

    在我的情况下,没有什么损坏,所以我只能假设SFTP借用了我的文件,或者发生了其他一些奇怪的问题。

        3
  •  1
  •   Zack    16 年前

    “hooks”类的加载发生在 CodeIgniter.php 关于喜欢 82 .我认为这可能是某种.htaccess问题,或者系统文件夹的路径错误。

        4
  •  0
  •   Kinjal Dixit    16 年前

    行位于一个名为load_class的函数中,搜索“ci_hooks”表明它是在/system/libraries/hooks.php中定义的。搜索“hooks”(带引号)会显示一行

    $EXT =& load_class('Hooks');
    

    在system/codeigner/codeigner.php中

    所以,您可能只想检查系统/库是否有hooks.php,并且实际上它有一个大写的h。如果没有,那么这就是您的问题。

    在Windows下,由于各种历史原因,文件名的大小写最终并不重要,因此您的应用程序在Windows下可以正常工作,但是当您将其移到Linux/Unix时,它就会开始出现问题。

    当我给一个模型文件名一个大写的第一个字母时,我犯了一个错误。这在Windows中工作得很好,但是当我在Linux中部署它时,它立即报告了一个错误。幸运的是,这更容易找到。

    推荐文章