【发布时间】:2013-08-25 06:08:19
【问题描述】:
在我的 Apache (2.2) virtualHost 配置中,我想将我的错误日志通过管道传输到其他地方。
<VirtualHost *:80>
....
SetEnv toPhp hello
ErrorLog "|php /var/www/error.php >>/var/www/logs/vialora.log"
....
</VirtualHost>
然而,虽然 toPhp 变量现在在此虚拟主机所针对的站点中可用,但在 error.php 中缺少它。假设它的值是动态的,我如何访问这个环境变量?
【问题讨论】:
-
所以
echo $_SERVER["toPhp"]没有显示任何内容?你的error.php是什么样的? -
$stdin = fopen ('php://stdin', 'r'); ob_implicit_flush (true); var_dump(phpinfo());,很好地 var_dumps phpinfo(),但未设置 toPhp 值。 -
phpinfo() 输出中是否有可用的服务器变量?还是通过 vhost 配置中的 ErrorLog 条目从命令行有效地调用 PHP?即使那样,如果我手动执行
export toPhp=hello后跟php /srv/site/phpinfo.php | grep toPhp,我仍然看到 toPhp 设置在 $_SERVER -
是的,这些已设置:APACHE_PID_FILE、APACHE_RUN_USER、PATH、_、PWD、LANG、APACHE_RUN_GROUP、SHLVL、PHP_SELF、SCRIPT_NAME、SCRIPT_FILENAME、PATH_TRANSLATED、DOCUMENT_ROOT、REQUEST_TIME、argv、argc。我希望找到一种方法来传递环境的价值。变量并从 argv 读取它,但将变量放入 ErrorLog 指令将其作为字符串传递,而不是变量值。
-
您是否尝试将值放入您的 apache config envvars 文件中?
标签: php apache environment-variables virtualhost