由于容器化的需要,前几天我本地也换成了docker环境。就研究了一下docker环境下phpstorm和xdebug的配置。
http://www.mmfei.com/?p=453 这个博客给出了一个常规的解决思路。这里需要注意的是,在docker环境下phpstorm的CLI Interpreter需要配置容器镜像和目录映射。
mac环境下docker中的Xdebug不能使用127.0.0.1左右remote_host。而是要使用docker的宿主IP。
由于办公环境的复杂,导致我得本机IP,也就是docker的宿主IP经常会发生变化,++那么xdebug配置文件中配置xdebug_remote_host为宿主ip的方法就并不实用++。我在stack overflow上找到了解决方法。那就是配置xdebug_remote_host为docker.for.mac.localhost就可以通过静态的配置去动态的访问宿主IP
这里要注意的是Docker的版本需要在17.06以上!
完整配置如下
zend_extension = xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 0
xdebug.remote_host = docker.for.mac.localhost
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_autostart = 1
xdebug.idekey = PHPSTORM