Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置使用Apache时在PHP中访问的环境变量_Php_Apache_Ubuntu_Environment Variables - Fatal编程技术网

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

设置使用Apache时在PHP中访问的环境变量,php,apache,ubuntu,environment-variables,Php,Apache,Ubuntu,Environment Variables,我有一个Linux环境和一个PHP Web应用程序,它使用PHP中的getenv基于环境变量有条件地运行。我需要知道如何设置这些环境变量才能使应用程序正常工作。我不知道如何在Apache上设置它 此外,我需要能够为每个域分别配置单独的环境变量 请就如何实现这一目标提出建议。大致如下: <VirtualHost hostname:80> ... SetEnv VARIABLE_NAME variable_value ... </VirtualHost>

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

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


请就如何实现这一目标提出建议。

大致如下:

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

...
SetEnv变量\名称变量\值
...

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

SetEnv KOHANA_ENV production

要添加环境变量,只需将其添加到.htaccess即可,但在centos 6.4上的httpd 2.2上,这是可行的

/etc/sysconfig/httpd

export mydocroot=/var/www/html
然后简单地做这个

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

如果您的服务器是Ubuntu,Apache版本是2.4

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

然后导出“/etc/apache2/envvars”位置中的变量

就像下面这行一样,您需要在“/etc/apache2/envvars”中添加一个额外的行
export GOROOT=/usr/local/go

不在我的$\u ENV数组中,有关检索值,请参见:@i\u a您可以使用
getenv('VARIABLE\u NAME')访问PHP中的值
在windows上的xampp中,文件将是C:\xampp\apache\conf\extra\httpd vhosts。conf@i_a在我的机器上,该值也可以在
$\u SERVER
变量中找到。如果不想更改vhost.confi,也可以使用
Include
IncludeOptional
,这与使用.env文件(如拉威尔会这么做吗?这会不会让它更不安全?我问这个问题是因为我正在用多个框架(laravel、express、django等)构建相同的后端结构,而其他语言的一些开发人员说它“不适合使用.env,应该使用“服务器配置”,或者通过命令行heroku风格来实现
service httpd restart;