php - 使用 PHP 获取用户环境变量

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

最佳答案

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

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

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

    关于php - 使用 PHP 获取用户环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447360/

    相关文章:

    r - 无法在 CentOS7 上安装 Facebook 先知的 R 库

    java cmd 命令适用于 Windows,但不适用于 centOS

    java - Dropwizard 环境变量替换类型检查错误

    linux - bash变量可以是多行的吗?

    php - 为什么 PHP 开发人员无法根据线程范围提供 setlocale 函数

    php - Zend Framework 路由 : . html 扩展

    php - Magento 2:通过脚本发送订单确认电子邮件

    php - 通过单击从列表中发布选定的值 - PHP/HTML

    oracle - SQL * Plus可以从运行它的机器上读取环境变量吗?

    linux - CentOS 5.5 - 在 RPM 规范文件中创建符号链接(symbolic link)