我的问题是,当我开始侦听端口时,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设置。
服务器设置: 远程调试配置:
7)和利润xdebug正在工作: