centos 7 下PHP7安裝xdebug
```shell
# 下載xdebug
wget https://xdebug.org/files/xdebug-2.7.2.tgz
# 解壓
tar -xf xdebug-2.7.2.tgz
# 建立php的外掛模塊
cd xdebug-2.7.2.tgz
/usr/local/php/bin/phpize
# 生成 Makefile
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
# 編譯並安裝
make -j4 && make install
# 配置 php.ini
vim /usr/local/php/etc/php.ini
#添加
;;;;;;;;;;;;;;;;;;
; xdebug;;;;;;;;;;
;;;;;;;;;;;;;;;;;;
zend_extension=xdebug.so
xdebug.idekey = PHPSTORM
xdebug.remote_enable = 1
xdebug.remote_mode = req
xdebug.remote_handler = dbgp
xdebug.remote_connect_back = 1
xdebug.remote_port = 9999
xdebug.remote_autostart = 1
xdebug.remote_log = /usr/local/php/var/log/xdebug.log
# 這是xdebug的性能分析工具
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir="/opt/web/phpc/xdebug/profile"
;xdebug.profiler_enable_trigger_value="lintest"
xdebug.profiler_output_name="cachegrind.out.%R"
```
注:
-
安裝后重啟一下php-fpm,使用查看是否安裝成功
service php-fpm restart /usr/local/php/bin/php -m | grep xdebug /usr/local/php/bin/php --ri xdebug | grep Version- 關於php-fpm重啟命令,可以參考Centos7源碼編譯安裝PHP7.2(生產環境)后半部分
-
關於xdebug profiler 參考 使用xdebug profiler 對php做性能分析
1. 訪問php項目,記得在請求參數帶上 XDEBUG_PROFILE, 類似 http://127.0.0.1:5671/my?XDEBUG_PROFILE 2. xdebug應該已經在我們配置的分析文件保存目錄產生了文件,如果沒有的話可以看看 /tmp 文件夾下有沒有 3. 安裝圖形界面工具 1. git clone https://github.com/jokkedk/webgrind.git 2. 進入 webgrind 修改config.php 文件 的 $profilerDir 變量 3. 在nginx vhost下配置一個虛擬主機 指向 webgrind/index.php 或 (本地的話)php -S 0.0.0.0:8081 index.php
phpstorm + xdebug 調試 遠程 web應用
- 打開項目,點擊file ,打開settings
- Language&Frameworks 下的 PHP 不需要設置
- 找到 Language&Frameworks 下的 PHP 里面的Debug 將端口設置為php.ini中配置的端口(上面設置的9999)
- 找到PHP 下面的 Servers 點擊 + ,Host 填訪問nginx中對應項目配置的域名,端口填nginx中配置的訪問端口,Debugger選擇Xdebug,然后選use path mappings ,設置一下文件映射(路徑均填絕對路徑),保存
- (在run按鈕旁邊)編輯運行環境,點擊 + 選擇 PHP Web Page ,然后 Server選上面配置的那個server,然后保存
- 打斷點,開啟debug的監聽,再本地刷新頁面就可以開始調試了
phpstorm + xdebug 調試遠程 swoole服務 應用
-
打開項目,點擊file,打開settings
-
找到 Language&Frameworks 下的 PHP ,選擇PHP版本,然后選擇cli Interpreter(不要選本地安裝的PHP),點擊+ 然后選擇from docker ... 這一項,然后選擇 Deployment configuration 這一項,選擇配置過的sftp配置,修改PHP解釋器的絕對路徑(遠程服務器的),我的是 /usr/local/php/bin/php 確定保存
-
找到 Language&Frameworks 下的 PHP 里面的Debug 將端口設置為php.ini中配置的端口(上面設置的9999)
-
找到PHP 下面的 Servers 點擊 + ,host 填 遠程服務器的ip,端口填22,Debugger選擇Xdebug,然后選use path mappings ,設置一下文件映射(路徑均填絕對路徑),保存
-
設置斷點,開始調試
注意:
-
上面說的sftp配置
- 點擊 Tools/Deployment/Configuration,然后點擊 + ,選擇sftp,填寫ip和端口號及身份認證信息,然后填寫服務器上對應的項目的絕對路徑,保存。
- Tools/Deployment/Automatic Upload,這樣每次修改的代碼都會被同步到遠程服務器
-
調試的時候,需要先在必要的位置打斷點,然后點擊debug按鈕啟動調試,使用工具或者另一個項目連接swoole開始調試。
-
debug的時候會連接遠程服務器開啟swoole進程,如果報錯,可能需要將遠程服務器swoole的進程關掉
-
每次修改swoole服務端的代碼都需要關掉swoole進程,然后再點擊debug按鈕
-
殺掉swoole進程的命令
ps -ef | grep "啟動服務文件" | awk '{print $2}' | xargs kill -3
-
-
注:本文是根據查閱的資料及自己實際使用情況所寫
如需轉載請注明出處:https://www.cnblogs.com/zhuchenglin/p/12075046.html
