.php 文件可以看到 Apache 环境变量,.html 文件则看不到

.php 文件可以看到 Apache 环境变量,.html 文件则看不到

考虑以下环境:

$ cat .htaccess
AddType application/x-httpd-php .php .html
SetEnv Foo Bar

$ cat test.php
<?php
echo "Hello: ";
echo $_SERVER['Foo'];
echo $_ENV['Foo'];
echo getenv('Foo');
?>

$ cat test.html
<?php
echo "Hello: ";
echo $_SERVER['Foo'];
echo $_ENV['Foo'];
echo getenv('Foo');
?>

这是输出test.php

Hello BarBarBar

这是输出test.html

Hello 

为什么会这样?我该如何解决?

这是phpinfo.phphttp://pastebin.com/rgq7up61

这是phpinfo.htmlhttp://pastebin.com/VUKFNZ36

如果有人知道我可以在哪里托管真正的网页,而不仅仅是 HTML,请告诉我,我会将内容移到那里。谢谢。

答案1

差异在块中可见:

Environment 

在 html 版本中,所有变量都以旧的全局形式设置:

$HTTP_HOST, $HTTP_USER_AGENT, etc.

还有新形式:

$_SERVER["HTTP_HOST"], $_SERVER["HTTP_USER_AGENT"], ...

在 php 版本中,它们仅以新形式设置。似乎 html 版本使用了另一个 php.ini。

我还看到了变量

$_SERVER["ORIG_SCRIPT_FILENAME"]    ="/var/www/cgi-bin/cgi_wrapper/cgi_wrapper"

也许 html 文件是用

/etc/php5/cli/php.ini

相关内容