Привет!
Продолжу серию постов по настройке сервера на Ubuntu. Сегодня мы рассмотрим выполнение и вывод результата работы perl-скриптов.
[spoiler name=»Код скрипта»]#!/usr/bin/perl[/spoiler]
При обращении к нему мы увидим его код:
print "Content-type: text/html\n\n";
print "Hello, world!";
Просто залить скрипт на сервер в папку cgi-bin мало, необходимо произвести специальную настройку. Напомню, у нас есть сервер с ОС Ubuntu 14.04 и Apache 2.4.7. Первым делом правим файл mime.conf, который расположился в /etc/apache2/mods-available/:
 nano /etc/apache2/mods-available/mime.conf 
После строчки  #AddHandler cgi-script .cgi 
добавляем  AddHandler cgi-script .pl 
и перезагружаем Apache:  service apache2 reload 
Теперь при обращении напрямую сервер возвращает нам ошибку 403 (Запрещено). Скорее всего это будет именно так. Для исправления ситуации необходимо прописать в конфигурации виртуального хоста после DocumentRoot:
        
                AllowOverride None
                Options +ExecCGI
                Require all granted
        
и выполняем в консоли команду  chmod +x /путь/до/cgi-bin/название_скрипта.pl 
Теперь наш скрипт выполняется:
Для вывода результата на какой-либо странице необходимо в конфиг-файле, для директории сайта дописать Options Includes и на следующей строчке: AddHandler server-parsed .shtml .php (расширения могут быть любые), чтобы получилось так:
 . В моём случае это тег H2:
[spoiler name=»Код страницы hi.shtml»]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/go.php?key=888&url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/spoiler]
В действии эту страницу можно увидеть тут: oles.pp.ru/demo/perl/hi.shtml
<html xmlns="/go.php?key=888&url=http://www.w3.org/1999/xhtml">
<head>
<title>Hi!</title>
<style type="text/css">
body {
 background:#DEE7F6;
 text-align: center;
 }
h2 {color: #99bbdd; font-size: 24px; font-weight: bold;}
#body {
 background: #ffffff;
 width:500px;
 margin: 5px auto;
 border-radius: 15px;
 -moz-border-radius: 15px;
 -khtml-border-radius: 15px;
 -webkitborder-radius: 15px;
}
</style>
</head>
<body>
<div id="body"><h2><!--#include virtual="/cgi-bin/hi.pl"--></h2>
Тут может быть любой текст...</div>
</body>
</html>
Спасибо за внимание!