Remote Debugging with XDebug from inside a Docker Container does not work

后端 未结 4 1531
悲哀的现实
悲哀的现实 2021-02-07 04:31

I\'m trying to setup a dockered AMP environment and can\'t get the remote debugger working. My setup is as follows:

I have a database container running mysql which is wo

相关标签:
4条回答
  • 2021-02-07 05:17

    You can try with this configuration. php-apache build provide two method to compile and enable module php. It's nicer to use docker-php-ext-enable xdebug to set correct file configuration.

    FROM php:5.4-apache
    
    # Enable and configure xdebug
    RUN pecl install xdebug
    RUN docker-php-ext-enable xdebug
    RUN sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_port=9000' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_host=127.0.0.1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    RUN sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
    
    0 讨论(0)
  • 2021-02-07 05:32

    If you don't want do change xdebug config in the container and want to make it work using xdebug.remote_connect_back=1 you can set the HTTP-Header X-Forwarded-For to the IP of host.docker.internal und thus defines PHP $_SERVER['HTTP_X_FORWARDED_FOR'] which xdebug prefers and uses as the client IP instead of $_SERVER['REMOTE_ADDR'].

    0 讨论(0)
  • 2021-02-07 05:33

    close: xdebug.remote_connect_back=0 add: xdebug.remote_host=192.168.0.102[your docker host/machine IP]

    0 讨论(0)
  • 2021-02-07 05:35

    For me on a PHP, NGINX Docker environment using sublime, I got it to work with these settings:

    xdebug.remote_enable = 1
    xdebug.remote_mode = req
    xdebug.remote_port = 9001
    xdebug.remote_connect_back=0
    xdebug.remote_host=host.docker.internal
    

    The one that took me forever to figure out was to set the remote_host to host.docker.internal.

    0 讨论(0)
提交回复
热议问题