【问题标题】:Where to set environment variables for Ubuntu running on Vagrant?在 Vagrant 上运行的 Ubuntu 在哪里设置环境变量?
【发布时间】:2015-12-27 18:36:41
【问题描述】:

我在 Heroku 上运行一个 PHP 应用程序,使用 heroku:config 命令检索环境变量没有问题,但我需要在本地有单独的变量。

我在 Ubuntu 中无所事事,但终其一生都无法弄清楚在哪里实际设置变量。我尝试过使用~/.bashrc,以及将变量放在配置脚本中,但我无法在PHP 中使用$_ENV(或getenv())函数来实际检索变量。当我调用这些函数时,我被告知变量未在环境中设置。

任何想法如何在本地环境中为 PHP Heroku 应用程序设置环境变量?

【问题讨论】:

    标签: php heroku vagrant environment-variables vagrantfile


    【解决方案1】:

    我猜它应该可以在~/.bashrc 文件中使用,但这可能取决于您使用的 bash。

    您可以将环境变量放入.profile,例如:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
    

    您需要为运行 apache 的用户执行此操作(如果 apache 或 nginx 或您使用的任何其他 Web 服务器) 确保为运行 apache 的用户添加这些变量(如果是 apache 或 nginx 或您使用的任何其他 Web 服务器),而不是您的 vagrant 用户。

    与 Heroku 的不同之处在于,您的 Heroku 用户将拥有您的所有进程,包括 Web 服务器,因此您定义的变量可以被访问,使用标准的 ubuntu 本地(或 vm-ized)Web 服务器将由 root 或网络用户。

    如果您不确定,您也可以将变量放在/etc/environment 中,并从/etc/apache2/envvars 引用此文件:

    # Load all the system environment variables.
    . /etc/environment
    

    【讨论】:

    • 如上所述,我尝试使用.bashrc 获取环境变量,但PHP getenv() 函数无法从中检索变量。
    • @JakeByman 猜你为本地用户(或流浪用户)修改了 .bashrc,它必须为拥有 apache 进程的用户完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2023-04-06
    相关资源
    最近更新 更多