Назад | Перейти на главную страницу

Файлы .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.php: http://pastebin.com/rgq7up61

Вот это phpinfo.html: http://pastebin.com/VUKFNZ36

Если кто-нибудь знает, где я могу разместить настоящую веб-страницу, а не только HTML-код, пожалуйста, дайте мне знать, и я перенесу туда содержимое. Спасибо.

разница видна в блоке:

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