<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_cgi

Description: выполнение подлинников CGI
Status: основа
Module Identifier: cgi_module
Source File: mod_cgi.c

резюме

любой файл, который имеет тип пантомимы application/x-httpd-cgi или тренер cgi-script (Apache 1.1 или позже), будет рассматриваться как подлинник CGI, и управляться сервером, с его продукцией, возвращаемой клиенту. Файлы приобретают этот тип любой при наличии названия, содержащего расширение, определенное AddType директива, или, будучи в a ScriptAlias справочник.

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

для введения в использование подлинников CGI с Apache, см. нашу обучающую программу на Dynamic Content With CGI .

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

директивы

темы

см. также

top

CGI Environment variables

сервер установит переменные окружающей среды CGI как описано в CGI specification , со следующими условиями:

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

CGI Debugging

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

CGI Logfile Формат

когда формируется, ошибочная регистрация 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 части могут отсутствовать, если подлинник не сделал продукцию что - нибудь на стандартной продукции или стандартной ошибке).

top

ScriptLog Directive

Description: местоположение ошибки подлинника CGI logfile
Syntax: ScriptLog file-path
Context: сервер config, действительный хозяин
Status: основа
Module: mod_cgi , mod_cgid

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

Example

ScriptLog logs/cgi_log

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

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

top

ScriptLogBuffer Directive

Description: максимальное количество ПОМЕЩЕННЫХ или ПОЧТОВЫХ запросов, которые будут зарегистрированы в scriptlog
Syntax: ScriptLogBuffer bytes
Default: ScriptLogBuffer 1024
Context: сервер config, действительный хозяин
Status: основа
Module: mod_cgi , mod_cgid

размер любого ПОМЕЩЕННОГО или ПОЧТОВОГО тела юридического лица, которое зарегистрировано к файлу, ограничен, предотвращать файл системного журнала, становящийся слишком большим слишком быстро, если большие тела получаются. По умолчанию, до 1024 байтов зарегистрированы, но это может быть изменено с этой директивой.

top

ScriptLogLength Directive

Description: предел размера подлинника CGI logfile
Syntax: ScriptLogLength bytes
Default: ScriptLogLength 10385760
Context: сервер config, действительный хозяин
Status: основа
Module: mod_cgi , mod_cgid

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