我的 Docker 安装程序、xDebug 和 PHP Storm 的问题

Problems with my Docker Setup, xDebug and PHP Storm

提问人:xtrose Media Studio 提问时间:11/2/2021 最后编辑:xtrose Media Studio 更新时间:11/3/2021 访问量:313

问:

我用 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 调试设置:

enter image description here

php docker apache-storm

评论

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

答:

0赞 xtrose Media Studio 11/2/2021 #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

就是这样。 谢谢大家的帮助

评论

0赞 Fabien Haddadi 12/9/2021
我遇到了同样的问题,但您上面的最终解决方案帖子似乎并不完整。您说要添加端口 9003,但您没有在其他任何地方配置它。它是否也应该在php.ini中配置?另外,你到底在用你的IDE密钥吗?
0赞 Fabien Haddadi 12/9/2021
另外,你没有提到你使用哪个 apt-get 或 pecl 安装来获取你的 xdebug.so 扩展?您是否在 xdebug.ini 中配置了任何内容?如果是,它的路径是什么?唯一对我有用的东西,如果那个 xdebug 出现在php -m