本文只講環境搭建,不涉及具體原理。
出發點:使用xdebug對php項目進行調試
工具準備:
1、ubuntu18 (開發環境)
2、phpstorm (IDE)
前提:已搭建好lnmp開發環境
首先,我們需要安裝xdebug,開啓php的xdebug擴展
- 安裝命令:
pecl install xdebug
- 修改php配置文件php.ini
vi /usr/local/php/etc/php.ini
在最後面加入如下配置:
[xdebug]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so"
xdebug.idekey=PHPSTORM
xdebug.remote_host = 192.168.31.165
xdebug.remote_port = 9001
xdebug.remote_handler = dbgp
xdebug.auto_trace = 1
xdebug.remote_autostart = 1
xdebug.remote_log = /tmp/xdebug.log
簡單說下各項配置的含義:
zend_extension xdebug擴展so文件位置
xdebug.idekey 與IDE通信的key值,待會在phpstorm也需要用到
xdebug.remote_host IDE所在的主機IP地址
xdebug.remote_port 通信端口,不可與php和nginx通信的9000重複
xdebug.remote_autostart自動開始
- 加入配置後,需要重啓下php-fpm,這裏以lnmp一件安裝包命令爲例
lnmp php-fpm restart
phpstorm配置
- phpstorm的php解釋器配置(因爲用的是遠端的php解釋器,所以要重新配置)
進入配置面板 File | Settings | Languages & Frameworks | PHP
點擊新增一個php解釋器:
這裏選擇連接即可
- 配置debug服務
進入配置面板 File | Settings | Languages & Frameworks
配置端口,和剛纔在php.ini對應
- 配置DBGp
這是一種語言和UI的通信協議:https://xdebug.org/docs-dbgp.php
DBGP - A common debugger protocol for languages and debugger UI communication
key填寫的和xdebug.idekey字段值一樣
主機填寫待會web服務訪問的地址,填寫IP地址也行
- 添加server
遠程調試的話,需要勾選路徑映射選項,即本地主機項目的路徑和遠端項目的路徑。
- 配置調試選項
注:在這一步,要注意一點是很多網上寫着是設置PHP Web Application,但是其實新版的phpstorm已經修改了這個的名稱爲:
PHP Web Page
進入配置面板
新增
填寫好配置信息後,點擊應用,會在左側列表新家一個PHP Web Page選項
- 接着,選擇我們剛纔創建選項
如下圖,點擊開始監聽php服務器發過來的調試信息
點擊開始調試,會自動彈出瀏覽器訪問web服務器。到此,已經完成了2/3了,接下來就是如何配合着Postman使用了
postman請求
其實使用postman來進行請求也簡單,在我們剛纔點擊開始調試的時候,彈出的瀏覽器地址後面會待着一個很像是通信編號的數字,沒錯,使用postman的關鍵是,要在請求地址添加XDEBUG_SESSION_START=14481,這樣,即使通過postman來請求地址時,也會將調試信息發送到我們的IDE上。
phpstorm的Debugger面板信息: