【问题标题】:Problems with my Docker Setup, xDebug and PHP Storm我的 Docker 设置、xDebug 和 PHPStorm 的问题
【发布时间】:2021-11-02 09:57:26
【问题描述】:

我使用 Docker 创建了一个开发人员设置。 设置工作正常,但我无法使用 xDebug 和 PHP Storm 调试我的应用程序。 Apache 设置和 php.ini 将从我的文件中加载。

感谢您的帮助!

我的 docker-compose.yml

version: '3'
services:
  mysql:
    container_name: www-xtrose-mysql
    image: 'bitnami/mysql:5.7'
    environment:
      - MYSQL_ROOT_PASSWORD=www-xtrose
      - MYSQL_DATABASE=www-xtrose
      - MYSQL_USER=www-xtrose
      - MYSQL_PASSWORD=www-xtrose
    ports:
      - '10013:3306'
    volumes:
      - './docker/mysql/data:/bitnami/mysql/data'
  php:
    container_name: www-xtrose-php
    image: 'bitnami/php-fpm:7.4'
    volumes:
      - './www:/app:delegated'
      - './docker/php/php.ini:/opt/bitnami/php/etc/conf.d/php.ini:ro'
  apache:
    container_name: www-xtrose-apache
    image: 'bitnami/apache:2.4'
    ports:
      - '10011:8080'
      - '10012:8443'
    depends_on:
      - php
    volumes:
      - './www:/app:delegated'
      - './docker/apache/my_vhost.conf:/vhosts/my_vhost.conf:ro'
      - './docker/apache/certs:/certs'
volumes:
  www-xtrose-mysql:
    driver: local

我的 php.ini:

display_errors=1
expose_php=0
max_execution_time=360
max_input_time=360
memory_limit=256M
upload_max_filesize=1G
post_max_size=1G
opcache.enable=1
opcache.revalidate_freq=2
opcache.validate_timestamps=1
opcache.interned_strings_buffer=32
opcache.memory_consumption=256
extension=imagick.so
[Xdebug]
zend_extension="/opt/bitnami/php/lib/php/extensions/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"

我的 PHP Storm 调试设置:

【问题讨论】:

  • 您是否尝试在 phpstorm 中的服务器配置上使用其他端口而不是 0011?只需尝试 82 也尝试启用 xdebug.remote_autostart = true 以找出路径映射可能有问题,并将断点放置在您项目中打开的第一个脚本(可能是 index.php)上,如果有帮助请告诉我。
  • @RomanKrut 它的端口 10011。我已经在服务器和 php.ini 设置上更改了它。没有效果:-(
  • 在您的服务器上运行 php --version 命令。它有 xdebug 扩展吗?你应该看到它像这样i.imgur.com/cShgw7T.png

标签: php docker apache-storm


【解决方案1】:

好的,我知道了,而且非常简单。 在 Linux 上不支持 host.docker.internal。 删除 PHP Storm 中的所有服务器和服务器设置。 转到 Settings->php->debug 并将端口 9003 添加到调试端口。

php.ini:

zend_extension = "/opt/bitnami/php/lib/php/extensions/xdebug.so"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1

就是这样。 谢谢大家帮忙

【讨论】:

  • 我遇到了同样的问题,但您在上面的最终解决方案似乎并不完整。您说要添加端口 9003,但您没有在其他任何地方配置它。是否也应该在 php.ini 中配置?另外,你到底有没有使用你的 IDE 密钥?
  • 另外,您没有提到您使用哪个 apt-get 或 pecl install 来获取您的 xdebug.so 扩展?你在 xdebug.ini 中配置了什么吗?如果是,它的路径是什么?唯一对我有用的东西,如果那个 xdebug 出现在php -m
猜你喜欢
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 2012-02-29
  • 2013-07-28
相关资源
最近更新 更多