Vagrant下CentOS的box安装Xdebug并开启phpstorm监听浏览器或postman或eolinke

由于配置过程涉及IP、域名、项目目录,因此统一在这里先约定了,以便对照
服务器IP:192.168.1.8
客户机IP:192.168.1.16(也就是开发机)
项目名称:kol_server
项目所在客户机目录:E:\wwwroot\kol_server
项目所在服务器目录:/home/wwwroot/kol_server
vagrant目录映射:E:\wwwroot=》/home/wwwroot/
项目域名:admin.kol.test.com
项目php版本:7.3
192.168.1.8服务器对应的vagrant实例所在目录:E:\CentOS7.7_lnmp1.6
该目录差不多长下图这个样子:

准备工作
登录先登录服务器,切换vagrant用户到root用户

安装xdebug
选择需要下载的xdebug扩展源码包:https://xdebug.org/download
这里我们假设一个场景:
环境用的是lnmp.org所提供的lnmp1.6版一键安装包,PHP版本用的是php-7.3.11
下载的扩展源码包我打算放在/home下,我打算安装的xdebug扩展版本是Xdebug 2.9.5,那下载后源码包的路径是:

/home/xdebug-2.9.5.tgz
考虑到操作的便捷性此处用一句话命令囊括安装的命令:

cd /home && wget https://xdebug.org/files/xdebug-2.9.5.tgz && tar zxvf xdebug-2.9.5.tgz && cd xdebug-2.9.5 && phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
1
至此扩展已经安装完成

现在开启刚安装的扩展
编辑php.ini文件

vi /usr/local/php/etc/php.ini
1
在末尾加上
特别注意不是extension=xdebug.so是zend_extension=xdebug.so,否则会报Xdebug MUST be loaded as a Zend extension

zend_extension=xdebug.so
1
重启php,如果你用的也是lnmp,那就执行

lnmp restart
1
最后验证扩展是否成功安装并生效,执行以下命令:

php -m
1
看到如下截图表示已经成功:


修改Xdebug配置
默认配置可参考官方配置项,编辑php.ini文件

vi /usr/local/php/etc/php.ini
1
在末尾加上你需要的配置,不加则使用默认,如需要修改远程端口,则在文档的末尾添加一行:

xdebug.idekey = "vagrant"
xdebug.default_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9001
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler="dbgp"
1
2
3
4
5
6
7
重启php,如果你用的也是lnmp,那就执行

lnmp restart
1
配置防火墙,开启9001端口
编辑防火墙iptables配置

vi /etc/sysconfig/iptables
1
添加

-A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT
1
配置phpstorm
配置远程php CLI解释器,php language level选择php版本7.3,然后如下图点击…按钮

根据下图点击

选择vagrant选择192.168.1.8服务器实例所在目录,选择php7.3解释器所在路径,正常情况下如果没有做多php版本的服务器,只要根据下图选择即可,并在显示successfully connected to 127.0.0.1后点击ok:

选择debugger extension,也就是xdebug.so路径
类似这样的地址:/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so

点击ok后可以看到下图,记录点击ok

其中绿框部分显示的是目录映射信息,无需修改,此处显示可能每个人有所不同,那是因为Vagrantfile配置不一样,phpstorm会根据您之前的选择及Vagrantfile的配置自动生成,切记一般是不需要修改的,其他信息也都不需要修改点击ok保存即可!
设置xdebug远程访问端口

配置DBGp Proxy
Host是服务器IP

添加网站服务器


Name是Server名称,可以随便填写;
Host为你调试项目是访问的IP或者域名.
假设你的访问路径为“http://192.168.1.102/project/…”,那这里配置成192.168.1.102。
假设你的访问路径为“http://www.abc.com/index.php”,那这里配置成www.abc.com;
Port为你Web服务器的端口,一般为80。
除此之外还需要配置项目路径的映射(path mapping),将项目的根目录以及public目录映射到Vagrant服务器中的绝对路径。

设置Run/Debug Configurations


上图所示的server选择之前添加的kol_server,选择你调试用的浏览器,默认chrome,其他信息无需修改,点击ok保存即可

下载Xdebug helper浏览器扩展在这里插入图片描述

在这里插入图片描述
debug调试
开启debug监听

设置断点

假设kol_server项目是通过thinkphp开发的,最简单的测试方式在入口文件index.php中设置断点如下图:


使用浏览器调试
假设之前设置的调试浏览器是chrome,那么通过chrome访问kol_server项目域名admin.kol.test.com,默认情况下插件开启的是debug模式,如需切换可以点击浏览器如下图所示图标,进行切换。
正常模式下一旦访问phpstorm即可响应来自xdebug的入站响应

使用eolinker或者postman调试
需要在header请求头部添加Cookie
XDEBUG_SESSION=vagrant
如下图:


请注意,关于debugger配置验证显示无法通过,请忽略,无法通过原因可以参考如下解释:
个人感觉是因为vagrant的原因导致的,类似之前遇到过的nodejs无法安装扩展,主要是因为验证过程是瞬间完成的,而由于开发需要我做了E:\wwwroot\与/home/wwwroot/映射,由于是映射有一个加载过程,而验证快过了加载,所以导致了验证失败,这个可能性非常高,因为怀疑,我曾尝试快速点击验证,曾出现过因为验证文件尚未删除而进入loading验证环节的情况。
如果大家有找到原因并不是我所说的这种情况,还请麻烦留言告知,谢谢!
————————————————

php中直接执行mysqli_init()也是报Property access is not allowed yet的错误。

xdebug.auto_trace = On 和 xdebug.profiler_enable = On注释掉就OK了,不知道这两个配置项是干嘛的

Docker 下面的xdebug配置:

[xdebug]
zend_extension=xdebug.so
;启用性能检测分析
xdebug.profiler_enable=Off
;启用代码自动跟踪
xdebug.auto_trace=Off
;允许收集传递给函数的参数变量
xdebug.collect_params=on
;允许收集函数调用的返回值
xdebug.collect_return=on
;调试端口
xdebug.show_exception_trace = On ;开启异常跟踪
xdebug.remote_autostart = Off ;开启远程调试自动启动
xdebug.remote_enable = On ;开启远程调试
xdebug.remote_port = 9001
xdebug.idekey=PHPSTORM
xdebug.remote_log=/tmp/xdebug_remote.log
;xdebug.remote_connect_back = On
xdebug.remote_host=10.227.66.20 ;配置宿主机ip,防止宿主机ip每天变动

选项说明:

remote_port:这个选项是给phpstorm客户端使用的,所以在php/debug/debug port下面一定要使用这个端口进行通信。也即是远程调试端口。

#允许远程调试
xdebug.remote_enable=1

#如果配置该项就不需要配xdebug.remote_host
xdebug.remote_remote_connect_back=1

#调试器的关键字
xdebug.idekey=”PHPSTORM”
配置完成后重启php-fpm 记得加-R 使用root用户启动

下图是docker-compose之debug的关键,需要配置目录映射。注意

这个图中注意选择service为php软件所在的service. 

需要回头总结的文章:

Docker-compose + postman + phpstorm + xdebug 调试接口_胖子不会飞的博客-CSDN博客


版权声明:本文为CSDN博主「U.R.M.L」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/urmljyc/article/details/106399590

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值