使用Xdebug在虚拟Vagrant框上调试文件

时间:2017-05-18 20:58:27

标签: vagrant phpstorm xdebug

我的MacBook上有一个Vagrant虚拟机,上面有一个运行的网站。

我想检查名为$ logs的变量中的内容。我已经使用Chrome扩展程序在浏览器中设置了cookie,我正在监听PHP调试连接,并且我设置了一个断点。如果我选择“运行”菜单并单击“调试sitelog.module”,我会收到一些错误。

我不确定如何配置?我的最终目标是检查$ logs的内容。感谢。

1 个答案:

答案 0 :(得分:1)

我不再使用cookie进行调试,因为我发现在xdebug中启用remote debugging更容易调试。

无论如何,我建议您首先创建一个PHP Web应用程序并为该Web应用程序定义一个服务器。要做到这一点:

  1. 导航栏可见(视图|导航栏),可用的运行/调试配置显示在“运行”区域的运行/调试配置选择器中。
  2. enter image description here

    1. 在“运行/调试配置”对话框中,单击工具栏上的+(添加)。下拉列表显示默认的运行/调试配置。选择所需的配置类型(即:PHP Web应用程序)。

    2. 通过单击“服务器”下拉列表旁边的“...”图标为此配置设置服务器。

    3. enter image description here

      1. 在“服务器”配置中,填写名称,主机和端口,然后选中使用路径映射复选框。

      2. 定义路径映射,在左侧(主机)选择所需路径,然后提供到访客中相同位置的路径(在为路径定义路径后按输入字段上的Enter键客机)。

      3. enter image description here

        有了这个,您应该能够使用XDEBUG cookie进行调试。如果您想尝试远程调试选项(IMO更简单),请将其添加到您的xdebug.ini

        zend_extension=xdebug.so
        xdebug.auto_trace="0"
        xdebug.trace_output_dir="/vagrant"
        xdebug.trace_output_name="trace.%c"
        xdebug.trace_format="2"
        xdebug.trace_options="0"
        xdebug.collect_includes="1"
        xdebug.collect_params="0"
        xdebug.collect_return="0"
        xdebug.collect_vars="0"
        xdebug.default_enable="1"
        xdebug.extended_info="1"
        xdebug.manual_url="http://www.php.net"
        xdebug.max_nesting_level="256"
        xdebug.show_error_trace="0"
        xdebug.show_exception_trace="0"
        xdebug.show_local_vars="0"
        xdebug.show_mem_delta="1"
        xdebug.dump.COOKIE="NULL"
        xdebug.dump.ENV="NULL"
        xdebug.dump.FILES="NULL"
        xdebug.dump.GET="NULL"
        xdebug.dump.POST="NULL"
        xdebug.dump.REQUEST="NULL"
        xdebug.dump.SERVER="NULL"
        xdebug.dump.SESSION="NULL"
        xdebug.dump_globals="1"
        xdebug.dump_once="1"
        xdebug.dump_undefined="0"
        xdebug.overload_var_dump="2"
        xdebug.profiler_enable="0"
        xdebug.profiler_output_dir="/vagrant"
        xdebug.profiler_output_name="cachegrind.out.%p"
        xdebug.profiler_enable_trigger="0"
        xdebug.profiler_append="0"
        xdebug.profiler_aggregate="0"
        xdebug.remote_enable="1"
        xdebug.remote_handler="dbgp"
        xdebug.remote_host="192.168.33.1"
        xdebug.remote_mode="req"
        xdebug.remote_port="9000"
        xdebug.remote_autostart="1"
        xdebug.remote_log=""
        xdebug.idekey=""
        xdebug.var_display_max_data="512"
        xdebug.var_display_max_depth="2"
        xdebug.var_display_max_children="128"
        

        确保根据需要调整remote_host ip。将此更改保存到xdebug.ini后,启动调试所需要做的就是启用开始侦听PHP调试连接图标(看起来像电话)。

        enter image description here

        参考:

        How to set up Run/Debug Configurations