2011-09-20 100 views
2

我有一個codeigniter項目,我已經在Mac OS X Lion上成功運行。當試圖在ubuntu上運行相同的項目時,請求localhost/project會產生一個沒有源代碼的空白頁面。CodeIgniter項目加載空白網頁

我已經添加AllowOverride All到apache.conf無濟於事。我最近的策略是將die()語句放在索引中的戰略位置幷包含文件,試圖找到代碼失敗的行。通過這種方法,我在system/core/CodeIgniter.php中發現了一行die語句,在行「$ CI = new $ class();」之前執行,而後一個(大概所有後續的代碼)不會。

如何使用此信息來幫助我在本地運行此項目?

謝謝!

+0

啓用PHP錯誤報告和日誌記錄。您將收到一條錯誤消息,提供更多信息。默認情況下,Codeigniter會禁用它,所以請檢查您的配置並將錯誤日誌記錄提升到最高級別(Codeigniter會降低您的PHP配置,因爲它拒絕嚴格的錯誤有用)。 – hakre

+0

您是否檢查過每臺機器上的PHP版本? –

回答

6

我有同樣的空白頁時,我開始與CI工作。

對我來說,這只是我忘了在我的機器上安裝mySQL。您不會收到錯誤,因爲在系統文件中,數據庫連接前面帶有「@」,因此不會顯示錯誤。

如果這不是問題,請檢查您的PHP版本,或嘗試在index.php文件中添加phpinfo()。

0

在您的某些文件中結束PHP標記後,您是否有機會放置任何空白區域或新行?如果是這樣 - 在關閉PHP標記的同時刪除它們。

(附註:在代碼點火器,你應該在其中只包含PHP代碼的文件從來沒有關閉PHP標籤 - 控制器,型號,...)

0

我已經結束了,只有在反向類似的問題 - 工作在Ubuntu,但隨後得到了在OS X上沒有我有MySQL的安裝和其他網站運行同一臺服務器上就好了。對我來說,有兩個匪徒,可能這也會對你有幫助:

  1. 你的日誌目錄是不可寫的。通常該目錄是應用程序/日誌,除非你有一些自定義的配置設置。 (http://codeigniter.com/user_guide/general/errors.html)這不僅會影響所有這些log_message(...)函數調用,而且在Loader類嘗試加載Log庫時也會失敗。如果是這種情況,則更改配置中的日誌記錄級別(通常建議)不會產生任何有用的結果,因爲CI 實際上不能寫入任何錯誤

  2. 您可能會缺少一些安裝在其工作的服務器上的其他php庫。對我來說,這是一個缺失的memcached php擴展,所以Loader類在嘗試初始化Session類時也失敗了(儘管它是一個自定義的擴展版本)。如果您不確定需要什麼擴展(比如加入基本CI安裝之上的很多額外功能的現有項目),則可能會更難以調試。因此,下一步就是去嘗試將這些die(...)語句通過Loader類來查看實際加載失敗的內容。