在 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 时,我没有得到任何变量的值。任何人都可以帮忙吗?
最佳答案
Centos 上的 Apache 并不像您期望的那样包含环境变量。一种解决方案是手动将文件包含在/etc/sysconfig/httpd 中。
在 apache、CLI 和 crons 中保持一致的最佳解决方案是使用配置文件并包含/解析它以获取变量。
关于php - 使用 PHP 获取用户环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447360/