考虑以下环境:
$ 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.php
:
http://pastebin.com/rgq7up61
这是phpinfo.html
:
http://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