Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 拉拉多克+;PhpStorm&x2B;Xdebug失败,而phpsform验证成功_Debugging_Docker_Networking_Phpstorm_Xdebug - Fatal编程技术网

Debugging 拉拉多克+;PhpStorm&x2B;Xdebug失败,而phpsform验证成功

Debugging 拉拉多克+;PhpStorm&x2B;Xdebug失败,而phpsform验证成功,debugging,docker,networking,phpstorm,xdebug,Debugging,Docker,Networking,Phpstorm,Xdebug,我已为PhpStorm设置调试配置,并已通过PhpStorm成功验证: 还安装了用于Chrome的Xdebug helper 问题是,当我开始监听调试连接并在打开Xdebug helper的情况下重新加载所需页面时,什么也没有发生。我也试过了,但运气不好 没有错误什么的,什么都没有 还尝试将不同的IP设置为dockerhost:from 192.168。。范围(从网络设置)、从172.*范围(从nginx)、从10.*范围(10.0.75.1为默认值)。还尝试了docker.for.mac.i

我已为PhpStorm设置调试配置,并已通过PhpStorm成功验证:

还安装了用于Chrome的Xdebug helper

问题是,当我开始监听调试连接并在打开Xdebug helper的情况下重新加载所需页面时,什么也没有发生。我也试过了,但运气不好

没有错误什么的,什么都没有

还尝试将不同的IP设置为dockerhost:from 192.168。。范围(从网络设置)、从172.*范围(从nginx)、从10.*范围(
10.0.75.1
为默认值)。还尝试了
docker.for.mac.internal.host,当容器启动时失败


Docker 17.02,macOS Sierra,PhpStorm 2017.3

如果您使用的是linux,请确保在防火墙中创建相应的规则

但是为了更有效地解决这个问题,你需要收集更多的信息

  • 在您的系统中启用xdebug日志
    xdebug.remote\u log=/var/www/xdebug.log
    或者您可以将其附加到PHPStorm(xdebug.remote_log,/path/inside/workspace/container/xdebug.log)中的“Cli解释器>配置选项”中

  • 您可以采取的另一个步骤是监视机器的传入连接。(在安装docker的位置运行此操作)。它将开始侦听端口9000上的所有传入连接尝试

  • sudo tcpdump-i任何端口9000

    现在运行一次调试器,检查容器内的日志(默认情况下为工作区),并查看是否有来自容器的任何传入连接尝试

    如果您看到连接到客户端时超时(等待:200毫秒):-(
    ),您的防火墙可能正在阻止传入的连接

    要打开它们,可以使用ufw添加规则

    sudo ufw允许从172.22.0.0/24进入任何端口9000
    (或写下一个特定的ip)。请确保再次检查这是尝试连接的ip

    这将允许从172.22.0.*端口9000上的所有连接(这是laradock用于其虚拟网络的部分)。请确保仔细检查日志,可能您的安装程序使用不同的ip范围)

    我的工作xdebug.ini(在php fpm和workspace容器中都是相同的)

    如果上述任何一项都不起作用,另一个步骤是检查您是否已经有任何集装箱在9000端口上运行。如果是这样,那么您需要使用另一个端口,只是不要忘记从docker公开它

    (说明:docker将端口绑定(公开)到主机,以便将任何传入连接定向到正确的容器。如果使用9000,xdebug将无法连接到您机器上的任何IDE,即使IDE说它正在运行侦听器)
    希望这有帮助。

    如果您使用的是linux,请确保在防火墙中创建相应的规则

    但是为了更有效地解决这个问题,你需要收集更多的信息

  • 在您的系统中启用xdebug日志
    xdebug.remote\u log=/var/www/xdebug.log
    或者您可以将其附加到PHPStorm(xdebug.remote_log,/path/inside/workspace/container/xdebug.log)中的“Cli解释器>配置选项”中

  • 您可以采取的另一个步骤是监视机器的传入连接。(在安装docker的位置运行此操作)。它将开始侦听端口9000上的所有传入连接尝试

  • sudo tcpdump-i任何端口9000

    现在运行一次调试器,检查容器内的日志(默认情况下为工作区),并查看是否有来自容器的任何传入连接尝试

    如果您看到连接到客户端时超时(等待:200毫秒):-(),您的防火墙可能正在阻止传入的连接

    要打开它们,可以使用ufw添加规则

    sudo ufw允许从172.22.0.0/24进入任何端口9000
    (或写下一个特定的ip)。请确保再次检查这是尝试连接的ip

    这将允许从172.22.0.*端口9000上的所有连接(这是laradock用于其虚拟网络的部分)。请确保仔细检查日志,可能您的安装程序使用不同的ip范围)

    我的工作xdebug.ini(在php fpm和workspace容器中都是相同的)

    如果上述任何一项都不起作用,另一个步骤是检查您是否已经有任何集装箱在9000端口上运行。如果是这样,那么您需要使用另一个端口,只是不要忘记从docker公开它

    (说明:docker将端口绑定(公开)到主机,以便将任何传入连接定向到正确的容器。如果使用9000,xdebug将无法连接到您机器上的任何IDE,即使IDE说它正在运行侦听器) 希望这能有所帮助。

    “PhpStorm”成功验证了它。PhpStorm jut检查php.ini中的值是否有意义,以及端口号是否与IDE中的端口号匹配。它不会检查实际连接(如果Xdebug能够连接或不连接)。1)确保IDE正在侦听Xdebug conn(活动的“电话手柄”图标)2)确保是PhpStorm侦听该端口,而不是其他应用程序(例如php fpm)--
    sudo lsof-nP-iTCP-sTCP:LISTEN
    3)收集xdebug日志--它将告诉它尝试连接的位置和响应。但一般来说:xdebug.remote_主机必须指向运行PhpStorm的IP(从容器内部看;
    docker.for.mac.internal.host
    也可以工作——我不是mac用户,所以不能肯定)。4) 您需要禁用
    connect\u back
    ,因为在这种情况下,
    remote\u host
    被忽略。RTM.1)是;2) phpstorm 74846 376u IPv4 0x82e89367ea55f7d 0t0 TCP*:9000(侦听);3) 跳过;4)
    remote\u connect\u back
    -就是这样!谢谢禁用后,我设法连接!从来没有想过这会引起问题。默认情况下,它在l中启用
    xdebug.remote_host=dockerhost
    xdebug.remote_connect_back=0
    xdebug.remote_port=9000
    xdebug.idekey=PHPSTORM
    
    xdebug.remote_autostart=1
    xdebug.remote_enable=1
    xdebug.remote_log=/var/www/xdebug.log
    
    xdebug.cli_color=1
    xdebug.profiler_enable=0
    xdebug.profiler_output_dir="~/path/to/profiler.log"
    
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    
    xdebug.var_display_max_children=-1
    xdebug.var_display_max_data=-1
    xdebug.var_display_max_depth=-1