Laravel 计划 - Azure 门户中的 AppSettings

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

我正在 Azure 上运行 Laravel 应用程序(Linux 上的应用程序服务),并且我在门户本身中设置了一些设置,例如:

DB_DATABASE=mydbname
DB_USERNAME=mydbuser
DB_PASSWORD=mydbuserpwd

这些值不在 .env 文件中。

它按应用程序的预期工作,可以正确读取值,但是,调度程序没有读取它们,而是使用database.php配置文件中的默认值。

将这些设置添加到 .env 文件可以解决问题,但这显然不是真正的解决方案。有人遇到过这个问题吗

php laravel azureportal
3个回答
0
投票

Laravel 计划 - Azure 门户中的 AppSettings

根据此MSDoc

应用程序服务在将应用程序设置传递到 Linux 应用程序和自定义容器时使用 --env 标志(.env 文件)来设置容器的环境变量。

  • .env 文件中的环境变量在应用程序启动时添加到应用程序环境中。

  • 在 Laravel App 中,应用程序设置作为运行时环境变量获取。

  • 根据Fikayo Adepoju, 在添加 .env 文件的第 8 步中,他建议不要排除 .env 变量。

参考资料来自

在应用服务 Linux 上部署 Laravel

环境配置123


0
投票

您是否使用 cron 来运行调度程序?

我们遇到了类似的问题,我们通过首先获取 /etc/profile 然后在 crontab 中调用

schdule:run
来解决它。

* * * * * BASH_ENV=/etc/profile php /site/wwwroot/artisan schedule:run


0
投票

希望我的回答能够帮助您找到解决方案。我遇到了同样的问题,并尝试在几天内找到解决方案。

所以,我假设您安装了 cron 并创建了一个名为 crontab

的文件

crontab 有以下代码,

          • root cd {您的应用程序路径} && BASH_ENV=/etc/profile bash -c "php artisan Schedule:run >> output.txt"

BASH_ENV=/etc/profile 是运行 cron 后 azure 未获取的所有配置设置。 bash -c 正在将您的命令绑定在 bash 终端中,因为我检查了我的终端并且我位于 bash 终端中。 您必须将 shell 更改为 /bin/bash,因为我们在 AZURE linux 中使用 bash 终端。

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