Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124      125      126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 125. Модуль Apache mod_cgi

Любой файл с обработчиком cgi-script будет рассматриваться как CGI-скрипт и запускаться сервером, а его вывод будет возвращен клиенту. Файлы получают этот обработчик, либо имея имя, содержащее расширение, определенное директивой AddHandler , либо находясь в ScriptAlias каталоге.

Введение в использование сценариев CGI с Apache см. в нашем руководстве по динамическому содержимому с CGI.

При использовании многопоточного MPM под unix модуль mod_cgid следует использовать вместо этого модуля. На уровне пользователя эти два модуля практически идентичны.

Для обратной совместимости обработчик cgi-script также будет активирован для любого файла с mime-типом application/x-httpd-cgi . Использование волшебного пантомимы не рекомендуется.

Переменные среды CGI

Сервер установит переменные среды CGI, как описано в спецификации CGI, со следующими условиями:

PATH_INFO
Это будет недоступно, если для AcceptPathInfo директивы явно задано значение off . Поведение по умолчанию, если AcceptPathInfo оно не задано, заключается в том, что mod_cgi будет приниматься информация о пути ( /more/path/info следующая за именем файла сценария в URI), в то время как главный сервер будет возвращать ошибку 404 NOT FOUND для запросов с дополнительной информацией о пути. Отсутствие AcceptPathInfo директивы имеет тот же эффект, что и установка ее On для mod_cgi запросов.
УДАЛЕННЫЙ УЗЕЛ
Это будет установлено только в том случае, если HostnameLookups установлено значение on (по умолчанию оно отключено) и если обратный DNS-поиск адреса запрашивающего хоста действительно находит имя хоста.
REMOTE_IDENT
Это будет установлено только в том случае, если IdentityCheck установлено on и хост, осуществляющий доступ, поддерживает протокол ident. Обратите внимание, что на содержимое этой переменной нельзя полагаться, потому что ее легко подделать, а если между клиентом и сервером есть прокси, то обычно это совершенно бесполезно.
REMOTE_USER
Это будет установлено только в том случае, если сценарий CGI подлежит аутентификации.

Этот модуль также использует основные функции ap_add_common_vars и ap_add_cgi_vars для добавления переменных среды, таких как:

DOCUMENT_ROOT
Установите с содержимым соответствующей DocumentRoot директивы.
ИМЯ СЕРВЕРА
Полное доменное имя, связанное с запросом.
SERVER_ADDR
IP-адрес виртуального хоста, обслуживающего запрос.
SERVER_ADMIN
Установите с содержимым соответствующей ServerAdmin директивы.

Для исчерпывающего списка предлагается написать базовый CGI-скрипт, который выводит все переменные окружения, переданные Apache, в удобном формате.

CGI-отладка

Отладка сценариев CGI традиционно была сложной задачей, главным образом потому, что было невозможно изучить вывод (стандартный вывод и ошибки) для сценариев, которые не работают должным образом. Эти директивы обеспечивают более подробное протоколирование ошибок при их возникновении.

Формат файла журнала CGI

При настройке журнал ошибок CGI регистрирует любой CGI, который не выполняется должным образом. Каждый сценарий CGI, который не работает, приводит к регистрации нескольких строк информации. Первые две строки всегда имеют формат:

%% [time] request-line
%% HTTP-status CGI-script-filename

Если ошибка заключается в том, что CGI-скрипт не может быть запущен, файл журнала будет содержать две дополнительные строки:

%%error
error-message

В качестве альтернативы, если ошибка является результатом того, что сценарий возвращает неверную информацию заголовка (часто из-за ошибки в сценарии), регистрируется следующая информация:

%request
All HTTP request headers received
POST or PUT entity (if any)
%response
All headers output by the CGI script
%stdout
CGI standard output
%stderr
CGI standard error

(Части %stdout и %stderr могут отсутствовать, если скрипт ничего не выводит на стандартный вывод или стандартную ошибку).



Директива ScriptLog

Описание:Расположение файла журнала ошибок сценария CGI
Синтаксис: ScriptLog file-path
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль: mod_cgi , mod_cgid

Директива ScriptLog устанавливает файл журнала ошибок сценария CGI. Если нет ScriptLog , журнал ошибок не создается. Если указано, любые ошибки CGI регистрируются в имени файла, указанном в качестве аргумента. Если это относительный файл или путь, он берется относительно файла ServerRoot .

Пример

 Журналы ScriptLog/cgi_log 

Этот журнал будет открыт от имени пользователя, от имени которого запущены дочерние процессы, т.е. пользователя, указанного в основной User директиве. Это означает, что либо каталог, в котором находится журнал сценариев, должен быть доступен для записи этому пользователю, либо файл должен быть создан вручную и разрешен для записи этим пользователем. Если вы поместите журнал сценария в свой основной каталог журналов, НЕ изменяйте разрешения каталога, чтобы сделать его доступным для записи пользователю, от имени которого запускаются дочерние процессы.

Обратите внимание, что ведение журнала сценариев предназначено для отладки при написании сценариев CGI и не предназначено для постоянной активации на работающих серверах. Он не оптимизирован по скорости или эффективности и может иметь проблемы с безопасностью, если используется способом, отличным от того, для которого он был разработан.



Директива ScriptLogBuffer

Описание:Максимальное количество запросов PUT или POST, которые будут записаны в журнал сценариев
Синтаксис: ScriptLogBuffer bytes
По умолчанию: ScriptLogBuffer 1024
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль: mod_cgi , mod_cgid

Размер любого тела объекта PUT или POST, которое регистрируется в файле, ограничен, чтобы предотвратить слишком быстрый рост файла журнала при получении больших тел. По умолчанию регистрируется до 1024 байт, но это можно изменить с помощью этой директивы.



Директива ScriptLogLength

Описание:Ограничение размера файла журнала сценария CGI
Синтаксис: ScriptLogLength bytes
По умолчанию: ScriptLogLength 10385760
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль: mod_cgi , mod_cgid

ScriptLogLength может использоваться для ограничения размера файла журнала сценария CGI. Поскольку файл журнала регистрирует много информации для каждой ошибки CGI (все заголовки запросов, все выходные данные скрипта), он может вырасти до большого файла. Чтобы предотвратить проблемы из-за неограниченного роста, эту директиву можно использовать для установки максимального размера файла журнала CGI. Если файл превышает этот размер, в него больше не будет записана информация.



 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124      125      126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru