You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service环境变量使用及配置不显示问题排查

Azure App Service Docker部署后环境变量排查建议

首先得给你吃个定心丸:Azure App Service的Application Settings在Docker部署场景下,不会直接出现在SSH的env输出里——这是因为这些变量是注入到容器的应用进程中,而非全局shell环境,所以env命令看不到是正常情况,但这不代表PHP没法读取。不过咱们还是一步步排查确认:

  • 先验证PHP能否实际读取变量
    最快的验证方式是写个极简测试脚本,比如创建info.php:

    <?php
    // 读取单个变量
    echo getenv('你的环境变量名');
    // 或者打印所有可用环境变量
    print_r($_ENV);
    ?>
    

    部署后访问这个脚本,如果能拿到你设置的变量,说明配置本身是生效的,只是SSH shell没加载这些变量而已;如果拿不到,再继续往下排查。

  • 检查Docker镜像的启动命令
    Azure会把环境变量注入容器的主进程,如果你的镜像用了自定义启动脚本(比如entrypoint.sh),一定要确保用exec启动PHP进程——不用exec的话,子进程不会继承这些环境变量。比如正确写法:

    exec php-fpm
    

    而非直接php-fpm,这样主进程会被替换成PHP-FPM,环境变量就能顺利继承。

  • 确认Application Settings的配置范围
    检查你设置的变量是不是针对当前部署的插槽(slot)?如果部署到了staging插槽,要确保变量是在对应插槽的「配置」里添加的,而非production插槽。另外留意有没有勾选「部署槽设置」,勾选后该变量仅在当前插槽生效,切换插槽时不会同步,这点要确认清楚。

  • 查看App Service启动日志
    去App Service的「日志流」里查看容器启动过程的日志,有没有报错或者环境变量加载相关的提示。也可以在启动脚本里加一行printenv > /tmp/env.log,之后通过SSH查看/tmp/env.log,这里记录的是容器启动时的环境变量,比直接env命令更准确。

  • 排查「从部署包运行」选项
    虽然Docker部署场景下这个选项一般不会生效,但还是可以去「配置→常规设置」里确认是否开启了「从部署包运行」,这个选项可能会干扰环境变量注入。

内容的提问来源于stack exchange,提问作者Zero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:09:59