iT邦幫忙

8

php.ini的「必要」設定

看過超多新手都遇到一些光怪陸離的狀況。
然後絕大多數找不到bug或是bug被忽略其實都是php.ini的設定的問題。
所以我這邊也指出幾個「必要」去改的設定。
但所謂的「必要」也只是讓你了解這幾個設定,實際上要on還是off或其他的值請你自行斟酌。

display_errors

display_errors = On

是否在程式出error時顯示,開On的話,當程式遇到問題就會顯示錯誤的原因
開Off的話,你可能會得到Internal 500的畫面。

error_reporting

error_reporting = E_ALL & ~E_NOTICE

報錯時,顯示的錯誤級別設定
如果你想什麼鬼碗糕都看到,可以設成E_ALL

output_buffering

output_buffering = Off

輸出暫存,跟html的header有關的東西。
一堆session_start error或是header() error都跟這個設定有關。
很多時候很多人說為什麼我在本機寫的code都沒error
一到server就出錯?
那是因為你在php的程式碼前就做了輸出(例如echo或是秀了其他的html code)
然後可能你的output_buffering是設On或是4096
結果伺服器卻是設定off
我建議自己開發就設置Off吧!
自己先避掉header的問題。

date.timezone

date.timezone = asia/taipei

不要一直問為什麼你的時間永遠比人家慢8個小時……
你不指定時區是亞洲/台北就註定你在台灣就是比人家慢8個小時………
對!如果你主機是給日本人用自己知道啊!

register_globals

#register_globals = ...

如果你看到這個東西,請你先升級你的php版本吧!
如果你不升級,請你把他設成off吧。
不然$_POST跟 $_GET還有$_REQUEST會很開心的………直接注入你的變數找碴。

以上就是幾個比較重要的必須了解的設定。
其他還有很多就自己細細研究
but……不要問我:php.ini在那裡?

<?php
phpinfo();

他會告訴你在那裡。


1 則留言

0
老鷹(eagle)
iT邦高手 1 級 ‧ 2017-07-03 08:47:27

碗糕

我不喜歡吃碗糕 可以看到牛排嗎

如果你想什麼鬼牛排都看到,你可以設定成

error_reporting = E_Beef

不過你可能會遇到php開不起來的鬼狀況……(我不知道啦!沒這樣玩過)

還是會有藏彩蛋!

SAM趕快去試試看

小魚 iT邦高手 1 級‧ 2017-07-06 07:59:07 檢舉

這是密技嗎? @@

我要留言

立即登入留言