无法使用在Docker中运行的PhpStorm调试PHP应用程序?

时间:2017-08-10 01:12:01

标签: php docker phpstorm xdebug

我的PHP应用程序在docker中运行。我的IDE是PhpStorm。我这样配置:

PhpStorm configuration

我的Docker配置包含:

RUN yes | pecl install xdebug \
    && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

和docker-compose.yml包含:

environment:
  -XDEBUG_CONFIG: "remote_host=192.168.0.111 idekey=phpstorm"
  -PHP_XDEBUG_ENABLED: 1 # Set 1 to enable.

我将码头工作为;

docker-compose up.

当我访问某个页面时,它没有达到我的断点。

我想念的是什么设置?

PhpStorm中的调试设置:

enter image description here

1 个答案:

答案 0 :(得分:1)

让这个工作变得非常困难。简短的回答是Docker不用于调试。使用Vagrant。

Docker旨在运行名为容器的小应用程序。您希望像数据库一样运行尽可能小的进程,然后在另一个容器中运行您的http服务器。因此,标准容器都是裸骨。它们并不是要解决复杂的问题。 Docker用于制作。

另一方面,Vagrant非常适合开发人员。它有很多细节可以支持开发人员,让生活更轻松。它适用于Mac,Windows和Linux,并且它在所有这些上运行方式相同,因此您可以通过仅共享 Model: (classes += Class)+ ; Class: 'class' name=ID ('extends' extendclass = [Class | ID])? '{' '}' 轻松地在团队设置中使用它,您将获得“克隆”。它甚至可以安装本地文件夹,从而为您提供http服务器的实时更新。你也可以一遍又一遍地破坏Vagrant图像,这真的很棒。一个好的建议是在Vagrantfile中记录所有设置步骤。当你有一个很好的Vagrant设置时,破坏Vagrant图像,重新创建它,再也不要触摸它里面的内容。当你将一个项目搁置6个月并且不记得你在6个月前所做的事情时,这也很有帮助。