问题描述
我的问题是,当我开始监听端口时,xdebug不起作用.我认为PhpStorm无法与xdebug链接.我只是得到调试器面板变量不可用.看来xdebug的设置不正确.
My problem is that xdebug doesn't work when I start listening port. I think PhpStorm can't link with xdebug. I just get debugger panel variables are not available. It's looks like xdebug have not correct settings.
使用的软件和版本:
Ubuntu 16.04 LTS
Docker v 17.06
docker-compose 1.15
因此,我尝试过多次设置xdebug + Docker + PhpStorm,但无法做到.我读过许多教程,但是没有什么对我有帮助.
So I was trying many times setup xdebug + Docker + PhpStorm but cannot do it. I've read many tutorials but nothing haven't helped me.
我的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设置:
PhpStorm settings:
推荐答案
我找到了如何运行xdebug的解决方案.
I found out solution how to run xdebug.
1)首先,我们需要创建一个新的静态路由,该路由将基于您的网络设备.要创建新的静态路由:在终端ifconfig
1) First of we need create a new static route that will based on your network device. For create new static route: run in terminal ifconfig
,发现存在的网络设备.在我的情况下,设备名称将为
and found out the exists network device. In my situation name of device will be as
wlp4s0
2)继续.让我们开始创建静态路由.在终端运行命令中,如下所示:
2) Go ahead. Let's begin create the static route. In terminal run command like this:
> sudo ip addr add 10.254.254.254/24 brd + dev wlp4s0 label wlp4s0:1
3)现在,如果再次运行ifconfig
,您将看到新的静态路由:
3) Now if you run again ifconfig
you'll see new static route:
4)更新
xdebug.ini
文件添加:
xdebug.remote_host=10.254.254.254
5)更新docker.compose.yml
文件:在php
部分中添加:
5) Update docker.compose.yml
file:in php
section add:
environment:
PHP_IDE_CONFIG: "serverName=project-docker"
PHP_XDEBUG_ENABLED: 1
XDEBUG_CONFIG: remote_host=10.254.254.254
6)最后是更新phpstorm设置.
6) The last thing is update phpstorm settings.
服务器设置:远程调试配置:7)利润xdebug起作用了:
Server settings:Remote debug config:7) And profit xdebug is working:
这篇关于如何在Ubuntu 16.04上设置Docker + PhpStorm + xdebug的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!