docker - 使用 Xdebug 为我的 Docker 设置设置 PhpStorm
问题描述
我无法通过 Xdebug 捕获对我的应用程序的任何请求。我想像我的本地环境一样为我的 Docker 环境进行设置。
这是我的 Dockerfile 开始行:
FROM nginx
RUN apt-get update
RUN apt-get install -y unzip wget curl default-mysql-client libnss3-tools git
RUN apt-get install -y php php-fpm php-cli php-curl php-mysqlnd php-opcache php-pdo php-xml php-bcmath php-calendar \
php-ctype php-dom php-exif php-fileinfo php-ftp php-gd php-gettext \
php-iconv php-intl php-json php-mbstring php-mysqli php-gd php-mysql php-phar \
php-posix php-readline php-shmop php-simplexml php-soap php-sockets \
php-sysvmsg php-sysvsem php-sysvshm php-tokenizer php-wddx php-xmlreader \
php-xmlwriter php-xsl php-zip php-dev
#Install xdebug
RUN pecl install xdebug
ENV PHP_IDE_CONFIG 'serverName=DockerApp'
VOLUME /var/log/xdebug
ARG XDEBUG_HOST="192.168.1.102"
ARG XDEBUG_PORT=9021
RUN echo "zend_extension=xdebug.so" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.profiler_enable=1" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_enable=1" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_handler=dbgp" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_mode=req" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=host.docker.internal" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_port=9000" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_autostart=1" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.idekey=PHPSTORM" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_host=${XDEBUG_HOST}" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
RUN echo "xdebug.remote_port=${XDEBUG_PORT}" >> /etc/php/7.3/fpm/conf.d/20-xdebug.ini
这是我的 docker-compose.yml 开始行。
version: '3.8'
services:
web:
container_name: custome_web
build:
context: ./
dockerfile: ./.docker/nginx/Dockerfile
volumes:
- ./src:/usr/share/nginx/html
- ./.docker/certs:/mycert
ports:
- "8080:80"
- "444:443"
environment:
XDEBUG_CONFIG: remote_host={{192.168.1.102}}
links:
- mysql
- elasticsearch
depends_on:
- mysql
- elasticsearch
如果有人知道我哪里做错了。请给我建议。我尝试了一切,但我没有找到解决方案......
解决方案
推荐阅读
- python - 在 Python/Selenium 中将焦点更改为新窗口
- spring - 当处理程序方法中存在 BindingResult 参数时,@ExceptionHandler 方法不起作用
- go - 在 URL 参数中接收带有 # 的 Golang GET 请求
- python - 如何让其余代码打印出来?
- bash - 动态地将用户输入通过管道传输到 ls bash 的变量中
- sql-server - 删除表中除系统版本(历史)表之外的所有数据
- ruby - 使用 Ruby on Rails 和 API 进行报告。请
- python - 如何显示数组中不存在的数组中的最后一个缺失元素
- google-sheets - 如何找到当前单元格上方最接近的匹配值,并在同一行中返回不同的列?
- python - 以优化的方式查找熊猫列中连续增加/减少值的数量(并用它填充另一个列)