PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法)


PHP 设置调试工具XDebug PHPStorm IDE - derrck - 博客园  http://www.cnblogs.com/derrck/p/5195946.html

Xdebug: Documentation  https://xdebug.org/docs/install  

Xdebug: Documentation  https://xdebug.org/docs/remote

1, 按照官方文档所得, 调试的原理是, 当加载好xdebug工具的php执行php脚本时, php进程就充当client端(注意浏览php网页, 或手动php 1.php执行脚本都会创建php进程), 而ide, vdebug, XDebugClient等就充当server端, php进程和这些"server"端就通过一套协议进行通信调试信息.




xdebug是php拓展, 所有前提得配置好本地php环境

Windows7下的php环境配置教程_php技巧_脚本之家  http://www.jb51.net/article/61507.htm

1, 上文中注意的是, 可能安装好php后, 终端下运行php --ini, 可以查看php.ini配置文件路径, 假如显示没有该文件, 可以去php安装目录下, 按需要把, 把php.ini-development文件重命名为php.ini即可





1, phpstorm使用浏览器调试php


都配置好环境后, 可以开始配置xdebug


先下载PHP扩展Xdebug https://xdebug.org, 可以复制自己的phpinfo粘贴到https://xdebug.org/wizard.php中, 会自动根据本地php版本生成需要下载的版本, php.ini的设置语句. (注意一定要使用跟自己php版本相对应的xdebug拓展才行)


下载好之后放入php目录的ext文件夹中, 然后设置php.ini, 在最后加上

下面是windows环境安装xdebug拓展

zend_extension = C:\path\php\ext\php_xdebug-2.4.0rc4-5.6-vc11-x86_64.dll
xdebug.remote_enable =1
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost  (设置debug时, xdebug拓展(作client端)要连接的远程server端, 这里以本机作为client, server端为例)
xdebug.remote_mode = req
xdebug.remote_port = 9000   (设置debug时, xdebug拓展(作client端)要连接的端口. 注意可能会跟nginx, php-cgi进程端口冲突, 本文下方有冲突的解决方法)
xdebug.idekey=PHPSTORM


linux环境的xdebu拓展安装方法请参照Xdebug: Documentation  https://xdebug.org/docs/install


在电脑属性中添加系统环境变量, linux上可以用export命令

XDEBUG_CONFIG="idekey=phpstorm remote_host=localhost profiler_enable=1"


然后重启apache, 去设置phpstorm, 如下图右方, 配置本地php根路径

 

1. 进入File>Settings>PHP>Servers,这里要填写服务器端的相关信息: 
name: localhost, 
host: localhost, 
port: 80, 
debugger: XDebug

如果是自定域名则host设置自定域名, 如laravel5.io




2. 进入File>Settings>PHP>Debug,找到XDebug选项卡,port填9000 (设置debug时, ide(作server端)要监听的端口. 注意可能会跟nginx, php-cgi进程端口冲突, 本文下方有冲突的解决方法)




3, 进入File>Settings>PHP>Debug>DBGp Proxy 填写: 
IDE key: phpStorm 
host: localhost 
port: 80

设置完毕,点OK退出。

 

下面设置使用浏览器调试php的方法

点菜单栏的Run>Edit Configurations… 在弹出的窗口中添加一个调试配置:

点击左上角加号,选择PHP Web Application



填写完毕后,在代码里设置断点, 再开启电话icno监听, 点小甲壳虫启动调试




再下个浏览器插件, xdebug helper, 下载好之后点选项, IDE选PHPSTORM, 不想让所以网页显示小甲虫, 可以设置domain filter

下载地址:(注意, 本人使用php_xdebug-2.5.0-5.5-vc11-x86_64.dll版本时, 实测哪怕没有该浏览器插件也是可以调试的)

Xdebug helper_Xdebug helper插件_Xdebug helper下载_Xdebug helperchrome_酷容下载 

http://www.mykurong.com/extensions/xdebughelper/#download


基本完事了, 调试就点开电话图标监听, 设置好断点, 点小甲虫开启调试了, 刷新页面可见结果

或者手动在浏览器输入网址, 让执行自定义php脚本, 只要在url后加上参数XDEBUG_SESSION_START=整数 即可, 猜测是用于指示php拓展xdebug工作.

如这个格式的url: http://localhost/data/1.php?XDEBUG_SESSION_START=1




端口冲突解决办法:

注意如果是用浏览器调试, 因为要运行nginx或Apache, 和php-cgi进程, 所有端口上可能与xdebug冲突, 导致报类似下面的错:

windows下nginx根目录logs目录中的error.log日志文件可能有

CreateFile() "D:\Software\nginx-1.11.8/html/index.index" failed (2: The system cannot find the file specified), client: 127.0.0.1, server: localhost, request: "GET /index.index HTTP/1.1", host: "localhost"

或者

cmd下运行php-cgi.exe时报

Cannot bind/listen socket - [2] No such file or directory.
Couldn't create FastCGI listen socket on port 127.0.0.1:9000


