san*_*o90 5 php xdebug environment-variables phpstorm docker
我在Docker上运行PHP应用程序,我想使用XDebug进行调试.在我的docker-compose中,我在phpfpm部分添加了以下行:
environment:
XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.110.29 remote_port=9000 idekey=PHPSTORM remote_autostart=1"
PHP_IDE_CONFIG: "serverName=reports.dev"
Run Code Online (Sandbox Code Playgroud)
我以正确的方式配置PHPStorm,侦听端口9000并运行应用程序.
该应用程序完美无缺,但XDebug似乎没有工作.
如果我移动php.ini文件中的配置行调试器工作,除了服务器名称为空并且我无法调试的事实(这就是为什么我尝试遵循docker-compose配置方式).
如果,在docker容器内,我运行echo $ XDEBUG_CONFIG输出是正确的,但是XDebug似乎没有读取那个Env变量.
我有同样的问题。我的图像基于nimmis/alpine-apache-php7/
. 我发现该图像supervisor
用于启动进程。supervisor
不了解 Docker 环境变量。
告诉supervisor
进程需要运行的约定是run
在/etc/sv/{process}/run
. 使用这样的脚本来启动 Apache。我需要更改脚本,以便在启动 Apache 之前导入 Docker 环境变量。
如果您需要来自 docker 命令行的环境变量 (-e,--env=[]) 添加
source /etc/envvars
在脚本文件中使用它们之前
所以我为 Apache创建了自己的自定义run
脚本——我source /etc/envvars
在执行httpd
.
我通过在我的 Dockerfile 中添加一个简单的内容来覆盖原始run
脚本:COPY
COPY apache-run.sh /etc/sv/apache2/run
Run Code Online (Sandbox Code Playgroud)
这成功地确保了 my在启动时$XDEBUG_CONFIG
可见httpd
。通过phpinfo();
在网页中打印,我能够确认这影响了我的 PHP 配置。
归档时间: |
|
查看次数: |
5262 次 |
最近记录: |