本文将带您了解关于关于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)
- dedecms怎么进行单步调试
- Eclipse for php+Xdebug,搭建php单步调试环境
- eclipse luna 关于xdebug调试php的bug
- Ecplise + Xdebug 一波三折终于能单步调试了
关于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(1000, 9999)."</h1>");
});
$http->start();
这里需要在访问时加上一个XDEBUG_SESSION_START
参数或者在 Cookie 中添加也可以
浏览器访问http://127.0.0.1:9501/?XDEBUG_SESSION_START=xdebug
也是可以断点调试的
框架的使用也是同理的,至于其他的什么和 docker 一起使用等等自己研究吧...
这里放一张调试 Hyperf 的截图
还有一个 Tips,把右上角的电话图标选择为上图那样,会在命令行启动服务时自动调起 Debug 服务。
dedecms怎么进行单步调试
想利用Eclipse+phpnow搭建php运行环境,哪位可以指导
------解决方案--------------------
用zendstudio+zend debugger 可以实现单步调试。
具体安装方法,百度!
Eclipse for php+Xdebug,搭建php单步调试环境
环境
我的环境是Eclipse for php+nginx+xdebug。
工具
- Eclipse for php
- Xdebug
具体步骤
1. 安装Xdebug
立即学习“PHP免费学习笔记(深入)”;
- 把下载好的xdebug文件放在php的ext目录下。
- 修改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”进行配置。
- PHP Server我们选择新建一个。
最后剩下的Path Mapping可以不改。
选Finish,可以看到修改好的php server了。
OK,回到Properties界面,选择刚刚新建的php-test。
OK,php debug修改完。
最后还要配置一下Run->Debug Configurations。
所有配置完毕!
最后在Eclipse里测试一下:
如果没问题Eclipse会自动进入debug模式。
PS:也可以在浏览器输入网址访问,这时如果你的eclipse是打开的,而且php.ini的xdebug打开了,配置也没问题的话也是会进入eclipse的debug状态的。
好了,大家慢慢享受单步调试的乐趣吧哈哈哈~~~
参考文章:
Eclipse for php + Xdebug搭建PHP的调试环境
以上就介绍了Eclipse for php+Xdebug,搭建php单步调试环境,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
eclipse luna 关于xdebug调试php的bug
刚刚下载了最新版本的eclipse,版本号为: Luna Service Release 1 (4.4.1),就迫不及待的安装了xdebug和pdt,但是调试的时候发现单步执行不了,程序有在执行,但是断点位置没有变化,不知道是不是eclipse新版本的出现问题了。在linux和window下好像都存在这样的问题,不知道大家使用的时候是否有相同的遭遇。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 一波三折终于能单步调试了的相关知识,请在本站进行查询。
本文标签: