GVKun编程网logo

关于PHP:Swoole 如何使用 Xdebug 进行单步调试!(swoole php-fpm)

15

本文将带您了解关于关于PHP:Swoole如何使用Xdebug进行单步调试!的新内容,同时我们还将为您解释swoolephp-fpm的相关知识,另外,我们还将为您提供关于dedecms怎么进行单步调试

本文将带您了解关于关于PHP:Swoole 如何使用 Xdebug 进行单步调试!的新内容,同时我们还将为您解释swoole php-fpm的相关知识,另外,我们还将为您提供关于dedecms怎么进行单步调试、Eclipse for php+Xdebug,搭建php单步调试环境、eclipse luna 关于xdebug调试php的bug、Ecplise + Xdebug 一波三折终于能单步调试了的实用信息。

本文目录一览:

关于PHP:Swoole 如何使用 Xdebug 进行单步调试!(swoole php-fpm)

关于PHP:Swoole 如何使用 Xdebug 进行单步调试!(swoole php-fpm)

在 PHP-FPM 中使用 Xdebug 的人应该不少,而在 Swoole 中使用 Xdebug 的人还是很少的,原因是 Swoole 扩展明确说明了和 Xdebug 扩展冲突

之前在 Swoole 文档中补充了 Sdebug 的安装,同样的 Sdebug 的 README 也进行了修改介绍如何安装,不过都是简单说明如何成功加载扩展,没有详细说明配置

先说一下如何安装 Sdebug

为了避免 Swoole 的检测 Xdebug 警告,所以扩展注册的名称是 Sdebug

git clone git@github.com:swoole/sdebug.git -b sdebug_2_9 --depth=1

cd sdebug

phpize
./configure
make clean
make
make install

步骤很简单,就是 clone 源码,进入目录然后编译

如果你的 PHP 是通用安装,没有修改默认位置等等,也可以直接运行目录下的脚本:

./rebuild.sh

如果你的 phpize 不是默认路径的话,请使用绝对路径;同样的 php-config 需要使用--with-php-config=加上你的绝对路径

编译成功后需要在 php.ini 加载扩展

zend_extension=xdebug.so

编译完成后生成的 so 文件名还是 xdebug

查看是否加载成功

php --ri sdebug

别走,还没完,还需要一些其他的配置,不然你去断点会发现不起作用

我们还需要在 php.ini 中加入这几个配置项

xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=localhost
xdebug.remote_port=8000
xdebug.idekey="xdebug"

一个配置难倒英雄汉,很多人在使用 Sdebug 的时候就会遇到需要这样问题,不起作用,就吐槽不好用,实际上是你的姿势不对,配置项没加或者加错了

需要配合 PhpStorm 的话,还需要设置一下 PhpStorm 的配置

Preferences | Languages & Frameworks | PHP | Debug

1 是为了我们不加断点的时候,自动给第一行断点

2 是修改配置的remote_port端口

Preferences | Languages & Frameworks | PHP | Servers

添加一个服务

紧接着在右上角这里添加一个调试,选择 PHP Remote Debug

server 选择我们刚才创建的 server,IDE key 就填我们 php.ini 中配置的xdebug

然后我们来试验一波,看看好不好使

先来一个简单的 TCP Server

//创建Server对象,监听 127.0.0.1:9501 端口
$server = new Swoole\Server(''127.0.0.1''9501);

//监听连接进入事件
$server->on(''Connect''function ($server, $fd) {
    echo "Client: Connect.\n";
});

//监听数据接收事件
$server->on(''Receive''function ($server, $fd, $from_id, $data) {
    var_dump($data);
    $server->send($fd, "Server: " . $data);
});

