使用PHP获取用户环境变量

时间:2013-07-03 11:59:20

标签: php centos environment-variables redhat

在centos和Redhat上我创建了一个文件/etc/profile.d/marketing_vars.sh并在其中添加了以下行

#Vars  for PowerMail
export CmsRoot="/var/www/html/cms/"
export PMRoot_Dev="/var/www/html/powermail/"
export PMRoot_QA="/var/www/html/powermail/"
export PMRoot_Pro="/var/www/html/powermail/"

在命令行上我点击“source marketing_vars.sh” 和“chmod + x /etc/profile.d/marketing_vars.sh”

然后我创建了一个test.php文件并将这些行添加到它

error_reporting(E_ALL ^ E_NOTICE);
echo "PMRoot_Dev = " . getenv("PMRoot_Dev");
echo "<br>";
echo "PMRoot_QA = " . getenv("PMRoot_QA");
echo "<br>";
echo "PMRoot_Pro = " . getenv("PMRoot_Pro");
echo "<br>";

当我浏览test.php时,我没有获得任何变量的值。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

Centos上的Apache不包含您期望的env变量。一种解决方案是手动包含/ etc / sysconfig / httpd。

中的文件
  • 将/etc/profile.d/marketing_vars.sh附加到/ etc / sysconfig / httpd
  • 的末尾
  • 重启apache

在apache,CLI和crons中保持一致的最佳解决方案是使用配置文件并包含/解析它以获取变量。