我正在按照以下教程尝试使用PHPStorm调试Symfony应用程序:
https://gist.github.com/chadrien/c90927ec2d160ffea9c4
我做的完全一样,但是效果不佳.
PHP-fpm:
build: ./PHP
container_name: PHP-fpm-symfony
links:
- db
ports:
- 9000:9000
- 8448:8448
- 8000:8000
working_dir: /var/www/html/
volumes:
- ../:/var/www/html
volumes_from:
- data
tty: true
env_file:
- ./docker.env
environment:
XDEBUG_CONFIG: remote_host=192.168.0.176
Docker文件
# XDEBUG
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
当我使用PHPStorm启动调试时,似乎正在建立连接.浏览器中会弹出一个新窗口.我的Symfony主页在这里.
但这并不止于我的断点.并且分步调试不起作用.
我做错什么了吗?
IDE,PHPstorm,在端口9000上侦听,这意味着,它在此9000上打开了一个套接字,但未连接到该端口.
另一方面,xdebug通常将localhost连接到9000的端口,并将其附加到该端口-如果找到侦听器,则它们会讲话.这是因为9000上没有服务,所以转发端口不仅没有意义,甚至会损害您的利益,因为9000端口将在OSX主机localhost上使用,并且您的PHPstorm将不再能够侦听它.
你想做的是
>删除“ 9000:9000”
>使用此配置https://gist.github.com/EugenMayer/3019516e5a3b3a01b6eac88190327e7c来
a)为您的OSX本地主机回送设备创建别名
b)将FPM xdebug配置为connect_back到此ip
>现在,非常简单,只需按下该按钮https://drive.google.com/file/d/0B3SrxyqujSqxeFZoMmdrbDB6SzQ/view,使其上方没有该“红色图标”,而是全绿色.
4)现在,使用浏览器,像往常一样使用xdebug插件,如https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc或Firefox替代品,因为我真的不希望在xdebug配置中使用“自动启动”
就是这样
>由于环回设备别名,可移植到其他开发设备
>您无需配置debug-env,而是使用quick-debug,这几乎在所有情况下都更加方便