将Docker与Xdebug和Sublime Text集成到PHP环境中
我正在为我的团队build立一个Docker开发环境。 在这个环境中,我们希望将Xdebug与Docker集成以允许进行debugging。 看来最简单的方法是将Sublime Text连接到Docker实例,然后在Sublime Text上安装Xdebug ontop。 我发现了以下指南,将Sublime Text与Docker( http://domeide.github.io/ )集成在一起,本指南将Xdebug与Sublime Text( https://www.sitepoint.com/debugging-xdebug-sublime-text -3 / )。 我想知道的是,如果任何人有任何build立类似环境的经验? 有没有更简单的方法来做到这一点? 这似乎是正确的方式来debuggingDocker中的PHP代码?
这个解决scheme也可能适用于Sublime Text – 对于Visual Studio Code,我刚刚得到了这个工作。 我发现这些remote_host和其他Xdebug设置可以在Windows 10 Pro和OS X上使用最新版本的Docker Community Edition。
在Xdebug扩展configuration中,我将它们与来自docker hub的包含php的图像包的Dockerfile中的Xdebug扩展安装一起设置。 有一个链接到这个答案的底部,这是如何在Dockerfile中完成的,以及如何构build图像,然后将其添加到docker-compose文件中。
-
xdebug.remote_connect_back
设置需要closures:xdebug.remote_connect_back=0
- 自动启动
xdebug.remote_autostart=1
它只是工作。 - 需要根据Windows或OS X更改xdebug.remote_host = 127.0.0.1,如下所示:
运行Docker版本17.03.0-ce-win1的Windows 10 Professional,打开命令提示符并inputipconfig。 该地址列在DockerNAT下。 例如:
ipconfig Ethernet adapter vEthernet (DockerNAT): IPv4 Address. . . . . . . . . . . : 10.0.75.1
运行Docker版本17.03.0-ce-mac2的OS X El Capitan,为您现有的子网掩码创build一个IP地址为10.254.254.254的别名。
sudo ifconfig en0 alias 10.254.254.254 255.255.255.0
然后根据上面的示例,使用IP为您的主机的xdebug.remote_host
设置如下:
- Windows
10.0.75.1
- OS X:
10.254.254.254
请注意,如果您在OS X中遇到冲突,则可以像这样删除别名。
sudo ifconfig en0 -alias 10.254.254.254
我使用Visual Studio Code与vscode-php-debug PHPdebugging适配器来侦听Xdebug并逐步执行我的代码。 请注意,需要在项目launch.json
文件中包含以下内容,以便VS代码将远程服务器文件映射到本地计算机。 这是来自我的项目和它的典型卷位置,你的serverSourceRoot看起来是一样的。
"serverSourceRoot": "/var/www/html", "localSourceRoot": "${workspaceRoot}"
docker-compose,nginx-proxy的整个设置,包括如何在Docker WordPress开发环境中使用Xdebug等构build图像- 使用Xdebug和VS Code远程debugging