Заголовки $ _SERVER отсутствуют в PHP, но присутствуют в Python

Я за прозрачным прокси, который всегда добавляет заголовок HTTP_X_FORWARDED_FOR.

Когда я сбрасываю заголовки с помощью PHP, заголовок отсутствует. Но Python работает .. lol

Python:

remote_addr = os.environ.get('HTTP_X_FORWARDED_FOR', os.environ.get('REMOTE_ADDR', '')) 

PHP:

 print_r($_SERVER['HTTP_X_FORWARDED_FOR']); print_r($_SERVER['REMOTE_ADDR']); 

—- EDIT: Добавлено больше информации о configs ниже ——

Версия PHP: 5.2.16

PHP Configure Command:

'./configure' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-fastcgi' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--enable-wddx' '--enable-zip' '--prefix=/usr' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/opt/openssl' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mhash=/opt/mhash/' '--with-mime-magic' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/opt/openssl' '--with-openssl-dir=/opt/openssl' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-png-dir=/usr' '--with-pspell' '--with-sqlite=shared' '--with-tidy=/opt/tidy/' '--with-ttf' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'

API-интерфейс PHP Server: CGI/FastCGI

Python Работает как: CGI

Hostgator не поддерживает mod_python, но я нахожусь в выделенном ящике, поэтому могу модифицировать конфиги, если бы знал только, как .. 🙂

Вы используете FastCGI. PHP это не покладисто, хотя он добивается прогресса. С PHP 5.3 пришел php-fpm, с 5.4 появятся HTTP-заголовки для FastCGI . См. Журнал изменений apache_request_headers или getAllHeaders() .

Хотя нет чистого решения для PHP, первое примечание предыдущей ссылки содержит обходное решение: с помощью mod_rewrite для настройки переменных среды.

 # Apache config for mod_rewrite # from callum85 at notspam dot msn dot com 19-Apr-2007 06:07 RewriteEngine on RewriteRule .* - [E=HTTP_X_FORWARDED_FOR:%{HTTP_X_FORWARDED_FOR}]