使用 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,也可以使用 Include
或 IncludeOptional
以上是关于使用 Apache 时在 PHP 中设置用于访问的环境变量的主要内容,如果未能解决你的问题,请参考以下文章
使用 Debian 在 apache2 中设置自定义 localhost 目录
从 UserControls 使用时在 wpf 中设置制表符顺序?
如何在运行时在 org.jboss.logging 中设置日志记录