LINUX.ORG.RU
решено ФорумAdmin

Apache2 не выполняет cgi скрипты


0

1

Всем привет.

Имеется OS Debian Lenny. Стоит Apache (2.2.9). Потребовалось поставить Nagios из lenny-backports. После установки страничка Nagios (http://localhost/nagios3) доступна, но при переходе по любой ссылке на cgi-скрипт идет предложение его скачать. Посмотрел с помощью Firebug - Apache отдает content-type скрипта как Plain text.

Открыл mods-available/mime.conf, раскоментировал строчку

AddHandler cgi-script .cgi
Само собой, модуль mime подключен. Опция
Options +ExecCGI
имеется в sites-available/default. После перезапуска Apache ситуация не меняется. Пробовал выставить у apache LogLevel в debug - ничего полезного в логах не нашел.

У кого какие идеи?


Ответ на: комментарий от Eddy_Em

Ну это не упомянул, но nagios сам добавил конфиг с соответствующими параметрами:

ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3
ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3

ksv
() автор топика

CGI-файлы исполняемые?

Как выглядит секция для /usr/lib/cgi-bin/nagios3 ? Должно быть что-то вроде

<Directory "/usr/lib/cgi-bin/nagios3">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> CGI-файлы исполняемые?

Да, конечно. Владелец - root, права - 755.

> Как выглядит секция для /usr/lib/cgi-bin/nagios3 ?

<DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)>
        Options +ExecCGI FollowSymLinks

        DirectoryIndex index.php

        AllowOverride AuthConfig
        Order Allow,Deny
        Allow From All

        AuthName "Nagios Access"
        AuthType Basic
        AuthUserFile /etc/nagios3/htpasswd.users
        # nagios 1.x:
        #AuthUserFile /etc/nagios/htpasswd.users
        require valid-user
</DirectoryMatch>

> Да, а обычные CGI исполняются?

На этом сервере из веб приложений стоит только Cacti (php) и Nagios. Cacti нормально работает.

ksv
() автор топика

а в логах что-нить подозрительное есть?

anonymous
()
Ответ на: комментарий от Eddy_Em

> Поместите в обычную cgi-bin какой-нибудь простенький CGI и проверьте, работает ли он.

Если я все правильно понял. В /usr/lib/cgi-bin создал test.cgi:

#!/bin/sh

echo "Hello, World!"
Поставил права на выполнение. Результат - содержимое файла выводится, т.е. скрипт не отрабатывается.

> а в логах что-нить подозрительное есть?

access.log и error.log (LogLevel info) не говорят ничего необычного. Первый констатирует факт запроса скриптов, второй ругается только на отсутствие favicon.ico. Про остальные ошибки отмалчивается.

ksv
() автор топика
Ответ на: комментарий от ksv

А где «Content-type: text/html\n\n» ?

Вот вам простейший скрипт:

#!/usr/bin/perl

# your httpd.conf should have something like this:

# Alias /perl/  /real/path/to/perl-scripts/

# <Location /perl>
# SetHandler  perl-script
# PerlHandler Apache::Registry
# PerlSendHeader On
# Options +ExecCGI
# </Location>

print "Content-type: text/html\n\n";

print "<b>Date: ", scalar localtime, "</b><br>\n";

print "<hr><h1>It worked!</h1>\n";
print "This script runs under: ".$ENV{"GATEWAY_INTERFACE"}."<hr></n";

$ENV{"SERVER_NAME"}="(Hidden for security purposes)";
$ENV{"SERVER_ADMIN"}="(Hidden for security purposes)";
$ENV{"SCRIPT_FILENAME"}="(Hidden for security purposes)";
$ENV{"SERVER_SOFTWARE"}="(Hidden for security purposes)";
$ENV{"SERVER_PORT"}="(Hidden for security purposes)";
$ENV{"SERVER_SIGNATURE"}="Apache-AdvancedExtranetServer (Complete info hidden)";
$ENV{"PATH"}="(Hidden for security purposes)";
$ENV{"SERVER_ADDR"}="(Hidden for security purposes)";
$ENV{"DOCUMENT_ROOT"}="(Hidden for security purposes)";
$ENV{"MOD_PERL"}="(Hidden for security purposes)";


print "%ENV: <br>\n", map { "$_ = $ENV{$_} <br>\n" } keys %ENV;
Если не заработает, значит, mod_cgi у вас не загружен. Или не настроено выполнение cgi в директории /cgi-bin

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> Если не заработает, значит, mod_cgi у вас не загружен.

И ведь правда, слона-то я и не приметил. Спасибо, подгрузил модуль - заработало.

ksv
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.