简体   繁体   English

如何使用 VSCode / PHP XDebug / PHP Debug Extension 正确设置 VSCode 和 Wampserver 以便能够在断点线上进行调试和暂停?

[英]How to properly setup VSCode and Wampserver to be able to debug and pause on breakpoint line, using VSCode / PHP XDebug / PHP Debug Extension?

What do I need to do to resolve this issue preventing me from proceeding with debug on VSCode 1.51.0 using xdebug extension on php, along with PHP Debug Extension v 1.13.0 on VS Code by Felix Becker?我需要做些什么来解决这个问题,阻止我在 VSCode 1.51.0 上使用 xdebug 扩展在 php 上进行调试,以及 Felix Becker 在 VS Code 上使用 PHP Debug Extension v 1.13.0 进行调试?

httpd.conf配置文件

# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 81

launch.json启动文件

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            // Change back to php
            "type": "php",
            "request": "launch",
            "hostname": "localhost",
            "port": 81,
            "log": true,
            // Deprecated 
            // "localSourceRoot": "/var/www/html/mysite",
            // "serverSourceRoot": "/var/www/html/mysite",
            // server -> local
            "stopOnEntry": true,
            // "cwd": "${fileDirname}"
        },
        {
            "type": "pwa-chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://portaldev/",
            "webRoot": "${workspaceFolder}"
        }
    ]
}

Error in Console for Visual Studio - Run as Administrator Visual Studio 控制台中的错误 - 以管理员身份运行

  <- outputEvent
    OutputEvent {
      seq: 0,
      type: 'event',
      event: 'output',
      body: {
        category: 'console',
        output: 'Error: listen EACCES: permission denied 127.0.0.1:81\n' +
          '    at Server.setupListenHandle [as _listen2] (net.js:1289:21)\n' +
          '    at listenInCluster (net.js:1354:12)\n' +
          '    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1493:7)\n' +
          '    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:65:10) {\n' +
          "  code: 'EACCES',\n" +
          "  errno: 'EACCES',\n" +
          "  syscall: 'listen',\n" +
          "  address: '127.0.0.1',\n" +
          '  port: 81\n' +
          '}\n'
      }
    }
    Error: listen EACCES: permission denied 127.0.0.1:81
        at Server.setupListenHandle [as _listen2] (net.js:1289:21)
        at listenInCluster (net.js:1354:12)
        at GetAddrInfoReqWrap.doListen [as callback] (net.js:1493:7)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:65:10) {
      code: 'EACCES',
      errno: 'EACCES',
      syscall: 'listen',
      address: '127.0.0.1',
      port: 81
    }
    <- launchResponse
    Response {
      seq: 0,
      type: 'response',
      request_seq: 2,
      command: 'launch',
      success: false,
      message: 'listen EACCES: permission denied 127.0.0.1:81',
      body: {
        error: {
          id: 0,
          format: 'listen EACCES: permission denied 127.0.0.1:81',
          showUser: true
        }
      }
    }

Wampserver Configuration Settings httpd-vhosts.conf Wampserver 配置设置httpd-vhosts.conf

# Virtual Hosts
#
<VirtualHost *:81>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>


#
<VirtualHost *:81>
    ServerName portaldev
    DocumentRoot "c:/wamp64/www/portaldev"
    <Directory  "c:/wamp64/www/portaldev/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

#
<VirtualHost *:81>
    ServerName portallive
    DocumentRoot "c:/wamp64/www/liveportal"
    <Directory  "c:/wamp64/www/liveportal/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

What do I need to do to resolve this issue preventing me from proceeding with debug on VSCode 1.51.0 using xdebug extension on php, along with PHP Debug Extension v 1.13.0 on VS Code by Felix Becker?我需要做些什么来解决此问题,从而阻止我继续使用php上的xdebug扩展以及在VS Code上的PHP Debug Extension v 1.13.0(由Felix Becker进行)对VSCode 1.51.0进行调试?

httpd.conf httpd.conf

# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 81

launch.json launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            // Change back to php
            "type": "php",
            "request": "launch",
            "hostname": "localhost",
            "port": 81,
            "log": true,
            // Deprecated 
            // "localSourceRoot": "/var/www/html/mysite",
            // "serverSourceRoot": "/var/www/html/mysite",
            // server -> local
            "stopOnEntry": true,
            // "cwd": "${fileDirname}"
        },
        {
            "type": "pwa-chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://portaldev/",
            "webRoot": "${workspaceFolder}"
        }
    ]
}

Error in Console for Visual Studio - Run as Administrator Visual Studio控制台中的错误-以管理员身份运行

  <- outputEvent
    OutputEvent {
      seq: 0,
      type: 'event',
      event: 'output',
      body: {
        category: 'console',
        output: 'Error: listen EACCES: permission denied 127.0.0.1:81\n' +
          '    at Server.setupListenHandle [as _listen2] (net.js:1289:21)\n' +
          '    at listenInCluster (net.js:1354:12)\n' +
          '    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1493:7)\n' +
          '    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:65:10) {\n' +
          "  code: 'EACCES',\n" +
          "  errno: 'EACCES',\n" +
          "  syscall: 'listen',\n" +
          "  address: '127.0.0.1',\n" +
          '  port: 81\n' +
          '}\n'
      }
    }
    Error: listen EACCES: permission denied 127.0.0.1:81
        at Server.setupListenHandle [as _listen2] (net.js:1289:21)
        at listenInCluster (net.js:1354:12)
        at GetAddrInfoReqWrap.doListen [as callback] (net.js:1493:7)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:65:10) {
      code: 'EACCES',
      errno: 'EACCES',
      syscall: 'listen',
      address: '127.0.0.1',
      port: 81
    }
    <- launchResponse
    Response {
      seq: 0,
      type: 'response',
      request_seq: 2,
      command: 'launch',
      success: false,
      message: 'listen EACCES: permission denied 127.0.0.1:81',
      body: {
        error: {
          id: 0,
          format: 'listen EACCES: permission denied 127.0.0.1:81',
          showUser: true
        }
      }
    }

Wampserver Configuration Settings httpd-vhosts.conf Wampserver配置设置httpd-vhosts.conf

# Virtual Hosts
#
<VirtualHost *:81>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>


#
<VirtualHost *:81>
    ServerName portaldev
    DocumentRoot "c:/wamp64/www/portaldev"
    <Directory  "c:/wamp64/www/portaldev/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

#
<VirtualHost *:81>
    ServerName portallive
    DocumentRoot "c:/wamp64/www/liveportal"
    <Directory  "c:/wamp64/www/liveportal/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

php 7.3.5 WAMP php 7.3.5 WAMP

In my case i had to use the following:就我而言,我不得不使用以下内容:

zend_extension="c:/wamp64/bin/php/php7.3.5/zend_ext/php_xdebug-2.7.2-7.3-vc15-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/wamp/tmp"
xdebug.show_local_vars=0

and

  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen For XDebug",
      "type": "php",
      "port": 9000,
      "request": "launch"
    }
  ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM