PHPStorm + lnmp 开发xdebug配置分享

开发过程中经常需要排查隐藏的BUG,通常情况需要看实际上下文中的数据来做分析,用日志或dump的方式是比较痛苦的过程,特别是开发环境与运行环境独立的情况(开发环境window + smb网盘,运行环境 Oracle VirtualBox 上的centos 或者docker环境)

输入命令php -i 或者在页面打印 phpinfo(),把数据复制到文本域,然后点下面的分析按钮
PHPStorm + lnmp 开发xdebug配置分享
PHPStorm + lnmp 开发xdebug配置分享

点击下载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: 320180731

  • 3、配置并编译打包

    [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....

以下为最基本的差异:

PHPStorm + lnmp 开发xdebug配置分享
在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
    PHPStorm + lnmp 开发xdebug配置分享

  • 5.1 PHP版本必须与服务器上一致,CLI Interpreter配置,里面需要配置ssh和服务器上的php和xdebug扩展目录

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

  • 5.2 Path mappings配置,需要指定本地开发目录与服务器开发目录
    PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

  • 5.3 DEBUG配置,端口必须与php.ini中的端口一致

PHPStorm + lnmp 开发xdebug配置分享

  • 5.4 配置servers,需要注意做服务器目录映射

PHPStorm + lnmp 开发xdebug配置分享

  • 5.5 DBGP PROXY配置,如果 php.ini中配置xdebug.start_with_request=yes,则可跳过这一步

PHPStorm + lnmp 开发xdebug配置分享

  • 5.6 配置测试服务器,可以是ftp或sftp,mappings配置需要注意,我的项目是laravel,所以站点根目录是public

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

  • 6 创建debug配置文件

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享
选中刚才配置的servers
PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

以上完成,就可以debug断点调试了。

PHPStorm + lnmp 开发xdebug配置分享

PHPStorm + lnmp 开发xdebug配置分享

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

如果我要debug controller 怎么处理,你这debug的是index

1年前 评论
Crastlin (楼主) 1年前

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