【问题标题】:How to add php environment variable?如何添加php环境变量?
【发布时间】:2018-06-16 16:27:18
【问题描述】:

apache 2.4、centos 7.1 上的 php 5.4/fcgi。 php/apache 由 cpanel easyapache 构建/管理。

我正在尝试向 phpinfo() 上显示的“环境”部分添加一个条目

我尝试了以下方法:

  • httpd.conf 中的 SetEnv - 它不会将其添加为环境变量,它出现在 $_SERVER 下
  • 添加到 /etc/sysconfig/httpd - 没有任何效果。
  • httpd.conf 中的 FcgidInitialEnv MY_VARIABLE SomeValue - 也无效。

任何建议表示赞赏。注意 phpinfo 中的这一部分不是用来显示系统环境变量的。

【问题讨论】:

  • 如果您只是想添加到您的路径中,您是否尝试过终端中的export PATH=$PATH:/new/folder/path
  • 我不想添加到路径中,我想添加一个全新的变量。
  • 那么你应该可以从终端执行export EXAMPLE=1
  • 我不是在谈论系统环境变量,更新问题以澄清这一点

标签: php apache fastcgi


【解决方案1】:

假设您使用的是mod_fcgi,并且您配置了这样的包装脚本:

FcgidWrapper /var/www/wrapper/php72wrapper .php

包装脚本php72wrapper 然后定义了当请求被分派到真正的php 二进制文件时的环境变量 - MY_VARIABLE 已添加为示例:

#!/bin/sh
export PHPRC="/var/www/wrapper/php72wrapper"
export MY_VARIABLE="Whatever it should contain"
exec /usr/bin/php72

在 PHP 中,您可以通过例如访问该值。使用getenv('MY_VARIABLE')。除此之外,MY_VARIABLE 也列在phpinfo() 的“环境”部分。

另一种方法是在您的 Apache VirtualHost 配置中使用 FcgidInitialEnv

FcgidInitialEnv MY_VARIABLE "Whatever it should contain"

https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidinitialenv

【讨论】:

  • 谢谢 Oliver,请注意 php/fcgi/apache 是由 cpanel 管理的,似乎没有任何明确的方法可以添加包装脚本。
  • phpinfo() 的输出中搜索ORIG_SCRIPT_FILENAME,这是正在使用的包装脚本。
  • 在您的 Apache VirtualHost 配置中由 FcgidInitialEnv MY_VARIABLE SomeValue 更新了答案
  • 再次感谢,我已经尝试过 FcgidInitialEnv 也无济于事。更新了我的答案以包含此
【解决方案2】:

终于找到了一个解决方案,唯一可行的方法是在 php 调用周围添加一个包装脚本,并在那里设置值 - 感谢 Oliver Hader 的提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2011-07-11
    • 1970-01-01
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多