服务器安装Xdebug并开启phpstorm监听浏览器或postman或eolinker远程调试全过程亲测记录

前言

如需了解Vagrant下CentOS的box安装Xdebug并开启phpstorm监听浏览器或postman或eolinker远程调试全过程,请点我

由于配置过程涉及IP、域名、项目目录,因此统一在这里先约定了,以便对照

服务器IP:192.168.1.8(假设这是公网IP)
客户机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

准备工作

登录先登录服务器,切换用户到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

至此扩展已经安装完成


现在开启刚安装的扩展

编辑php.ini文件

vi /usr/local/php/etc/php.ini

在末尾加上
特别注意不是extension=xdebug.so是zend_extension=xdebug.so,否则会报Xdebug MUST be loaded as a Zend extension

zend_extension=xdebug.so

重启php,如果你用的也是lnmp,那就执行

lnmp restart

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

php -m

看到如下截图表示已经成功:
在这里插入图片描述

修改Xdebug配置

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

vi /usr/local/php/etc/php.ini

在末尾加上你需要的配置,不加则使用默认,如需要修改远程端口,则在文档的末尾添加一行:

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"

重启php,如果你用的也是lnmp,那就执行

lnmp restart
配置防火墙,开启9001端口

编辑防火墙iptables配置

vi /etc/sysconfig/iptables

添加

-A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT

如果IDC服务商存在额外的防火墙,如阿里云需要在IDC服务商的防火墙控制面板开启9001端口的TCP访问,授权访问的IP填写你当前网络环境下的公网IP

配置phpstorm

添加ssh配置
在这里插入图片描述
添加部署
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
设置目录映射
在这里插入图片描述
配置远程php CLI解释器,php language level选择php版本7.3,然后如下图点击…按钮
在这里插入图片描述
根据下图点击
在这里插入图片描述
选择ssh配置,php7.3解释器所在路径,正常情况下如果没有做多php版本的服务器,只要根据下图选择即可然后点击ok:
在这里插入图片描述
选择debugger extension,也就是xdebug.so路径
类似这样的地址:/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
在这里插入图片描述点击ok后可以看到下图,记录点击ok
在这里插入图片描述
在这里插入图片描述
其中绿框部分显示的是目录映射信息,无需修改,此处显示可能每个人有所不同,phpstorm会根据deployment中的设置自动生成,切记一般是不需要修改的,其他信息也都不需要修改点击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配置验证显示无法通过,请忽略,无法通过原因可以参考如下解释:
因为目前大多数项目部署入口都是在类似public的目录下,如Thinkphp项目和Laravel项目,当配置映射时需要映射到整个项目目录,而debugger配置验证走的是整个项目的根目录,正常情况下该目录是没有直接URL访问权限的,所以是不可能通过的。当然如果是一些个别老项目,入口就在根目录下,那完全可以通过debugger配置验证。

整理记录不易,如果对您有用,请不要吝啬点赞!!
如需了解Vagrant下CentOS的box安装Xdebug并开启phpstorm监听浏览器或postman或eolinker远程调试全过程,请点我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章