如何在 Ubuntu 16.04 上设置 Docker + PhpStorm + xdebug [英] How to setup Docker + PhpStorm + xdebug on Ubuntu 16.04

查看:29
本文介绍了如何在 Ubuntu 16.04 上设置 Docker + PhpStorm + xdebug的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是当我开始监听端口时 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 看起来像这样:

My docker-compose.yml looks like this:

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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