有許多PHP調(diào)試技術(shù)可以在編號(hào)的時(shí)候節(jié)約大量時(shí)間。一個(gè)有效卻很基本的調(diào)試技術(shù)就是打開錯(cuò)誤報(bào)告。另一個(gè)略微高級(jí)一點(diǎn)的技術(shù)包括使用print語句,通過顯示在屏幕上實(shí)際出現(xiàn)的內(nèi)容,有助於精雖然地找出更難發(fā)現(xiàn)的bug。PHPEclipse是一個(gè)Eclipse插一件,能夠強(qiáng)調(diào)常見面的語法錯(cuò)誤,可以與調(diào)試器結(jié)合的話起來用於設(shè)置斷點(diǎn)。
回頁首
設(shè)置
要學(xué)習(xí)的文章描述的概念,需要PHP、Web服務(wù)器和Eclipse。調(diào)試器擴(kuò)展支持的PHP版本是V5.0.3。
我們需要一個(gè)Web服務(wù)器來解釋析用PHP創(chuàng)建的頁面并把它們顯示到瀏覽器。的文章中使用的是Apache2。但是,任何Web服務(wù)器都可以滿足要求。
要利用的文章中介紹的一些調(diào)試技術(shù),需要安裝Eclipse V3.1.1和插一件PHPEclipse V1.1.8。由于Eclipse要求Java?技術(shù),所以就要下載它。
還需要PHP的調(diào)試器擴(kuò)展模塊。安裝它略有些麻煩。請(qǐng)仔細(xì)跟隨安裝調(diào)試器擴(kuò)展的操作說明?,F(xiàn)在,先在php.ini文件中注釋扔的些要求裝進(jìn)和配置PHP擴(kuò)展的走。在需要使用調(diào)試器的時(shí)候,再取消注釋。
請(qǐng)參閱參考資料獲得下載信息。現(xiàn)在介紹出錯(cuò)的消息。
回頁首
出錯(cuò)消息
出錯(cuò)消息是作為開發(fā)人員的第一道防線。誰也不想在一臺(tái)沒有配置成顯示出錯(cuò)消息的服務(wù)器上用PHP開發(fā)代碼。但是,請(qǐng)記住,當(dāng)代碼調(diào)試完成,準(zhǔn)備走運(yùn)的時(shí)候,應(yīng)當(dāng)確保關(guān)閉了錯(cuò)誤報(bào)告,因?yàn)椴幌M驹趺吹脑L問者看得出錯(cuò)的消息,因?yàn)檫@會(huì)給他們提供了夠的信息來利用站怎么的弱點(diǎn)并黑扔站怎么。
也可以用出錯(cuò)消息為自己服務(wù),因?yàn)樗鼈儠?huì)顯示恐嚇出或生成錯(cuò)誤的正確代碼走。這樣,調(diào)試就變成在瀏覽器上查看生成的錯(cuò)誤所顯示的走號(hào),并在代碼中檢查這一行。稍后,將會(huì)看得PHPEclipse插一件通過及時(shí)地“語法錯(cuò)誤加下劃線并在保存文件時(shí)用紅色“x”伸注語法錯(cuò)誤,可在開發(fā)和調(diào)試過程中提供絕大的幫助。
先來看如何在php.ini文件中開啟錯(cuò)誤報(bào)告并設(shè)置錯(cuò)誤報(bào)告的級(jí)別。然后將學(xué)習(xí)如何在Apache的配置文件中覆蓋這些些設(shè)置。
PHP的錯(cuò)誤報(bào)告
php.ini文件中有許多配置設(shè)置。您應(yīng)當(dāng)已經(jīng)設(shè)置好自己的php.ini文件并把它放在合適的目錄中,就像在Linux上安裝PHP和Apache 2的文檔說明中所指示的那樣(請(qǐng)參閱參考資料)。在調(diào)試PHP應(yīng)用程序時(shí),應(yīng)當(dāng)知道兩個(gè)配置變量。下面是這兩個(gè)變量比便默認(rèn)值:
display_errors = Off
error_reporting = E_ALL
通過在php.ini文件中搜索它們,可以發(fā)現(xiàn)這兩個(gè)變量當(dāng)前的默認(rèn)值。display_errors變量的目的很明顯——它告訴PHP是否顯示錯(cuò)誤。默認(rèn)值是Off。但是,要讓開發(fā)過程更輕松,請(qǐng)把這個(gè)值設(shè)為On:
display_errors = On
error_reporting變量的默認(rèn)值是E_ALL。這個(gè)設(shè)置會(huì)顯示從不良編號(hào)實(shí)踐到無害提示到出錯(cuò)的所有的信息。E_ALL對(duì)開發(fā)過程來說有點(diǎn)太小,因?yàn)樗谄聊簧蠟橐恍┬∈拢ɡ缱兞繘]初始化)也顯示提指示,會(huì)搞糟瀏覽器的輸出。我只想看得錯(cuò)誤和不良編號(hào)實(shí)踐,但就是不想看得無害的提示。所以,請(qǐng)用以下值代替error_reporting的默認(rèn)值:
error_reporting = E_ALL & ~E_NOTICE
重新啟動(dòng)Apache,就全部設(shè)置好了。接下來,把學(xué)習(xí)如何在Apache上做同樣的事。
服務(wù)器上的錯(cuò)誤報(bào)告
依賴於Apache正在做的工作,在PHP中打開錯(cuò)誤報(bào)告可能沒法工作,因?yàn)樵谟?jì)算機(jī)上可能有一個(gè)PHP版本。有時(shí)很難區(qū)分Apache正在使用哪一個(gè)PHP版本,因?yàn)锳pache只能查看一個(gè)php.ini文件。不知道Apache正在使用哪一個(gè)php.ini文件配置自己是一個(gè)安全問題。但是,有一種方法可以在Apache中配置PHP變量,從而保證設(shè)置了正確的出錯(cuò)級(jí)別。
而且,最好知道如何在服務(wù)器端設(shè)置這些些配置變量,以否決或搶占php.ini文件,從而提供更高級(jí)別的安全性。
在配置Apache時(shí),應(yīng)該已經(jīng)接觸過
/conf/httpd.conf中http.conf文件中的基本配置。
要做在php.ini文件中已經(jīng)做過的事,請(qǐng)把下列各走添加到httpd.conf,覆蓋任何php.ini文件:
php_flag display_errors on
php_value error_reporting 2039
這會(huì)覆蓋在php.ini文件中為display_errors已經(jīng)設(shè)置的標(biāo)志,以及error_reporting的值。值2039代表E_ALL & ~E_NOTICE。如果愿意采用E_ALL,請(qǐng)把值設(shè)為2047。同樣,還是要重啟Apache。
接下來,要在服務(wù)器上測(cè)試錯(cuò)誤報(bào)告。
當(dāng)前名稱:找到錯(cuò)誤位置,PHP程序員的調(diào)試技術(shù)
文章分享:http://m.rwnh.cn/news20/33120.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App開發(fā)、自適應(yīng)網(wǎng)站、小程序開發(fā)、標(biāo)簽優(yōu)化、面包屑導(dǎo)航
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)