誤解 PHP5 很久
看到 Ronny's BLOG 的這篇《如何不顯示 PHP 的錯誤訊息或警告訊息》,想起自己曾經誤解了 PHP5 長達兩年的愚蠢經歷。:-p
話說當年 PHP5 的語言規格一問世之後,我為之傾倒,這簡直就是直接解決了 PHP 最大的問題「語言功能不足」啊。因此就十分期待 PHP5 的問世。由於我都是用 ports 在管理軟體,因此當 PHP5 BETA 一出現在 ports 裡,我馬上就讓準備取代舊 lady 的新 lady 安裝 PHP5,要慢慢將以前的舊程式,改寫成可以在 PHP5 上跑。可是,想當然爾,這樣子的轉換,當然不可能無痛,有錯誤是必然的。但沒想到,竟然,瀏覽器裡一片空白,一點錯誤或警告訊息都沒有。這是要怎麼 debug 啊?什麼都沒有,猜也猜不到。我還以為,這是因為 PHP5 還是 BETA 版的緣故,因此程式的轉換就一拖拖了快兩年,web 這個龍頭 service 不能移過來,其他 services 也就懶得動,也因此新 lady 這台遠比舊 lady 強大不知多少倍的機器,就充當測試機很久,直到本 blog 問世為止。
原來,一切的問題都在於,我在安裝 PHP5 的時候,為了安全起見,便直接使用 ports 提供的 php.ini-recommended 這個使用比較安全的設定的 php.ini 設定檔。而在這個版本的 php.ini 裡,將 display_errors 設成 Off 了,也因此所有的錯誤與警告訊息,當然一點都沒有印出來。我直到兩年後,才發現這個設定值的存在,也才順利開始使用 PHP5,將本 blog 成立。
所以,是的,若要不顯示 PHP 的錯誤與警告訊息,可以在 php.ini 裡將 display_errors 設成 Off 全部不顯示,抑或是在呼叫函式時,在函式名前冠以 @ 符號,僅抑制該呼叫的錯誤與警告訊息。



3 Comments
其實關掉應該會比較好 ( 比較安全?! :p ) .
自己的 server 的話可以看 apache 的 error log 來作 debug .
開發階段打開比較方便,正式上線當然關掉比較好囉。:-)
PHP 的 error/warning message 也會寫在 apache log 裡嗎?這倒是可以研究看看。
Anyway,謝。
ㄟ..好久不見, 給一下你的msn account , 寄給我我的一樣是arlo@mycorner.com.tw
Post a Comment