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 协议》,转载必须注明作者和本文链接
如果我要debug controller 怎么处理,你这debug的是index
博客:记 PHPSTORM Xdebug