美文网首页
PhpStorm使用xdebug3和docker-compose

PhpStorm使用xdebug3和docker-compose

作者: lodestar | 来源:发表于2021-01-05 23:58 被阅读0次

    条件准备:在php的dockerfile中已安装xdebug3,nginx是已有镜像。
    docker-compose 配置路径如下

    ├── Dockerfile
    ├── docker-compose.yml
    ├── nginx-configs
    │   ├── conf.d
    │   │   ├── test.inner.conf
    │   └── nginx.conf
    └── php-configs
        └── docker-php-ext-xdebug.ini
    

    运行php环境:docker-compose up -d

    docker-compose.yml 配置文件

    version: '3'
    services:
      php:
        build: .
        container_name: php-dev
        restart: always
        networks:
        - dev-network
        ports:
        - "9000:9000"
        volumes:
        - /Users/qinyongbo/code/qn:/data/code/qn
        - ./php-configs/docker-php-ext-xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
        command:
        - php-fpm
      nginx:
        container_name: nginx-dev
        image: "registry.cn-shenzhen.aliyuncs.com/image/nginx:1.17.9-test-service-20201123"
        restart: always
        networks:
        - dev-network
        ports:
        - "80:80"
        volumes:
        - /Users/qinyongbo/code/qn:/data/code/qn
        - ./nginx-configs/nginx.conf:/etc/nginx/nginx.conf
        - ./nginx-configs/conf.d:/etc/nginx/conf.d
    networks:
      dev-network:
        external: true
    

    docker-php-ext-xdebug.ini

    [xdebug]
    zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
    xdebug.mode=debug
    xdebug.start_with_request=yes
    #本机ip,因为docker在mac中不能使用host网络模式,故这里不能用localhost
    xdebug.client_host=192.168.10.89
    #本机端口
    xdebug.client_port=9003
    xdebug.idekey = PHPSTORM
    

    以上镜像相关的已准备完成,接下来是PhpStorm配置,选择Languages & Frameworks》PHP

    image.png

    如果没有CLI interpreter ,那么就新建一个,点击左上角+,选择Docker

    image.png

    在Server中点击New一个

    image.png

    新建Server过程中,Path mappings配置需要选择docker中路径和本机路径匹配。


    image.png

    点击Configuration File(s),选择docker-compose.yml配置文件,service选择对应的php服务名字。
    到此CLI interpreter 添加成功。

    添加Servers


    image.png

    开启xdebug 监听,默认监听端口为9003


    image.png

    测试curl http://test.example.com/Index/index,请求一直loading,代码进入调试模式

    image.png

    以上http请求模式完成,那CLI模式怎么弄呢?

    在docker中执行

    export XDEBUG_CONFIG="xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=192.168.2.159 xdebug.client_port=9003 xdebug.idekey = PHPSTORM"
    export PHP_IDE_CONFIG="serverName=DomainName"
    

    执行:php path/index.php,就发现IDE中有debug在运行。

    参考:https://xdebug.org/docs/

    相关文章

      网友评论

          本文标题:PhpStorm使用xdebug3和docker-compose

          本文链接:https://www.haomeiwen.com/subject/mxlgoktx.html