我的PHP应用程序在docker中运行。我的IDE是PhpStorm。我这样配置:
我的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中的调试设置:
答案 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个月前所做的事情时,这也很有帮助。