美文网首页ThinkPHPphpstromPHP实战
PHPStrom远程调试服务端

PHPStrom远程调试服务端

作者: 木兮家先生 | 来源:发表于2017-03-02 12:09 被阅读188次

最近修改遗留的php服务端,我一个php新手,对php不熟悉。这服务端修改起来全靠打log。真心累。在想能不能单步调试服务端,这样调试起来不就一览无余明朗多了,客户端app只要一请求,ide就停在断点上,供我调试。果然Google一阵后phpstrom没让我失望

1 开发环境上安装phpStrom

2 服务端安装php xdebug

3 xdebug配置

将 php.ini 最后加入如下信息

[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"  # 这是xdebug扩展路径
xdebug.idekey="PHPSTORM"
xdebug.remote_host=127.0.0.1 
xdebug.remote_enable=on
xdebug.remote_port=9001  # 端口号,可自定义
xdebug.remote_handler = dbgp

4 PHPStrom设置

打开设置 Language & Framework -> PHP -> Debug 设置 xdebug端口和pip.ini一致

Paste_Image.png

打开设置 Language & Framework -> PHP -> Server 配置

添加一个服务器,配置服务地址 端口,debuger要选 xdebug 。要配置服务器端代码和本地代码直接的文件路径映射

1.png

编辑run/debug配置 增加一个 php web application ,选择刚刚增加的server

Paste_Image.png

打开 debug监听

点击 电话的那个按钮变成如图的状态

Paste_Image.png

5 设置端口映射

以上已经配置就绪。但是服务端的debug信息无法直接下发到客户端。还记得前面php.ini里的配置 ,remote_host地址是localhost ,相当于php环境收到的debug信息是转发给,127.0.0.1:9001的。我的ide是无法收到调试信息的。如果我们的pc有公网ip。那直接把remote_host配置成自己的ip就行了。如果没有需要设置一下端口映射。执行下面命令即可。

ssh -R 9001:localhost:9001 root@服务器的IP地址

前面的9001是要转发的服务器的debug端口。后面的9001是 phpstrom监听的debug端口

6 开始调试

通过在请求里面带上 XDEBUG_SESSION 参数,并且把参数值设置为之前XDebug里面配置的“idekey”的值,我们设置的是PHPSTROM 就可以激活服务端的调试。

例如,可以在POST或者GET参数里面加上 XDEBUG_SESSION=PHPSTORM,服务端就会启动调试了。 比如我们要调试 http://www.abc.com/test.php,那么访问链接http://www.abc.com/test.php?XDEBUG_SESSION=PHPSTORM 就可以启动调试了。

具体的原理是这样的,服务端收到请求后,XDebug会检查参数里面的XDEBUG_SESSION值是否等于“idekey”的值,如果相等,那么就说明需要调试,否则就不调试。这个参数也可以设置在Cookie里面。为了调试方便,可以把下面的两端脚本作为链接收藏到书签栏,每次如果要调试就调用第一段脚本在Cookie里面写入XDEBUG_SESSION参数,如果要停止调试,那么就调用第二段脚本移除XDEBUG_SESSION参数的值。

javascript:(function() {document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})()

javascript:(function() {document.cookie='XDEBUG_SESSION='+''+';expires=Mon, 05 Jul 2000 00:00:00 GMT;path=/;';})()

当然,如果我们调试的app端的api。我们只要在请求的时候增加一个 参数 'XDEBUG_SESSION='+'PHPSTORM'即可。当客户端出现请求,如果你设置了断点就会立即停止在断点,供你调试,单步执行,对于新手爽歪歪

相关文章

  • PHPStrom远程调试服务端

    最近修改遗留的php服务端,我一个php新手,对php不熟悉。这服务端修改起来全靠打log。真心累。在想能不能单步...

  • 开发 -- phpStrom 安装与远程访问使用

    phpStrom 安装与远程访问使用 下载phpstrom 安装phpstrom 打开phpstrom 选择Cr...

  • springboot远程debug

    两种调试 远程调试分为主动连接调试,和被动连接调试: 主动连接调试:服务端配置监控端口,本地IDE连接远程监听端口...

  • phpstrom (xdebug)远程断点调试 homestea

    1.本地调试可以参考:https://www.cnblogs.com/LWMLWM/p/8251905.html2...

  • idea远程debug

    远程调试 使用特定JVM参数运行服务端代码 要让远程服务器运行的代码支持远程调试,则服务器端的jar包启动的时候必...

  • idea配置远程debug

    所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运...

  • PHP Interpreter is not configure

    PHPStrom创建项目后,调试运行,PHPStrom出现下图问题: 浏览器则出现下图问题: 原因:PHP解析器没...

  • IDEA调试服务器上部署的程序

    使用特定JVM参数运行服务端代码: 要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这...

  • CentOS7 desktop openstack queens

    引用 neutron通过pycharm调试Pycharm 下远程调试 Neutron 简介 远程代码同步 远程调试...

  • 调试手段

    本地调试 远程调试

网友评论

    本文标题:PHPStrom远程调试服务端

    本文链接:https://www.haomeiwen.com/subject/frmhgttx.html