如何在Ubuntu 16.04上设置Docker + PhpStorm + xdebug

我的问题是,当我开始侦听端口时,xdebug不起作用。 我认为PhpStorm不能链接到xdebug。 我只是得到debugging器面板variables不可用。 这看起来像xdebug没有正确的设置。

使用的软件和版本:

Ubuntu 16.04 LTS Docker v 17.06 docker-compose 1.15 

所以我试了很多次设置xdebug + Docker + PhpStorm,但不能这样做。 我读过很多教程,但没有任何帮助我。

docker-compose.yml如下所示:

 version: '3' services: web: image: nginx:latest ports: - "80:80" restart: on-failure volumes: - "./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf" - "./etc/ssl:/etc/ssl" - "./project:/var/www/html/project" depends_on: - php - db php: image: nanoninja/php-fpm restart: on-failure volumes: - "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini" - "./project:/var/www/html/project" db: image: mysql container_name: ${MYSQL_HOST} restart: on-failure env_file: - ".env" environment: - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION ports: - "8988:3306" volumes: - "./data/db/mysql:/var/lib/mysql" 

我的xdebug.ini是:

 xdebug.default_enable=0 xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_autostart=0 xdebug.remote_connect_back=0 xdebug.idekey="PHPSTORM" xdebug.profiler_enable=0 xdebug.remote_host=localhost 

PhpStorm设置:

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

我找到了解决方案如何运行xdebug。

1)我们首先需要创建一个基于你的网络设备的新的静态路由。 为了创建新的静态路由:在终端ifconfig运行

并找出存在的网络设备。 在我的情况下,设备名称将为

wlp4s0

在这里输入图像说明

2)继续。 我们开始创建静态路由。 在终端运行命令是这样的:

 > sudo ip addr add 10.254.254.254/24 brd + dev wlp4s0 label wlp4s0:1 

3)现在,如果你再次运行ifconfig你会看到新的静态路由: 在这里输入图像说明

4)更新

 xdebug.ini 

文件添加:

 xdebug.remote_host=10.254.254.254 

5)更新docker.compose.yml文件:在php部分添加:

 environment: PHP_IDE_CONFIG: "serverName=project-docker" PHP_XDEBUG_ENABLED: 1 XDEBUG_CONFIG: remote_host=10.254.254.254 

6)最后一件事是更新phpstorm设置。

服务器设置: phpstorm设置 远程调试配置: phpstorm设置 7)和利润xdebug正在工作: xdebug正在工作