gpt4 book ai didi

php - 在 Azure Web 角色上设置/获取系统变量

转载 作者:行者123 更新时间:2023-12-03 04:27:39 24 4
gpt4 key购买 nike

我不敢相信我是唯一遇到此问题的人,但我无法在任何地方找到有关此问题的任何信息。

我们目前有一些 Azure Web 角色正在运行我们的应用程序,为了安全起见,我决定将用户名、密码和 API key 等凭据放入系统环境变量中,并使用 getenv() 将它们放入我的 PHP 脚本中。 .

我们正在运行安装了 IIS 和 PHP 的 Windows Server Web 角色。我正在我的 ServiceDefinition.csdef 中使用启动任务像这样:

<Startup>
<Task commandLine="setEnvironmentVariables.cmd" executionContext="elevated" />
</Startup>

cmd的内容文件只是在 Web 角色启动时设置环境变量。

到目前为止一切顺利。然而,根据我们在 Windows 开发服务器上的经验,我知道为了让 PHP 脚本看到新添加的环境变量,您必须运行 IISReset ,然后您可以使用 getenv() 来查看它们.

但是您无法运行IISReset关于 Azure Web 角色,按照此处的文档 https://azure.microsoft.com/en-us/blog/iis-reset-on-windows-azure-web-role/

所以我的脚本看不到变量!我是否遗漏了某些内容,或者是否有更简单的方法可以在 Web 角色启动时设置系统环境变量,以便 PHP 可以看到它们?

最佳答案

ConfigurationSettings WebRole 的云配置中的元素将允许您定义设置。顺便说一下,更改这些设置无需重新编译和重新部署您的角色。

对于您的案例来说,第二个最重要的元素是 Environment ,它使您能够定义环境变量。

您可以使用 RoleInstanceValue 使用配置设置的值来初始化环境变量。应该是 Value 的子元素。

如何构建RoleInstanceValue的XPATH可以引用XPath Cheat Sheet .

但最后,我会问你为什么仍然开发 WebRole,而不是使用 Web 应用程序和应用程序服务计划,你可以在 Azure 的 Web 应用程序中直接管理 AppSettings 和 ConnectionString,并将它们完全从 web.config 中删除?对我来说唯一明显的原因 - 使用与 Web 应用程序不兼容的第 3 方 API/组件(例如运行安装程序的要求或 COM 组件的使用)。

关于php - 在 Azure Web 角色上设置/获取系统变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com