编写apache环境变量并在php脚本中读取它们
我有一个index.php文件,它正在运行一些脚本来请求mysql。出于明显的安全原因,我想从这个脚本中删除mysql凭据(主机、密码、用户、数据库),并用一些apache环境变量替换它们 我尝试使用以下代码行在/etc/apache2/envvars中创建这样的变量:编写apache环境变量并在php脚本中读取它们,php,apache2,environment-variables,Php,Apache2,Environment Variables,我有一个index.php文件,它正在运行一些脚本来请求mysql。出于明显的安全原因,我想从这个脚本中删除mysql凭据(主机、密码、用户、数据库),并用一些apache环境变量替换它们 我尝试使用以下代码行在/etc/apache2/envvars中创建这样的变量:export MYSQL\u USER='my\u USER',然后我打算使用getEnv php函数将其返回,如下所示:getEnv('MYSQL\u USER'),但这不会返回任何结果 有什么想法吗?谢谢 在Apache虚拟主
export MYSQL\u USER='my\u USER'
,然后我打算使用getEnv php函数将其返回,如下所示:getEnv('MYSQL\u USER')
,但这不会返回任何结果
有什么想法吗?谢谢 在Apache虚拟主机中,您可以使用
SetEnv VARIABLE_NAME value
然后使用
$variable = getenv('VARIABLE_NAME');
您可以在此处阅读有关SetEnv的更多信息四个步骤:
- 在/etc/apache2/envvars中:
export MYVAR='value'
- 在/etc/apache2/apache2.conf中:
PassEnv MYVAR
- 重新启动apache
- 在运行apache2的php文件中:
echo$\u服务器['MYVAR']代码>
- 创建一个文件
/etc/apache2/conf available/aws_key.conf
- 将所有权更改为root
sudo chown root:root/etc/apache2/conf available/aws_key.conf
- 更改文件权限,使其仅对root
sudo chmod 600/etc/apache2/conf available/aws_key.conf
- 将密码或密钥放入文件中,例如
SetEnv AWS\u SECRET\u ACCESS\u key abcdefg12345+-987654321
- 启用配置文件
sudo a2enconf aws\u键
- 重新启动Apache
sudo服务apache2重新启动
$\u服务器['AWS\u SECRET\u ACCESS\u key']
访问