//监听连接关闭事件
$server->on(''Close''function ($server, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$server->start();

点击右上角的绿色虫子进入 Debug 状态,启动我们的服务,会发现自动断在了第 4 行创建 Server 对象的地方

然后下一步下一步...

start 之后我们使用 telnet 进行连接,发送一个消息,断点就进入到 Connect 这里,然后我们再下一步,终端才会输出Connect

紧接着我们会到 var_dump 的地方,就可以看到$data 的值是11111\r\n

然后来一个 HTTP Server

$http = new Swoole\Http\Server(''0.0.0.0''9501);

$http->on(''request''function ($request, $response) {
    var_dump($request->server);
    $response->header("Content-Type""text/html; charset=utf-8");
    $response->end("<h1>Hello Swoole. #".rand(10009999)."</h1>");
});

$http->start();

这里需要在访问时加上一个XDEBUG_SESSION_START参数或者在 Cookie 中添加也可以

浏览器访问http://127.0.0.1:9501/?XDEBUG_SESSION_START=xdebug

也是可以断点调试的

框架的使用也是同理的,至于其他的什么和 docker 一起使用等等自己研究吧...

这里放一张调试 Hyperf 的截图

还有一个 Tips,把右上角的电话图标选择为上图那样,会在命令行启动服务时自动调起 Debug 服务。

dedecms怎么进行单步调试

dedecms怎么进行单步调试

dedecms如何进行单步调试
想利用Eclipse+phpnow搭建php运行环境,哪位可以指导

------解决方案--------------------
用zendstudio+zend debugger 可以实现单步调试。
具体安装方法,百度!

Eclipse for php+Xdebug,搭建php单步调试环境

Eclipse for php+Xdebug,搭建php单步调试环境

环境

我的环境是Eclipse for php+nginx+xdebug。

工具

  • Eclipse for php
  • Xdebug

具体步骤

1. 安装Xdebug

立即学习“PHP免费学习笔记(深入)”;

  • 把下载好的xdebug文件放在php的ext目录下。

Eclipse for php+Xdebug,搭建php单步调试环境

  • 修改php.ini

在PHP文件夹里面找到php.ini,在这个文件的最后面加入如下配置信息:
【PS:“;”开头的语句为注释语句。我的xdebug版本为php_xdebug-2.4.0rc3-5.6-vc11.dll】

zend_extension = F:\DevEnv\PHP\ext\php_xdebug-<span>2.4</span><span>.0</span>rc3-<span>5.6</span>-vc11<span>.dll</span><span>;zend_extension_ts = F:\DevEnv\PHP\ext\php_xdebug-2.4.0rc3-5.6-vc11.dll</span><span>;extension = php_xdebug-2.4.0rc3-5.6-vc11.dll</span>[Xdebug]
xdebug<span>.auto</span>_trace = On
xdebug<span>.show</span>_exception_trace = On
xdebug<span>.remote</span>_autostart = On
xdebug<span>.remote</span>_enable = On
xdebug<span>.collect</span>_vars = On
xdebug<span>.collect</span>_return = On
xdebug<span>.collect</span>_params = On
xdebug<span>.trace</span>_output_dir=”D:/xDebugLog”
xdebug<span>.profiler</span>_output_dir=”D:/xDebugLog”
xdebug<span>.profiler</span>_enable=On
xdebug<span>.remote</span>_host=localhost
xdebug<span>.remote</span>_port=<span>9000</span>
xdebug<span>.remote</span>_handler=dbgp
登录后复制
  • 修改好后启动nginx与php。【PS:php本来已经启动的话要重新启动,因为修改了配置。】

2. 配置Eclipse

  • 在Eclipse里打开项目,在项目的Properties里面找到”PHP Debug”进行配置。

Eclipse for php+Xdebug,搭建php单步调试环境


- PHP Server我们选择新建一个。

Eclipse for php+Xdebug,搭建php单步调试环境

Eclipse for php+Xdebug,搭建php单步调试环境

Eclipse for php+Xdebug,搭建php单步调试环境

最后剩下的Path Mapping可以不改。

选Finish,可以看到修改好的php server了。

Eclipse for php+Xdebug,搭建php单步调试环境

OK,回到Properties界面,选择刚刚新建的php-test。

Eclipse for php+Xdebug,搭建php单步调试环境

OK,php debug修改完。

最后还要配置一下Run->Debug Configurations。

Eclipse for php+Xdebug,搭建php单步调试环境

Eclipse for php+Xdebug,搭建php单步调试环境

Eclipse for php+Xdebug,搭建php单步调试环境

所有配置完毕!

最后在Eclipse里测试一下:
Eclipse for php+Xdebug,搭建php单步调试环境

如果没问题Eclipse会自动进入debug模式。
Eclipse for php+Xdebug,搭建php单步调试环境

PS:也可以在浏览器输入网址访问,这时如果你的eclipse是打开的,而且php.ini的xdebug打开了,配置也没问题的话也是会进入eclipse的debug状态的。

好了,大家慢慢享受单步调试的乐趣吧哈哈哈~~~

参考文章:
Eclipse for php + Xdebug搭建PHP的调试环境

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了Eclipse for php+Xdebug,搭建php单步调试环境,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

eclipse luna 关于xdebug调试php的bug

eclipse luna 关于xdebug调试php的bug

刚刚下载了最新版本的eclipse,版本号为: Luna Service Release 1 (4.4.1),就迫不及待的安装了xdebug和pdt,但是调试的时候发现单步执行不了,程序有在执行,但是断点位置没有变化,不知道是不是eclipse新版本的出现问题了。在linux和window下好像都存在这样的问题,不知道大家使用的时候是否有相同的遭遇。

Ecplise + Xdebug 一波三折终于能单步调试了

Ecplise + Xdebug 一波三折终于能单步调试了

php Version 5.2.13

apache  2.2

Xdebug  2.1.2 VC6 32bit

eclipsePHP 官网的

以上全部下载齐全,保证版本正确。

1:将下载的Xdebug文件复制到安装php文件的ext文件下

2:设置phpini文件,支持Xdebug, 在最后添加

[Xdebug]
zend_extension_ts="D:/Program Files/php-5.2.13-Win32/ext/php_xdebug-2.1.2-5.2-vc6.dll"
;开启自动跟踪
xdebug.auto_trace=1
;开启异常跟踪
xdebug.show_exception_trace=1
;开启远程调试自动启动
xdebug.remote_autostart=1
;开启远程调试
xdebug.remote_enable=1

xdebug.collect_params=On
xdebug.collect_return=On
;设定函数调用监测信息的输出文件的路径。
xdebug.trace_output_dir="d:\xdebug"
;打开效能监测器。
xdebug.profiler_enable=On  
;设定效能监测信息输出文件的路径。
xdebug.profiler_output_dir="d:\xdebug" 
xdebug.max_nesting_level=2000
xdebug.remote_host=localhost 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp

3:设置Eclipse,

window - preferences 下图:





4:继续如下图:




5:网上从没有介绍的关键点来了,下几张图很重要

点击,如下:


再点击,如下:


重点来了,1处可以任意填写  2处填写时注意,要和你apache  httpd.conf中,下图红色箭头处一致,


在eclipse里新建一个项目叫php:

如下图;


同时php下新建一个index.php,在浏览器访问www.test.com,就能看到index.php里的内容了(以上注意两点,第一,我们这里叫php,后面要用到,第二,项目的路径要和DocumentRoot D:/workspace/Test中一致)

现在只要不用Xdebug是没问题的,浏览器正常浏览,直接www.test.com就行。

现在Xdebug,在index.php中打个断点,鼠标右键,DebugAS -> Debug Web Page->图:


现在点击OK,会报404,根本访问不了,断点也不能用,仔细看LunchURL会发现是http://www.test.com//php/index.php,换成绝对路径就是D:/workspace/Test/php/index.php,而电脑上根本没有这个地址,index.php实际地址是D:/workspace/Test/index.php,所以我们只要把php去掉,让成为正确的url地址就可以了,或者把建项目的时候一开始就叫Test,这样变成D:/workspace/Test/Test/index.php,再把 httpd.conf改成<VirtualHost *:80>
                        ServerAdmin admin@t.com
                        DocumentRoot D:/workspace
                        ServerName www.test.com
                        <Directory "D:/workspace">
                        AllowOverride All
                        </Directory>
                        </VirtualHost>

重启apache,现在www.test.com 就是D:/workspace,点击右键debug时,你会发现urL变成了www.test.com/Test/index.php,换成绝对路径就是D:/workspace//Test/index.php,这个地址是存在的。

总结,之所以不能Xdebug是因为路径问题,而这些路径的在debug时,拼接有误造成的,你可以到

这个小虫子的菜单,debug  configrations里看下,你会发现奥秘的:如下图:





今天的关于关于PHP:Swoole 如何使用 Xdebug 进行单步调试!swoole php-fpm的分享已经结束,谢谢您的关注,如果想了解更多关于dedecms怎么进行单步调试、Eclipse for php+Xdebug,搭建php单步调试环境、eclipse luna 关于xdebug调试php的bug、Ecplise + Xdebug 一波三折终于能单步调试了的相关知识,请在本站进行查询。

本文标签: