[英]Docker toolbox Xdebug not working with PhpStorm
我尝试了在互联网上找到的所有教程,但仍然无法使用 docker 工具箱在 PhpStorm 中使用简单的断点...
我目前在我的Dockerfile
里面有这个:
# Install xdebug
RUN pecl install xdebug; \
docker-php-ext-enable xdebug; \
echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.remote_host=192.168.99.100" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.idekey=PHPSTORM" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini; \
echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini;
Xdebug 已正确安装和配置( php -i
输出):
xdebug.remote_autostart => On => On
xdebug.remote_connect_back => Off => Off
xdebug.remote_cookie_expire_time => 3600 => 3600
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => 192.168.99.100 => 192.168.99.100
xdebug.remote_log => no value => no value
xdebug.remote_mode => req => req
xdebug.remote_port => 9001 => 9001
xdebug.remote_timeout => 200 => 200
xdebug.idekey => PHPSTORM => PHPSTORM
在我的 PhpStorm 配置中,我有以下内容:
代理人:
模糊的项目是Username
和project name
。
我在一个项目中有 2 个文件夹,一个名为docker
并包含所有 docker 文件和一个site
,其中包含所有站点文件。
我的 docker-compose 的配置如下:
version: '3'
services:
application:
image: project_image:latest
environment:
- C_UID=${C_UID:-1000}
- C_GID=${G_UID:-1000}
- DEVELOPMENT=${DEVELOPMENT:-1}
- ~/.ssh:/var/www/.ssh
- ~/.composer:/var/www/.composer
env_file:
- .env
volumes:
- ${APPLICATION:-../site}:/phpapp
ports:
- 9001:9001
nginx:
image: dockerwest/nginx-laravel:${NGINXVERSION:-stable}
environment:
- VIRTUAL_HOST=${BASEHOST:-project_name.docker},${EXTRAHOSTS}
volumes:
- ${APPLICATION:-../site}:/phpapp
links:
- application
ports:
- 80:80
有人知道我在这里做错了什么吗?
当我尝试 de telnet 192.168.99.100 9001
时,端口9000
也无法建立连接,但端口80
给了我很好的响应。
有谁知道这里发生了什么?
Xdebug 需要打开到PhpStorm 的连接。 您不需要 Docker 中暴露的端口,也不需要使用 Xdebug 代理做任何事情。 远程登录需要从您的 docker 容器到 PhpStorm 完成。 The IP address in xdebug.remote_host
, needs to be the IP address of your IDE, and not the IP address of your docker container (where HTTP/Apache listens on port 80).
xdebug 必须满足 3 个条件才能与 VirtualBox 远程工作,特别是与 virtualbox 内的 Docker 相关联。
1) remote_connect_back=1 或主机的确切地址 ip 必须列在 remote_host 配置字段中(有时两者不能同时工作,特别是在 docker 被与virtualbox分开=直接在windows hyper-v)
2)没有其他应用程序,例如。 web-project 可以在端口 9000 公开,必须为 php 编辑器保留,或者编辑器必须保留不同的端口/收听在(或 php Z2567A5EC9705EB7AC2C98403)和从项目地址/传输到 E php,是基于工程的配置
3)与第二点类似,VirtualBox 必须没有端口转发到该端口,因为它会有效地占用它,但它必须保留给 php 编辑器,而不是用于 virtualbox 端口转发。 不是 virtualbox 必须在该端口侦听以转发到某个内部应用程序,但外部 php-editor 必须侦听它=该端口
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.