美文网首页
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