Переменные окружения веб-сервера Apache

Переменные окружения — очень важный механизм взаимодействия веб-сервера с предобработчиками запросов. При получении HTTP-запроса веб-сервер формирует переменные окружения, занося в них различную информацию: IP-адрес клиента, запрашиваемый документ, параметры запроса и т.п. При передаче управления какому-нибудь предобработчику последний имеет доступ к переменным окружения веб-сервера, следовательно, ему доступна выше перечисленная информация. Давайте рассмотрим основные переменные окружения веб-сервера Apache:

SERVER_NAME — содержит доменное имя сервера. Apache устанавливает конкретное имя или виртуальный хост, по которому обратился клиент;
SERVER_ADDR — IP-адрес сервера. Устанавливается адрес, по которому выполнил соединение клиент;
SERVER_PORT — порт сервера. Устанавливается порт, по которому выполнил соединение клиент (тот самый порт, который по умолчанию 80 для веб-серверов);
REMOTE_ADDR — IP-адрес клиента;
DOCUMENT_ROOT — корневой каталог веб-сервера (либо текущего виртуального хоста);
REQUEST_METHOD — тип HTTP-запроса;
REQUEST_URI — путь к запрашиваемому документу (то, что передается вторым параметром в первой строке HTTP-запроса);
QUERY_STRING — строка параметров запроса (об этом поподробнее поговорим в следующей статье);
HTTP_HOST — содержит значение заголовка Host HTTP-запроса. В большинстве случаев совпадает с SERVER_NAME;
HTTP_USER_AGENT — содержит значение заголовка User-Agent HTTP-запроса. В этом заголовке клиент передает информацию о себе: версию операционной системы, браузера, и т.д.;
HTTP_REFERER — содержит значение заголовка Referer HTTP-запроса (об этом скоро будет отдельная статья).

К переменным окружения Apache возможен доступ внутри PHP-скриптов. Все они находятся в глобальном PHP-массиве $_SERVER.

Создайте файл envvars.php со следующим содержимым:

<pre>
<?php
  print_r( $_SERVER );
?>
</pre>

Данный скрипт выведет весь массив $_SERVER:

Array
(
    [HTTP_USER_AGENT] => Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.00
    [HTTP_HOST] => test-domain1
    [HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    [HTTP_ACCEPT_LANGUAGE] => ru-RU,ru;q=0.9,en;q=0.8
    [HTTP_ACCEPT_CHARSET] => iso-8859-1, utf-8, utf-16, *;q=0.1
    [HTTP_ACCEPT_ENCODING] => deflate, gzip, x-gzip, identity, *;q=0
    [HTTP_CONNECTION] => Keep-Alive, TE
    [HTTP_TE] => deflate, gzip, chunked, identity, trailers
    [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
    [SystemRoot] => C:\WINDOWS
    [COMSPEC] => C:\WINDOWS\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    [WINDIR] => C:\WINDOWS
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => test-domain1
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => C:/Program Files/Apache/htdocs/test-domain1/www
    [SERVER_ADMIN] => [no address given]
    [SCRIPT_FILENAME] => C:/Program Files/Apache/htdocs/test-domain1/www/envvars.php
    [REMOTE_PORT] => 1075
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /envvars.php
    [SCRIPT_NAME] => /envvars.php
    [PHP_SELF] => /envvars.php
    [REQUEST_TIME] => 1292653306
)

Обратиться к конкретной переменной окружения в PHP-скрипте можно следующим образом:

$_SERVER['имя_переменной_окружения']

то есть, в качестве индекса массива $_SERVER использовать имя переменной окружения, например:

echo "Ваш IP-адрес: " . $_SERVER["REMOTE_ADDR"];

Комментарии

Оставить комментарий »

 
Сергей
21 февраля 2012, 13:53
#1
 

К переменным окружения Apache возможен доступ внутри PHP-скриптов. Все они находятся в глобальном PHP-массиве $_SERVER.

Создайте файл envvars.php со следующим содержимым:

Здравствуйте. Объясните пожалуйста где массив? И файл создавать где?

Joker-jar
21 февраля 2012, 15:09
#2
 

Сергей, здравствуйте. Файл нужно создавать в корневом каталоге веб-сервера. Почитайте предыдущие статьи и уроки по установке и настройке веб-сервера и PHP.

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий