PHPStorm + lnmp 开发xdebug配置分享
开发过程中经常需要排查隐藏的 BUG,通常情况需要看实际上下文中的数据来做分析,用日志或 dump 的方式是比较痛苦的过程,特别是开发环境与运行环境独立的情况(开发环境 window + smb 网盘,运行环境 Oracle VirtualBox 上的 centos 或者 docker 环境)
- 1、下载 xdebug 扩展
打开 xdebug 官网:xdebug.org/wizard
输入命令 php -i 或者在页面打印 phpinfo (),把数据复制到文本域,然后点下面的分析按钮
点击下载 xdebug 扩展,也可以复制链接在 ceontos 中通过 wget 下载。
[root@localhost]# cd /usr/local/src
[root@localhost src]# wget https://xdebug.org/files/xdebug-3.1.6.tgz
2、安装扩展,我的是 lnmp 环境,所以目录在 /usr/local 目录下
[root@localhost src]# tar zxvf xdebug-3.1.6.tgz [root@localhost src]# cd xdebug-3.1.6 [root@localhost xdebug-3.1.6]# /usr/local/php7.3/bin/phpize
显示以下信息
Configuring for:
…
Zend Module Api No: 20180731
Zend Extension Api No: 3201807313、配置并编译打包
[root@localhost xdebug-3.1.6]# ./configure --with-php-config=/usr/local/php7.3/bin/php-config [root@localhost xdebug-3.1.6]# make && make install
以上完成后,成功会显示打包好的 xdebug.so 文件目录位置,如果编译失败,一般情况是配置文件不对或源文件与环境不兼容,需要下载对应版本的扩展。
4、在 /usr/local/php7.3/etc/php.ini 中的最后一行加上以下配置
[Xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=192.168.0.88 # 此 IP 为 PHPstorm 所以电脑 IP
xdebug.client_port=9003 # 端口为 PHPstorm 配置的通信端口
xdebug.start_with_request=default
xdebug.idekey=”PHPSTORM”
xdebug.remote_handler=dbgp
xdebug.log=”/var/log/nginx/xdebug.log”
xdebug.discover_client_host=true
保存配置并重启 php-fpm 服务,lnmp 的话,直接 lnmp restart
- 重要说明
当 xdebug.start_with_request 改为 yes 时所有请求都会走 debug,不需要设置 idekey,不为 yes 时,则需要在请求加上参数:XDEBUG_SESSION=PHPSTORM
注意:以下配置为 xdebug3 的配置,与 xdebug2 存在差异,请确认是否为 3.x 版本,具体差异请参考:www.cnblogs.com/feimoc/p/14684730....#
以下为最基本的差异:
在 Xdebug 2.x 中,每个功能都有一个启用设置,使用 Xdebug 3.x 我们只需要设置 xdebug.mode 一个参数就可以了。
xdebug.mode 必须与 xdebug.start_with_request 搭配使用。 不同的 mode 有不同的用途,如果要多个模式一起开启,就用
,
分隔开就行。develop 主要是开启 var_dump 格式化显示,debug 主要是开启步骤调试。详情请参考官方文档xdebug.start_with_request 用于设置 xdebug.mode 不同 model 的启用和关闭。设置多个 model 用
|
分割。参数变更#
xdebug.remote.log 更改为 xdebug.log
xdebug.remote_host 、xdebug.remote_port 更改为 xdebug.client_host、xdebug.client_port
5、配置 PHPstorm
打开 settings,设置 PHP 项,演示的为 phpstorm2023.1.2
5.1 PHP 版本必须与服务器上一致,CLI Interpreter 配置,里面需要配置 ssh 和服务器上的 php 和 xdebug 扩展目录
- 5.2 Path mappings 配置,需要指定本地开发目录与服务器开发目录
- 5.3 DEBUG 配置,端口必须与 php.ini 中的端口一致
- 5.4 配置 servers,需要注意做服务器目录映射
- 5.5 DBGP PROXY 配置,如果 php.ini 中配置 xdebug.start_with_request=yes,则可跳过这一步
- 5.6 配置测试服务器,可以是 ftp 或 sftp,mappings 配置需要注意,我的项目是 laravel,所以站点根目录是 public
- 6 创建 debug 配置文件
选中刚才配置的 servers
以上完成,就可以 debug 断点调试了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: