ИнструкцииПолезно

Выполнение perl-скриптов на сервере

Привет!

Продолжу серию постов по настройке сервера на Ubuntu. Сегодня мы рассмотрим выполнение и вывод результата работы perl-скриптов.

PERL FILE Давайте создадим простой perl-скрипт и загрузим его на сервер.
[spoiler name=»Код скрипта»]#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, world!";
[/spoiler] При обращении к нему мы увидим его код:
2015-01-02_114250

Просто залить скрипт на сервер в папку 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 
Теперь наш скрипт выполняется:
2015-01-02_122832

Для вывода результата на какой-либо странице необходимо в конфиг-файле, для директории сайта дописать Options Includes и на следующей строчке: AddHandler server-parsed .shtml .php (расширения могут быть любые), чтобы получилось так:
2015-01-02_133353

SHTML Теперь создадим страницу hi.shtml, для вывода содержимого hi.pl, который использовался в примерах. В любом месте страницы, где нам необходимо подключить perl-скрипт вставляем  . В моём случае это тег 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">
<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>
[/spoiler] В действии эту страницу можно увидеть тут: oles.pp.ru/demo/perl/hi.shtml

Спасибо за внимание!

Олесь Быков

Автор этого блога. Журналист-IT'шник. Создаю сайты с 2009 года, публикуюсь с 2011.

Leave a Reply

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.