使用 Apache 时在 PHP 中设置用于访问的环境变量

Posted

技术标签:

【中文标题】使用 Apache 时在 PHP 中设置用于访问的环境变量【英文标题】:Setting environment variables for accessing in PHP when using Apache 【发布时间】:2012-06-09 18:33:36 【问题描述】:

我有一个 Linux 环境,我有一个 php Web 应用程序,它基于环境变量在 PHP 中使用 getenv 有条件地运行。我需要知道如何设置这些环境变量以使应用程序正常工作。我不确定如何在 Apache 上进行设置。

另外,我需要能够为每个域分别配置单独的环境变量。

请就我如何实现这一点提出建议。

【问题讨论】:

***.com/questions/146354/… 【参考方案1】:

如果你的服务器是 Ubuntu 并且 Apache 版本是 2.4

服务器版本:Apache/2.4.29 (Ubuntu)

然后你在/etc/apache2/envvars位置导出变量。

就像下面这行,你需要在/etc/apache2/envvars中多加一行

export MY_ENV_NAME=myEnvValue

【讨论】:

如果您来这个问题是为了 LAMP 堆栈,这可能就是您想要使用的。顺便说一句,答案很好!【参考方案2】:

难以置信,但在 centos 6.4 上的 httpd 2.2 上可以正常工作。

/etc/sysconfig/httpd中导出环境变量

export mydocroot=/var/www/html

然后简单地这样做......

<VirtualHost *:80>
  DocumentRoot $mydocroot
</VirtualHost>

最后……

service httpd restart;

【讨论】:

【参考方案3】:

您也可以在 .htaccess 文件中执行此操作,前提是它们已在网站上启用。

SetEnv KOHANA_ENV production

您只需添加到 .htaccess 即可添加环境变量

【讨论】:

这与使用 .env 文件(例如 laravel 的方式)有什么不同?这是否会降低安全性?我问这个是因为我正在使用多个框架(laravel、express、django 等)构建相同的后端结构,并且这些其他语言的一些开发人员说它不适合使用 .env 并且“服务器配置”应该是改为使用,或通过命令行执行,heroku 样式【参考方案4】:

类似的东西:

<VirtualHost hostname:80>
   ...
   SetEnv VARIABLE_NAME variable_value
   ...
</VirtualHost>

【讨论】:

不在我的 $_ENV 数组中,要检索值,请参阅:***.com/questions/2378871/… @i_a 你可以使用getenv('VARIABLE_NAME')访问PHP中的值 在 Windows 上的 xampp 中,文件将为 C:\xampp\apache\conf\extra\httpd-vhosts.conf @i_a 在我的机器上,该值也可以在$_SERVER 变量中找到。 如果您不想更改 vhost.conf,也可以使用 IncludeIncludeOptional

以上是关于使用 Apache 时在 PHP 中设置用于访问的环境变量的主要内容,如果未能解决你的问题,请参考以下文章

使用 Debian 在 apache2 中设置自定义 localhost 目录

从 UserControls 使用时在 wpf 中设置制表符顺序?

如何在运行时在 org.jboss.logging 中设置日志记录

使用mysql中的访问列在php中设置用户角色时出错

MySQL 在插入时在 DATETIME 字段中设置当前日期

如何在开始时在表格中设置分页的第 2 页