zoukankan      html  css  js  c++  java
  • PHP vscode+XDebug 远程断点调试服务器上的代码

    对于简单的项目或仅仅想知道某一位置的某个变量是什么值,直接使用var_dump配置exit来打印和中断就可以了,方便又快捷,

    而对于大型项目的调试,或想了解某个系统的整个运行过程,xdebug可能会是更好的选择。

    网上大多数xdebug教程中的项目代码和运行环境是配置在本地,IDE也是在本地,

    而我所使用的环境是运行于远程服务器中,所以xdebug配置起来稍有不同。

    环境介绍:
    本地:win10 + vscode
    远程:CentOS + LNMP + xdebug

    即PHP的运行环境在远程服务器中,项目代码放在本地,使用nfs共享映射到虚拟机中运行。

     编译安装 xdebug 可以参考下面的官方文档:

    https://xdebug.org/wizard

    1.ssh到虚拟机,检查并安装php的xdebug扩展

    2.配置php.ini中的xdebug

    zend_extension=xdebug.so
    [XDebug]
    xdebug.remote_enable = on
    xdebug.remote_autostart = 1
    ;xdebug.remote_host = host.docker.internal
    xdebug.remote_port = 9001
    xdebug.remote_connect_back = 0
    xdebug.auto_trace = 1
    xdebug.collect_includes = 1
    xdebug.collect_params = 1
    xdebug.remote_log = /tmp/xdebug.log

    “remote_enable”是允许远程调试
    “remote_autostart”远程调试自动启动?
    “remote_host”是指定通过哪个IP进行远程调试,也就是你IDE所在的IP(这里是192.168.10.1即是我本地,但当下面remote_connect_back设置了时,这个IP设置无效,所以我注释了),
    “remote_port”是在vscode中设置的监听端口,是本地的端口哦~ 即当开始调试时,xdebug将与这个端口通讯
    “remote_connect_back”不知道是什么意思,只是如果开启此,将忽略上面的 xdebug.remote_host 的设置
    其它的可自行搜索xdebug配置说明。

    3. 重启php-fpm,或web环境

    4.vscode中安装插件”PHP Debug”

    5.配置launch.json

    {
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "stopOnEntry":false,
        "localSourceRoot": "Z://php_project/",
        "serverSourceRoot": "/home/ryan/php_project/",
        "port": 9001
    },
    {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9001
    }

    以上,其中”localSourceRoot”是项目代码在本地的路径,设置的值是当前工作区根目录,也就是我项目根目录。

    ”serverSourceRoot”是远程虚拟机中的代码路径,”port”是本地IDE在debug时会监听的端口,远程xdebug与vscode通信时就是使用这个端口。

    以上设置完毕后就可以开始断点调试!!!

    参考链接:

    https://www.zh30.com/vscode-xdebug-remote-vagrant-php.html

  • 相关阅读:
    因果,稳定,无源,无损系统(1)
    傅里叶变化公式解析(1)
    线性时不变系统(1)
    数字信号常用典型序列(1)
    k均值聚类(1)
    jupyter notebook configtips
    gitlab搭建,结合pycharm和vs2015配置用于开发python和c++
    wordpress网站迁移
    本地电脑通过Navicat连接阿里云的Mysql数据库
    ubuntu安装时系统分区设置
  • 原文地址:https://www.cnblogs.com/ryanzheng/p/10575790.html
Copyright © 2011-2022 走看看