4.1) Добавляем директиву ExecCGI для запуска cgi скриптов на корневую директорию. Теперь весь блок будет выглядеть так:
<Directory />
Options Includes Indexes FollowSymLinks ExecCGI
AllowOverride All
Allow from all
</Directory>
4.2) Добавьте индексные файлы с расширением скриптов Perl: .pl .cgi.
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php index.pl index.cgi
</IfModule>
4.3) Найдите строку:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
Замените её на:
ScriptAlias /cgi-bin/ "C:/apache/cgi-bin/"
4.4) Найдите этот блок:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Замените его на:
<Directory "C:/apache/cgi-bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
Создайте пустой каталог C:/apache/cgi-bin, который будет содержать глобальные скрипты доступные из всех виртуальных хостов.
4.5) Найдите, раскомментируйте и отредактируйте строку, добавив .pl, определяющую расширения файлов perl скриптов:
AddHandler cgi-script .cgi .pl
5) Создайте тестовый скрипт printenv.pl следующего содержания:
Код:
#!/usr/bin/perl
##
## printenv -- Демонстрационная CGI программа выводящая значения переменных окружения
##
print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
Положите этот файл в C:\apache\localhost\www\ и C:\apache\cgi-bin\.
6) Запускаем веб сервер и проверяем:
Глобальный скрипт -
Для просмотра ссылки Войди или Зарегистрируйся
Локальный, относящийся к виртуальному хосту localhost -
Для просмотра ссылки Войди или Зарегистрируйся
Если скрипты не запускаются, проверьте что у них в shebang (первая строка). Обычно должно быть так:
#!/usr/bin/perl