【发布时间】:2014-02-11 22:34:19
【问题描述】:
我在 php 中访问操作系统环境变量时遇到问题 我在 centos 6.3 映像上安装了 apache/php
在 httpd.conf mod mod_env.so 中加载 在 php.ini 我设置 variables_order = "EGPCS" 重新启动 httpd(多次)
如果我在 shell 中输入“env”,我会得到 p>
DB_PORT_28017_TCP_PROTO=tcp
HOSTNAME=c6188a8bd77f
DB_NAME=/rockmongo/db
DB_PORT_27017_TCP=tcp://172.17.0.36:27017
TERM=xterm
DB_PORT_28017_TCP_PORT=28017
DB_PORT=tcp://172.17.0.36:27017
DB_PORT_27017_TCP_PORT=27017
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/etc/php.d
DB_PORT_27017_TCP_PROTO=tcp
DB_PORT_28017_TCP_ADDR=172.17.0.36
DB_PORT_28017_TCP=tcp://172.17.0.36:28017
SHLVL=1
HOME=/
DB_PORT_27017_TCP_ADDR=172.17.0.36
container=lxc
_=/usr/bin/env
OLDPWD=/etc
后面有变量,但是如果我在 php 中执行 print_r($_ENV); 我得到
Array ( [TERM] => xterm [PATH] => /sbin:/usr/sbin:/bin:/usr/bin [PWD] => / [LANG] => C [SHLVL] => 2 [_] => /usr/sbin/httpd )
还查看了 $_SERVER 和 $GLOBALS。
有趣的是,如果我在 shell 中执行 php -i,我会看到 _ENV 中正确设置了 env 变量
我应该注意到我在 docker 容器中运行它,但是我不认为这是一个问题,因为变量在 #env 和 #php -i 中正确显示。我认为我的 httpd/php 配置有问题
有人对此有什么建议吗? 谢谢
【问题讨论】:
-
都试过 print_r($_SERVER); & print_r($GLOBALS);没有运气对不起应该提到的
-
你想要哪个特定的变量
-
DB_PORT_28017_TCP_ADDR
-
您可以在类似的帖子中找到解决方案:stackoverflow.com/a/28601703/357314
-
如果您需要在 docker 中从 php 访问环境变量,这里是解决方案:stackoverflow.com/a/50943614/5466534
标签: php apache centos environment-variables docker