小编Jef*_*Wen的帖子

将 systemd 用于 Apache 环境变量或 SetEnv?

我的系统:

  1. CentOS 7.2.1511(核心)
  2. 阿帕奇 2.4.6

我有很多环境变量想添加到 Apache 中。

我目前正在通过添加到我的/etc/httpd/conf.d/vhosts.conf文件中来做到这一点:

SetEnv API_USERNAME 'my_special_username'
SetEnv API_PASSWORD 'my_special_password'
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式访问 PHP 中的两个环境变量:

echo $_SERVER['API_USERNAME'];
echo $_SERVER['API_PASSWORD'];
// or
echo getenv('API_USERNAME');
echo getenv('API_PASSWORD');
Run Code Online (Sandbox Code Playgroud)

最近,我发现我还可以通过添加环境变量systemd

我创建文件/etc/systemd/system/httpd.service.d/envvars.conf

[Service]
Environment="API_USERNAME=my_special_username"
Environment="API_PASSWORD=my_special_password"
Run Code Online (Sandbox Code Playgroud)

其次是

systemctl daemon-reload

systemctl restart httpd

我可以通过以下方式访问 PHP 中的两个环境变量:

echo getenv('API_USERNAME');
echo getenv('API_PASSWORD');
// $_SERVER does not work when I specify environment variables in systemd
echo $_SERVER['API_USERNAME']; // returns blank
echo $_SERVER['API_PASSWORD']; // returns blank
Run Code Online (Sandbox Code Playgroud)

在安全性或最佳实践方面,最好使用 SetEnv 或systemd …

php redhat centos systemd apache-2.4

6
推荐指数
1
解决办法
4764
查看次数

标签 统计

apache-2.4 ×1

centos ×1

php ×1

redhat ×1

systemd ×1