我有一个index.php文件正在运行一些发出mysql请求的脚本。出于明显的安全原因,我想从此脚本中删除mysql凭据(主机,密码,用户,数据库),并将其替换为一些apache环境变量。
我尝试使用以下代码行在/ etc / apache2 / envvars中创建此类变量:export MYSQL_USER='my_user'
然后我打算使用getEnv php函数将其恢复原状:getenv('MYSQL_USER')
但是这会返回什么都没有。
有什么想法吗?谢谢!
答案 0 :(得分:2)
四个步骤:
export MYVAR='value'
PassEnv MYVAR
echo $_SERVER['MYVAR'];
答案 1 :(得分:0)
在Apache的虚拟主机中,您可以使用
SetEnv VARIABLE_NAME value
并使用
从PHP代码中获取此变量的值$variable = getenv('VARIABLE_NAME');
您可以在此处阅读有关SetEnv的更多信息http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv
答案 2 :(得分:0)
如果您希望将密码存储在环境变量中,但又不希望其他用户能够读取密码或密钥,则可以执行以下步骤(在Ubuntu 18.04上进行测试):
/etc/apache2/conf-available/aws_key.conf
sudo chown root:root /etc/apache2/conf-available/aws_key.conf
sudo chmod 600 /etc/apache2/conf-available/aws_key.conf
可读。SetEnv AWS_SECRET_ACCESS_KEY abcdefg12345+-987654321
sudo a2enconf aws_key
sudo service apache2 restart
此键可通过$_SERVER['AWS_SECRET_ACCESS_KEY']
在PHP中访问。