这可能是因为默认php-cgi和nginx间就是使用9000端口通信, 所有可能会跟xdebug的端口冲突, 解决办法是:

1, 任务管理器中结束所有nginx和php-cgi进程

2, nginx.conf配置文件改成:

        location ~ \.php$ {
            root           html;

            #监听9001, 非xdebug使用的9000端口即可
            fastcgi_pass   127.0.0.1:9001;    
            fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

3, cmd下, 运行php-cgi.exe  -b 127.0.0.1:9001 -c "D:\Software\php\php.ini"  让php-cgi进程监听9001端口跟nginx通信

4, 双击运行或cmd下运行nginx.exe

5, 就可以继续使用phpstorm在浏览器调试php代码了

6, 当然也可以设置成xdebug和ide使用其他端口




2, phpstorm不使用浏览器调试php

如果想用phpstome不通过浏览器, 直接调试php脚本, 可以在上述步骤基础上, 继续:










实测, 可以不打开"电话"按钮进行监听也行.





  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要开启PHP调试,需要使用PHPStormXdebug。以下是步骤: 1. 在PHPStorm中安装Xdebug插件。 2. 在PHP.ini文件中启用Xdebug扩展。 3. 在PHPStorm配置Xdebug。 4. 在PHPStorm设置断点。 5. 在浏览器中访问需要调试PHP文件。 6. 在PHPStorm中启动调试会话。 7. 在PHPStorm调试代码。 以上是PHPStormXdebug开启PHP调试的基本步骤。具体操作可以参考相关文档或教程。 ### 回答2: 在使用PHP开发过程中,经常需要调试PHP代码以查找错误或进行代码优化。为此,我们可以使用PHPStormXdebug来开启PHP调试。 首先,我们需要在PHP安装目录下找到php.ini文件,在其中添加以下配置: ``` [xdebug] zend_extension=/path/to/xdebug.so xdebug.remote_enable=1 xdebug.remote_host="localhost" xdebug.remote_port=9000 ``` 其中,`path/to/xdebug.so`为Xdebug扩展的安装路径,可以在php.ini文件中查找extension_dir参数得到。`remote_enable`和`remote_host`分别表示开启远程调试和连接IP地址,`remote_port`表示连接端口。 接着,在PHPStorm中打开需要调试的项目,选择“Edit Configurations”,新建一个“PHP Remote Debug”配置项,配置如下: ``` Name:任意名称 Servers:点击加号选择“Add new server”,配置服务器名称、主机和端口号 IDE Key:PHPSTORM ``` 然后,我们需要用浏览器打开调试页面,此时Xdebug会自动连接PHPStorm,并暂停在第一行代码处。在PHPStorm中,我们点击“Step Over”或者“Resume Program”按钮进行调试调试时,可以通过断点、变量监视和表达式监视等功能来检查代码的执行过程和结果。 在调试完成后,需要在php.ini文件中将xdebug配置注释掉,避免对生产环境产生影响。 总之,使用PHPStormXdebug开启PHP调试可以提高开发效率和代码质量,使调试变得更加快速和准确。 ### 回答3: 在使用PHP开发时,我们经常需要进行调试,以检测代码中的问题并及时修复。phpstorm xdebug是一种强大的工具,可以帮助我们实现PHP代码的调试。在使用phpstorm xdebug时,我们需要进行以下步骤: 1. 安装xdebug 首先,我们需要在服务器上安装xdebug扩展。可以通过在Linux命令行上输入以下命令进行安装: ``` sudo apt-get install php-xdebug ``` 2. 在php.ini文件中配置xdebug 在安装xdebug扩展之后,我们需要在php.ini文件中进行配置。可以通过在Linux命令行上输入以下命令找到php.ini文件的路径: ``` php -i | grep php.ini ``` 然后,在php.ini文件中添加以下配置: ``` [xdebug] zend_extension=/usr/lib/php/20100525/xdebug.so xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 ``` 3. 在phpstorm配置xdebug 在打开phpstorm中的项目之后,我们需要配置xdebug,以便与我们的服务器进行通信。我们可以通过以下步骤进行配置: - 打开“Run”菜单,选择“Edit Configurations…” - 在左侧面板中选择“PHP Web Page” - 点击右侧的“+”按钮,然后输入“Name”和“Server”等信息 - 在“Debugger”选项卡中,选择“Xdebug” - 点击“OK”按钮保存配置 4. 使用phpstorm xdebug调试代码 当我们完成了以上步骤之后,就可以使用phpstorm xdebug进行代码调试了。我们可以在代码中设置断点,然后通过单击“Debug”按钮来启动调试器。当代码运行到断点时,phpstorm就可以自动停止执行,以便我们可以检查代码中的问题。同时,我们还可以使用phpstorm中的许多其他调试工具,以便更好地管理我们的代码。 总之,phpstorm xdebug是一种非常强大的工具,它可以帮助我们实现PHP代码的高效调试。通过上述步骤的操作,我们可以轻松地将xdebug集成到我们的PHP开发环境中,以便更好地管理我们的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值