|
|
|
|
|
由于我的網(wǎng)站是asp.net寫的,必須使用iis服務(wù)器,而我在某些模塊需要用到php程序,因此需要一個(gè)能運(yùn)行php又能運(yùn)行.net的環(huán)境。為了簡(jiǎn)便,我于是在iis配置了php的運(yùn)行環(huán)境。經(jīng)實(shí)際使用,穩(wěn)定和速度也都還不錯(cuò),并沒(méi)有很多人說(shuō)的那么糟糕。
iis環(huán)境運(yùn)行php程序,首先給我一個(gè)最大的困擾是怎樣調(diào)試php程序。因?yàn)槲野惭b完php后,運(yùn)行程序時(shí)竟然不知道它的log文件在哪里。任何程序開發(fā)都需要調(diào)試,而調(diào)試時(shí)肯定要看log里的錯(cuò)誤輸出信息。
今天通過(guò)琢磨,終于搞定了這一困難,以后,不再怕php程序的調(diào)試了。
php頁(yè)面為什么沒(méi)有輸出錯(cuò)誤信息而是空白?
相信很多菜鳥都與我一樣,寫了一個(gè)php程序,然后測(cè)試,誰(shuí)知,沒(méi)有執(zhí)行成功的情況下,頁(yè)面并沒(méi)有輸出錯(cuò)誤信息,而是看到空白的頁(yè)面。這讓我們修改起來(lái)十分困難,因?yàn)槟阕ゲ坏藉e(cuò)誤的信息,不知道錯(cuò)在哪里。
后來(lái),我終于知道了原因。
打開c:\php\php.ini(c:\php是php的安裝目錄),查找“display_errors”,把Off改為On。
然后保存文件,在把此文件復(fù)制到C:\WINDOWS。
最后,重啟IIS服務(wù)器。(在dos里輸入 iisreset /restart 即可)
這樣,以后打開php頁(yè)面,如何有任何錯(cuò)誤,都會(huì)在頁(yè)面上顯示了,這給php調(diào)試帶來(lái)很大的方便。
php的log文件在哪里?
我一直有個(gè)疑問(wèn),那就是php的log文件到底在哪里?
我們知道,iis的網(wǎng)站log文件是可以在iis里設(shè)置的,默認(rèn)地址是C:\WINDOWS\system32\LogFiles,但是在這里并不會(huì)有php的log文件。
其實(shí),php的log文件是需要手工設(shè)置的,同樣,需要修改php.ini這個(gè)文件。
1、找到log_errors = Off,把Off改為On
2、設(shè)置log文件的路徑,找到error_log = filename,把filename改為log文件的路徑,例如c:\php\err.log。
然后保存文件,在把此文件復(fù)制到C:\WINDOWS。
最后,重啟IIS服務(wù)器。(在dos里輸入 iisreset /restart 即可)
這樣,以后打開php頁(yè)面,如何有任何錯(cuò)誤,都會(huì)自動(dòng)記錄在剛才設(shè)置的文件里了。
問(wèn)題:如何動(dòng)態(tài)改變php error_log 生成的log 的文件名
在 php.ini 中,可以設(shè)置 error_log = c:/system.log,但是隨著系統(tǒng)運(yùn)行時(shí)間增加, system.log 文件會(huì)變的巨大無(wú)比。如何讓這個(gè)log文件按日期作為文件名呢?每天生成一個(gè) log 文件,這樣就不會(huì)有巨大的 log 文件了。
可以用 ini_set 這個(gè)方法來(lái)實(shí)現(xiàn)。(導(dǎo)讀:ini_set的用法)
$logFileName = date("Y-m-d") . ".log";
ini_set ("error_log" , $logFileName);