2010-02-09 88 views
1

我一直在用CodeIgniter在本地開發一個網站,並嘗試將它上傳到我的網絡服務器,並得到以下錯誤(我從未見過,直到上傳)。從本地主機到網站上傳CodeIgniter的問題

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

我讀過笨不與PHP 5.3.x發揮很好,除了他們的最新版本(這也是我下載並嘗試上載,雖然簡單地替換系統目錄中的我編輯的文件),但是我仍然得到相同的錯誤。

使用Google搜索該消息沒有多大幫助...有人看到類似的東西?

回答

1

您使用的CI版本是什麼?我使用最新的CI版本1.7.2和文件system/codeigniter/Common.php我找不到任何致電CI_Hooks類。

開發時是否有自定義庫或觸摸CI系統文件?您是否已驗證所有文件已成功上傳到服務器?

+0

這是有趣的事情,我也沒有。我會嘗試重新上傳整個事情...但我沒有實現任何特別的東西,除了將'welcome'文件重命名爲'main' – espais 2010-02-09 13:46:52

+0

也許你上傳了錯誤的文件。如果你開始使用SCM這樣的git,svn,mercurial來管理你的源代碼+將它上傳到服務器,那麼你最好確保服務器中的代碼與開發機器中的代碼保持一致。我更喜歡git,並且在任何時候都可以使用它。 – 2010-02-09 15:06:52

+0

原來這是一個錯誤的FTP上傳...謝謝! – espais 2010-02-09 22:05:20

1

幾個月前我有類似的問題,不幸的是,從來沒有真正確定發生了什麼。然而,我採取的步驟如下:

而不是上傳文件和冒着傳輸損壞的風險,只需將codeigniter zip文件正確設置到您的服務器。

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

解壓該文件,然後將其移入您的網站根目錄。

現在加載您的域,並確保基本CI安裝功能沒有任何修改。如果這樣做,然後移動你的網站特定文件一次,並不斷重新加載,所以你知道什麼時候休息(如果有的話)。

在我的情況下,沒有任何破壞,所以我只能假設SFTP是borking我的文件或發生了一些其他奇怪的問題。

0

該行位於名爲load_class的函數中,並且搜索'CI_Hooks'表明它在/system/libraries/Hooks.php中定義。搜索「鉤子」(帶引號)顯示一行

$EXT =& load_class('Hooks'); 
系統

/笨/ CodeIgniter.php

所以,你可能只是想檢查系統/庫有一個Hooks.php,和它實際上有一個資本H.如果不是,那麼這就是你的問題。

在Windows下,由於各種歷史原因,文件名的大小寫最終並不重要,所以你的應用程序在windows下可以正常工作,但是當你將它移動到linux/unix時,它會開始給出問題。

我犯了這個錯誤一次,當我給模型文件名稱大寫第一個字母。這在Windows中運行良好,但是當我將它部署在Linux中時,它立即報告錯誤。幸運的是,這很容易追蹤。

1

'掛鉤'類的加載發生在CodeIgniter.php上,像82。我會認爲這是某種.htaccess問題,或者系統文件夾路徑錯誤。

相關問題