Настройка выполнения CGI скриптов в apache 2.0

Маленькая заметка по настройке выполнения CGI скриптов в apache.
Свободный перевод подробнейшего мануала.
Итак приступим.
CGI - (Common Gateway Interface) это механизм который дает возможность взаимодействия любой программы и веб сервера apache. То есть, грубо говоря, веб сервер может выполнить любую внешнюю программу и результаты ее работы выдать веб браузеру. Неважно на чем написана программа. Механизм универсален. Но для этого необходимо указать веб серверу, что эту программу нужно выполнить. Вот для этого и необходима настройка веб сервера.

Для настройки есть два механизма. Первый и наиболее часто используемый - с помощью директивы ScriptAlias. Синтаксис такой:
ScriptAlias /cgi-bin "/home/home_dir/cgi-bin"
то есть при наборе в брaузере адреса http://www.ваш_домен.com/cgi-bin/ будут выполняться с крипты из каталога /home/home_dir/cgi-bin.
Обычно одной этой директивы достаточно, для того чтобы скрипты начали исполняться.
Одной из часто появляющихся ошибок является ошибка номер 500. Внутренняя ошибка сервера. Частенько она возникает из-за недостаточных прав для исполнения внешней программы. chmod 755 Вам поможет :)

Вторым вариантом настройки выполнения скриптов является использование директив AddHandler и SetHandler.
Пример:

Alias /mydir/ /var/www/mydir/
<directory>
SetHandler cgi-script
Options +ExecCGI
Order allow,deny
Allow from all
</directory>

Все файлы из папки /var/www/mydir при обращении в браузере http://www.ваш_домен.com/mydir/ будут исполняться как cgi скрипты.
Еще один вариант. В каталоге много html файлов. И там же нужно разрешить выполнение cgi скриптов. Тут нам поможет директива AddHandler. Пример:

Alias /slayer/ /var/www/slayer/
AddHandler cgi-script .pl
Options +ExecCGI
Order allow,deny
Allow from all

Исполняться как cgi скрипты будут только файлы имеющие расширение .pl
Напоследок пару тестовых скриптов. Они написаны на перле. Обычно для него все и настраивается. Создаем файл test.pl и пишем в нем:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

Вот и все. Помещаем файл в соотвествующую директорию веб сервера и вызываем его браузером. При успешной настройке в окне браузера выведется строка Hello, World.На этом закончу маленькую заметку по настройке выполнения cgi скриптов для веб сервера apache.

Добрый день. Подскажите, как

Добрый день.

Подскажите, как запустить JavaScript с помощью CGI-скрипта?

Т.е. имеем http://www.ваш_домен.com/XXXX.js , но необходимо запустить XXXX.js через CGI-скрипт.

Требуется чистый запуск, без выдергивания значений или обработки данных.

Буду безмерно благодарен.

icq 248923748

Подскажите, в каком файле

Подскажите, в каком файле нужно прописать эти директивы? Я поставил апач 2.2 и у меня файл httpd.conf пустой, пытался просто записать в него, но сервер не захотел запускаться Потом попытался записать в apache2.conf не могу найти подходящую строчку, и собственно после дополнения его сервер опять же не стартует...

Никак не могу понять, как

Никак не могу понять, как заставить Apache при обращении на, скажем, http://localhost выполнять http://localhost/cgi-bin/index.cgi?

Размести в корне сервера файл

Размести в корне сервера файл index.html следующего содержания:
<html>
<head>
<title> Тупой редирект </title>
<meta http-equiv="refresh" content="0; url=/cgi-bin/index.cgi"/>
</head>
</html>

делай так: 240-ая строка

делай так:
240-ая строка httpd.conf (в если там ничего не менял):
DirectoryIndex \cgi-bin\script.cgi
и будет тебе счастье =)

Самый верный и оптимальный

Самый верный и оптимальный вариант из всех предложенных

Это надо в .htaccess

Это надо в .htaccess копаться.

Угу.

Да именно в файле .htaccess