今天在配置乙個codeigniter 2.1.0時,遇到白屏,系統報500錯誤,但是apache的錯誤日誌中看不到任何錯誤資訊輸出。
經過簡單的定位後,發現是由於在autoload中配置了自動載入database造成的,但是之前的版本用著都沒問題呀,這個版本出這個問題,甚是奇怪。
os:cent os 5.4
apache:2.2.4
php:5.2.17
mysql:5.0.77
通過不斷的die測試,定位到system/database/drivers/mysql/mysql_driver.php檔案中,發現mysql的呼叫函式都用了@將錯誤資訊隱藏了,難怪白屏,什麼資訊都沒有。最後測試到,問題出在下面這個函式上:
1: function db_set_charset($charset, $collation)
2:
8:
9:if( !function_exists('mysql_set_charset') )
12:
13:if ($this->use_set_names === true)
14:
17:else
18:
21: }
在我這個版本的php中,不存在mysql_set_charset這個函式,但是判斷的結果是需要這個函式,所以執行到這裡的時候就發生錯誤了。
但是按照php的版本來說,這個函式應該是存在的,可能是編譯的時候一些引數選擇的問題造成了這個錯誤。
CodeIgniter 2 1 0 的白屏錯誤除錯
今天在配置乙個codeigniter 2.1.0時,遇到白屏,系統報500錯誤,但是apache的錯誤日誌中看不到任何錯誤資訊輸出。經過簡單的定位後,發現是由於在autoload中配置了自動載入database造成的,但是之前的版本用著都沒問題呀,這個版本出這個問題,甚是奇怪。os cent os ...
CodeIgniter中Router類的兩個方法
file location system core router.php 第乙個 fetch the current method access public return string function fetch method return this method 第二個 fetch the c...
codeigniter中路由的組成
遵循path info模式 thinkphp中三種模式中的一種 your site url index.php pages view 1 2 3 pages未知為控制器,view 為方法名 1 view函式的第乙個引數 2 view函式的第二個引數 3 view函式的第三個引數 注 url上的引數多...