【问题标题】:How can I access environmental variables with WAMP server?如何使用 WAMP 服务器访问环境变量?
【发布时间】:2011-08-23 13:56:41
【问题描述】:

我正在尝试根据代码运行的环境调整我的代码以使用不同的数据库密码等。例如,我有我的开发服务器,其他开发人员有他的,生产环境有另一组设置。

由于我也有一些 Kohana 项目,因此我选择使用环境变量 KOHANA_ENV 来确定应用程序的运行位置。

问题在于,在我的 WAMP 服务器中,虽然这有效:

<?php echo getenv('REMOTE_ADDR'); ?>

,这不会(返回空):

<?php echo getenv('KOHANA_ENV'); ?>

当我在命令提示符中输入set 时,我看到了:

KOHANA_ENV=devbox1

所以它应该可以工作。

【问题讨论】:

    标签: environment-variables wamp getenv


    【解决方案1】:

    WAMP 不会以运行 wampmanager.exe 的人的身份运行,而是以 Apache 服务设置为运行的身份运行。通常是 LocalService(本地系统帐户)。

    http://support.microsoft.com/kb/821761 声明

    如果您更新环境变量或添加新的环境变量, 在您所做的更改生效之前,您必须重新启动计算机 在本地系统帐户下运行的服务。

    出现此行为是因为在本地系统下运行的服务 帐户从 Services.exe 进程继承其环境。这 Services.exe 进程接收本地环境设置 Windows 启动时的系统帐户。因为Services.exe进程 不使用 Windows 消息,当它收到消息时 表示在 Windows 启动后值已更改, Services.exe 进程不会更新其环境设置。你 不能强制正在运行的服务确认动态更改 到本地系统帐户的环境。

    确实在将环境变量添加到系统环境变量后重新启动计算机时,此代码:

    <?php echo getenv('YOUR_ENVIRONMENTAL_VARIABLE'); ?> 
    

    将打印预期的内容。

    【讨论】:

    • 我试过这个getenv()putenv()putenv() 不会永久保存变量。如何在我的服务器上找到可以手动保存变量以供永久使用的物理文件意味着它不会在 wamp/os 重新启动时取消设置。 (我有 dev win/wamp 和服务器 ubunto/xamp)两者都需要文件
    【解决方案2】:

    这敲响了..试试这个吧,

    global $HTTP_ENV_VARS;
    echo $HTTP_ENV_VARS["KOHANA_ENV"]
    

    【讨论】:

    • 不。这也返回了虚无。
    猜你喜欢
    • 2019-04-14
    • 2015-11-16
    • 1970-01-01
    • 2019-05-30
    • 2021-01-30
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多