概述
以前做PHP時(shí)搭建服務(wù)器時(shí)整理的文檔,現(xiàn)將它與大家分享。本文描述PHP環(huán)境的搭建步驟,以及配置過程;形成一個(gè)能夠通過IDE進(jìn)行單步調(diào)試的開發(fā)測(cè)試環(huán)境,節(jié)省開發(fā)時(shí)間。
軟件準(zhǔn)備
Windows7 64位系統(tǒng)
軟件包
php-5.5.1-nts-Win32-VC11-x64
eclipse-php-helios-SR2-win32-x86_64
nginx-1.4.2
php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll
環(huán)境搭建
軟件包均使用的是綠色版,可以打包直接拷貝(由于當(dāng)前配置的機(jī)器是64位,32位需要重新配置)。
HTTP server
當(dāng)前安裝使用Nginx,也可以使用其他的Server,可以在此補(bǔ)充。
Nginx
配置使其支持PHP請(qǐng)求,找到如下所示首行的文本,去掉這塊的注釋(刪除#號(hào));把標(biāo)記為紅色的/scripts改為”$document_root”,這里的”$document_root”就是指前面”root”所指的站點(diǎn)路徑。
3 | fastcgi_pass 127.0.0.1:9000; |
4 | fastcgi_index index.php; |
5 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
Nginx使用PHP需要使用CGI,所以PHP和Nginx都需要配置CGI參數(shù)。
PHP
PHP主要配置三個(gè)方面,一個(gè)是擴(kuò)展包,另一個(gè)是關(guān)于CGI參數(shù)的解析,還有一個(gè)是關(guān)于與eclipse聯(lián)合單步調(diào)試的配置。
擴(kuò)展包
1 | ; extension_dir = "ext" 改為 |
CGI參數(shù)修正
XDebug擴(kuò)展
將下載的XDebug擴(kuò)展的dll放到php的ext文件夾中,編輯php.ini,在最后添加如下的配置:
2 | zend_extension = php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll |
4 | ;zend_extension_ts = php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll |
5 | xdebug.remote_enable= true |
6 | xdebug.remote_host=127.0.0.1 |
8 | xdebug.remote_mode = req |
9 | xdebug.remote_handler=dbgp |
XDebug配置成功后調(diào)用phpinfo會(huì)顯示有Xdebug運(yùn)行,如果沒有如圖 31所示的Xdebug信息則說明配置失敗。
圖 31:XDebug配置后phpinfo顯示
Eclipse
運(yùn)行
Eclipse運(yùn)行時(shí)使用的是jre運(yùn)行,jre已經(jīng)放在eclipse配置文件中。
eclipse.ini中添加如下配置(jre放在eclipse根目錄下,下載的jre有版本號(hào),此配置中已經(jīng)把版本號(hào)刪除):
注:如果電腦上已經(jīng)安裝jdk,可以不用下載安裝jre,也可以不用修改配置文件。
配置單步調(diào)試
在Window -> Preferences窗口的左邊選擇PHP -> Debug(如圖 32),在窗口右邊的PHP Debugger這一項(xiàng)中選擇XDebug,這個(gè)選項(xiàng)的右邊有個(gè)Configure鏈接,點(diǎn)進(jìn)去可以對(duì)XDebug進(jìn)行設(shè)置,請(qǐng)確保XDebug使用的端口號(hào)與php.ini文件中指定的相同(通常為9001)。
圖 32:調(diào)試選項(xiàng)
調(diào)試的使用
打開 Eclipse ,新建立一個(gè)PHP Project,我繼續(xù)建立一個(gè)測(cè)試項(xiàng)目,打開 index.php 頁面。選擇 Eclipse 菜單里的 Run –>Run Configurations,設(shè)置一下:
圖 33:運(yùn)行配置選項(xiàng)卡
圖 34:開始調(diào)試
其他
自動(dòng)運(yùn)行和停止腳本
在啟動(dòng)腳本中,由于windows不能像Linux那樣用&符號(hào)將程序在后頭運(yùn)行,所以在需要使用RunHiddenConsole工具,這樣就能讓windows程序在后臺(tái)運(yùn)行。啟動(dòng)腳本如下:
1 | echo Starting PHP FastCGI... |
2 | RunHiddenConsole D:/web/php-5.5.1-nts/php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php-5.5.1-nts/php.ini |
4 | RunHiddenConsole D:/web/nginx-1.4.2/nginx.exe -p D:/web/nginx-1.4.2 |
停止腳本:
3 | taskkill /F /IM nginx.exe > nul |
4 | echo Stopping PHP FastCGI... |
5 | taskkill /F /IM php-cgi.exe > nul |
遇到的問題和解決方案
Php不能運(yùn)行,提示缺少DLL錯(cuò)誤
這個(gè)是由于系統(tǒng)沒有安裝VS造成的,在PHP的下載首頁可以看到提示到微軟的官網(wǎng)上下載VC11的補(bǔ)??;
不能斷點(diǎn)調(diào)試
由于php和eclipse的配置造成的。一個(gè)是端口的沖突,由于FastCGI使用的是9000端口,按照網(wǎng)上的默認(rèn)配置XDebug還是使用9000端口,在保證端口能夠使用的情況下還要注意端口不要產(chǎn)生沖突;另一個(gè)是因?yàn)閄Debug配置是使用的是extension參數(shù)而不是使用zend_extension。
參考資料
說明:本文中的圖片也引用于上面兩個(gè)資料,而不是自己配置時(shí)實(shí)際執(zhí)行時(shí)截屏,在配置過程中僅有版本號(hào)不同,其余均與兩個(gè)資料中的情況相同。