phpstorm + xdebug 断点调试

环境说明

宿主机deepin系统,用的是docker-compose 搭建laravel

php.ini 添加 xdebug 模块

  • 下载xdebug模块
  • 首先打印phpinfo() 全选复制到 https://xdebug.org/wizard 这个链接的文本域中 并且点击这个按钮生成
    phpstrom + docker + xdebug 断点调试

phpstrom + docker + xdebug 断点调试
点击下载

注:由于我之前下载2.7.1版本的,并且适用php 7.1,固这里不下载2.9

解压并进入xdebug目录

tar -xvzf xdebug-2.9.0.tgz
cd xdebug-2.9.0

编译并生成.so文件

phpize # 生成configure文件
./configure --enable-xdebug # 配置
make && make install # 编译并生成

复制 xdebug.so模块到指定目录

cd modules/ 
mkdir /usr/local/bin/modules 
cp xdebug.so /usr/local/bin/modules 

找到 php.ini 文件 在最后插入

[xdebug]
zend_extension=/usr/local/bin/modules/xdebug.so
xdebug.profiler_enable=on #开启性能监控(一般在正式环境不建议开启)
xdebug.trace_output_dir="/usr/local/php/xdebug_trace" #程序执行顺序日志
xdebug.profiler_output_dir="/usr/local/php/xdebug_profiler" #程序执行性能日志
xdebug.default_enable=0
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.5.24
xdebug.remote_port=9000
xdebug.remote_connect_back=0
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log=/usr/local/php/xdebug/remote.log

zend_extension 这个值就是xdebug.so的目录,xdebug.remote_host是电脑ip,xdebug.idekey 这个值要跟phpstrom编辑器设置的一致

重启 php 打印 phpinfo(),如果有下图,表示成功

phpstorm + xdebug 断点调试

因为我用的是docker 刚开始没有 php.ini 文件
find / -name php.ini*

phpstrom + docker + xdebug 断点调试

进入/usr/local/etc/php,并且根据 php.ini-development 复制一份 php.ini

cd /usr/local/etc/php
mv php.ini-development php.ini

接下来配置phpstorm

|file|settings
这里的 debug port 要跟上面 php.ini 里面 xdebug.remote_port 的值一致
phpstrom + docker + xdebug 断点调试

配置DBGp Proxy,这里IDE key 要跟下面浏览器debug配置的key一致
phpstrom + docker + xdebug 断点调试

配置servers,这里的host,本地项目一般填localhost,端口要跟服务器配置的一致,我的是宿主机81端口映射到docker容器 80端口,所以填81,Debugger 这里选择 Xdebug ,下面的File/Directory配置的是宿主机php项目所在目录,而absolute path on the server配置的是Docker容器中的项目目录
phpstrom + docker + xdebug 断点调试

配置 |Run|Debug Configurations
添加一个PHP Web Page
phpstrom + docker + xdebug 断点调试

谷歌浏览器安装xdebug helper 插件

安装完成后,右键选择"选项",IDE key选择"PhpStorm",后面输入"PHPSTORM"点击save按钮即可:
phpstrom + docker + xdebug 断点调试

点击右上角这个电话虫,设置断点,浏览器刷新,就可以进行断点调试
phpstrom + docker + xdebug 断点调试

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

VScode不需要配置直接可以使用!

4年前 评论
Rakishly (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!