如何在phalconphpubuntu-16.04 docker镜像上启用XDebug?

问题描述 投票:0回答:1

我在使用 phalconphpubuntu-16.04 docker镜像,我想在该镜像上启用XDebug。引自镜像文档 https:/hub.docker.comrphalconphpubuntu-16.04。

Xdebug默认是禁用的。要启用它,你需要传递XDEBUG_REMOTE_ENABLE和XDEBUG_REMOTE_HOST环境变量。

变量 描述 XDEBUG_REMOTE_ENABLE=1 这将启用 Xdebug。XDEBUG_REMOTE_AUTO_START=1 启用自动启动将捕获所有请求。XDEBUG_REMOTE_HOST=192.168.0.1 Xdebug 远程主机。XDEBUG_REMOTE_PORT=9000 设置远程主机。如果你想手动启动调试会话,通过GET,POST或COOKIE传递变量XDEBUG_SESSION_START。

注意:要使用这个功能,你需要设置XDEBUG_REMOTE_HOST。

这是我的运行语句

docker run -d --network TEST 
-p 80:80 
-p 9000:9000 
-e XDEBUG_REMOTE_ENABLE=1 
-e XDEBUG_REMOTE_HOST=host.docker.internal 
-v ${workspaceFolder}:/app 
-v ${workspaceFolder}/docker:/etc/nginx/sites-enabled 
phalconphp/ubuntu-16.04:php-7.2

当我看到 phpinfo(),xdebug没有加载?

docker phalcon
1个回答
0
投票

你的docker运行语句没有问题。似乎有一个bug在 Dockerfile 的法尔康。我按照说明书中的 文件 我可以验证这是一个错误。


REPRODUCE步骤

  1. 创建两个文件 index.phpnginx.conf 的结构。

screenshot of file structure

这些是文件的内容

<?php
// index.php
phpinfo();
# nginx.conf
server {
    listen 80 default_server;

    server_name example.com;

    index index.php;
    root /app/public;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass             unix:/run/php/php7.2-fpm.sock;
        fastcgi_index            index.php;

        include                  fastcgi_params;

        fastcgi_param            SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_intercept_errors on;
        fastcgi_read_timeout     300;
        fastcgi_buffer_size      16k;
        fastcgi_buffers          4 16k;
    }
}
  1. 然后使用这个命令来运行docker容器。
docker run \
    -p 80:80 \
    -v $(pwd):/app \
    -v $(pwd)/docker/nginx.conf:/etc/nginx/sites-enabled/default:ro \
    -e XDEBUG_REMOTE_ENABLE=1  -e XDEBUG_REMOTE_HOST=host.docker.internal \
    phalconphp/ubuntu-16.04:php-7.2

预期结果启用Xdebug

实际结果Xdebug未启用


当我深挖到 Docker文件 我发现有入口文件的脚本,但是 ENTRYFILE 指令中缺少 Dockerfile. 我已经建立了一个 牵引请求 这将解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.