1

在 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 时,我没有得到任何变量的值。任何人都可以帮忙吗?

4

1 回答 1

0

Centos 上的 Apache 并不像您期望的那样包含环境变量。一种解决方案是手动将文件包含在 /etc/sysconfig/httpd 中。

  • 将 /etc/profile.d/marketing_vars.sh 附加到 /etc/sysconfig/httpd 的末尾
  • 重启阿帕奇

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

于 2015-02-19T08:35:31.030 回答