Настройка выполнения 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/
SetHandler cgi-script
Options +ExecCGI
Order allow,deny
Allow from all
Все файлы из папки /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.
Никак не могу понять, как заставить Apache при обращении на, скажем, http://localhost выполнять http://localhost/cgi-bin/index.cgi?
↓ Quote | Posted January 20, 2010, 2:31 pm