phpstorm+xdebug

phpstorm

Posted by feimo on January 4, 2018

环境

  • 系统版本 Macos
  • PHP版本7.3
  • phpstorm版本2020.1

Xdebug配置

  1. 首先去 xdebug 官网下载对应php版本的xdebug扩展,将phpinfo的信息复制到下图的输入框中,点击here就会出现对应的xdebug扩展。
  2. 打开php.ini添加如下代码
    [XDebug]
    #xdebug扩展文件 windows是.dll结尾
    zend_extension =xdebug.so           
    #开启xdebug日志
    xdebug.remote_log = /usr/local/php/xdebug.log 
    #开启远程调试 
    xdebug.remote_enable=1           
    #开启远程调试自动启动 
    xdebug.remote_autostart = 1
    #启用代码自动跟踪     
    xdebug.auto_trace =1    
    #收集变量         
    xdebug.collect_vars=1       
    #显示错误信息    
    xdebug.show_error_trace=1   
    #远程调试参数,不需要可以关闭       
    xdebug.remote_handler = dbgp  
    #本地调试填写localhost 远程调试填写本机真实ip地址
    xdebug.remote_host= localhost 
    #端口号
    xdebug.remote_port = 9002      
    xdebug.idekey = "PHPSTORM" 
    

phpstorm配置

指定本地php环境

这里的端口设置和php.ini设置要一致

添加本地虚拟主机域名

配置chrome

(如果开启了xdebug.remote_autostart =1 本地调试就不需要安装此插件了,请忽略此步)首先我们需要对浏览器安装Xdebug helper插件,用于在请求中添加参数,类似:XDEBUG_SESSION_START=session_name。

运行项目

运行项目之前开启监听

打断点 浏览器访问

断点成功

解决长时间调试500错误

断点成功以后过十几秒浏览器可能会报500错误,我们需要改下nginx的配置,添加fastcgi_read_timeout fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间,单位秒。

  • 左侧绿色三角形 : Resume Program,表示將继续执行,直到下一个中断点停止。
  • 左侧红色方形 : Stop,表示中断当前程序调试。
  • 上方第一个图形示 : Step Over,跳过当前函数。
  • 上方第二个图形示 : Step Into,进入当前函数內部的程序(相当于观察程序一步一步执行)。
  • 上方第三个图形示 : Force Step Into,強制进入当前函数內部的程序。
  • 上方第四个图形示 : Step Out,跳出当前函数內部的程式。
  • 上方第五个图形示 : Run to Cursor,定位到当前光标。
  • Variables :可以观察到所有全局变量、当前局部变量的数值
  • Watches : 可以新增变量,观察变量随着程序执行的变化。