在phpStorm中使用xdebug调试

简介: 环境说明配置phpini配置phpStormxdebug工作原理说明1 环境说明在mac下搭建的lnmp环境,可以参考: Mac搭建lnmp环境 http://blog.csdn.net/alex_my/article/details/53818143 nginx中的网站配置:fastcgi_pass 127.0.0.1:9

1 环境说明

在mac下搭建的lnmp环境,可以参考:
Mac搭建lnmp环境
http://blog.csdn.net/alex_my/article/details/53818143

nginx中的网站配置:

fastcgi_pass   127.0.0.1:9000

环境均使用brew安装,其中xdebug被安装到:

/usr/local/opt/php56-xdebug/xdebug.so

php的配置中也有指向

/usr/local/etc/php/5.6/conf.d/ext-xdebug.ini

2 配置php.ini

/usr/local/etc/php/5.6/php.ini

[xdebug]
xdebug.remote_enable =1 
xdebug.remote_handler = "dbgp" 
xdebug.remote_host = "localhost"        # 调试的IDE所在的地址
xdebug.remote_port = 9001               # 调试的IDE所用的端口
xdebug.remote_mode = "req" 
xdebug.idekey="PHPSTORM"

xdebug.remote_mode:

req: 在PHP程序开始执行的时候,xdebug与IDE建立连接
jit: 在PHP程序执行到断点处或者遇到Error的时候,xdebug才与IDE建立连接

需要注意的是,这里不要再添加以下配置,会出现警告: 已经加载了xdebug.so

zend_extension="/usr/local/opt/php56-xdebug/xdebug.so" 

还有一个重要的是,如果你用的是nginx,并且是默认配置,一般9000端口都是被使用的。
按照网上其它教程做而xdebug无法断点的原因就是使用了以下配置:

xdebug.remote_port = 9000

重启php-fpm

killall php-fpm
php-fpm -D

3 配置phpStorm

打开 phpstorm–Preferences–Languages & Frameworks – PHP
点击Debug, 填写以下内容

Xdebug -- Debug port: 9001 # 和php.ini中的xdebug.remote_port保持一致

打开Debug–DBGp Proxy填写以下内容

IDE key: phpStorm
Host: localhost         # 要调试的网站地址, 如127.0.0.1, site.com
Port: 80                # 要调试的网站端口
  • 打开网站工程,IDE右上角,点击Edit Configurations..
  • 点击弹出框左侧的+号。
  • 选择PHP Web Application
  • 此时左侧多了一列PHP Web Application – Unnamed (改名为start)
  • 在右侧 – Configuration – Server 右侧的 …
  • 在弹出框Servers左侧点击+号,填写以下内容
Name: start2        # 随意名称
Host: localhost     # 网站地址,与Debug--DBGp Proxy相同
Port: 80            # 网站端口,与Debug--DBGp Proxy相同
Debugger: Xdebug

一些就绪后,在IDE的右上侧,绿色三角形右侧,有一个臭虫按钮,打好断点,就可以点击使用了

4 xdebug工作原理说明

  • IDE中安装了一个遵循BGDp协议的Xdebug插件, 称为xdebug-a
  • 调试模式下,IDE中的xdebug-a创建服务,监听端口: 9001(在phpStorm中设置的)
  • IDE在当前url后面加上了XDEBUG_SESSION_START参数
  • php服务器中的xdebug模块,称为xdebug-b, 接收到带有XDEBUG_SESSION_START的请求后,会进入到调试模式
  • xdebug-b会以协议(BGDp)向xdebug-a的服务建立连接,提供调试服务。
  • php.ini中配置的xdebug.remote_host:xdebug.remote_port是xdebug-a的地址和端口

    xdebug-a创建服务时,这个端口不能被其它进程占用了。

TOP

相关文章
|
7月前
|
IDE PHP Apache
PhpStorm+Xampp+Xdebug搭建环境并部署应用
PhpStorm+Xampp+Xdebug搭建环境并部署应用
155 0
|
1月前
|
PHP 数据库 开发者
PHPStorm的调试功能可以调试哪些类型的问题?
总之,PHPStorm 的调试功能非常强大,几乎可以应对 PHP 开发中遇到的各种类型问题,为开发者提供了有力的支持,提高开发效率和代码质量。
92 48
|
Web App开发 IDE 应用服务中间件
phpstorm+xdebug 配置断点调试
阅读tp框架源码过程中,经常被代码绕来绕去,头晕的很(tp框架源码已很久没有更新);
268 0
|
IDE 安全 PHP
Xdebug+phpStorm安装与调试保姆级教程!『通俗易懂』
Xdebug+phpStorm安装与调试的详细步骤
517 0
Xdebug+phpStorm安装与调试保姆级教程!『通俗易懂』
php代码审计之——phpstorm动态调试
php代码审计之——phpstorm动态调试
424 0
|
安全 IDE Java
【代码审计-PHP】phpStudy(新版) + PhpStorm + XDebug动态调试
【代码审计-PHP】phpStudy(新版) + PhpStorm + XDebug动态调试
567 0
【代码审计-PHP】phpStudy(新版) + PhpStorm + XDebug动态调试
Phpstorm+Xdebug配置断点调试
Phpstorm+Xdebug配置断点调试
157 0
Phpstorm+Xdebug配置断点调试
|
PHP Linux Web App开发
PHP xdebug + PhpStorm调试远程服务器代码
PHP xdebug + PhpStorm调试远程服务器代码 1.服务器(linux centos)安装xdebug pecl install xdebug 注意看安装完成之后会显示 debug.so 的路径,记录下来 2.
5025 0
|
PHP
XDEBUG+PHPSTORM 开发 调试
原文:XDEBUG+PHPSTORM 开发 调试 XDEBUG+PHPSTORM 开发 调试 在我们开发过程中。我们如果经常性的echo、dump效率很低。所以我们就可以使用xdebug进行断点调试。
1523 0
|
6月前
|
PHP Windows
windows 安装php7.4并配置phpstorm环境
windows 安装php7.4并配置phpstorm环境
589 0