CentOS: mod_perl, directadmin - Справочник Манимейкера или Народные ссылки



CentOS: mod_perl, directadmin

Mod_perl -- это С модуль Apache, реализующий Perl интерпретатор + набор Perl модулей, предоставляющих следующие интересные возможности:

1. Кэширование откомпилированых cgi скриптов (Apache::Registry.pm)
2. Perl интерфейс к C API Apache
Большинство разработчиков используют mod_perl чтобы увеличить производительность своих скриптов -- Apache не запускает новый процесс при каждом запросе к script.pl, т.к. имеет теперь свой Perl интерпретатор, и не компилирует script.pl при каждом запросе, т.к. Apache::Registry.pm хранит ваши откомпилированые скрипты в кэше. Perl интерфейс к C API Apache используется разработчиками не так часто.

mod_perl 1.0

Mod_perl - это дополнительный модуль для веб-сервера Apache, встраивающий полнофункциональный интерпретатор языка Perl в сервер.

В случае работы с mod_perl, интерпретатор Perl подгружается и запускается только один раз, при запуске процесса Apache. Выполнение программного кода происходит намного быстрее, чем при работе через mod_cgi, т.к. нет необходимости заново запускать интерпретатор Perl для каждого скрипта.

Преимущества, которые дает использование mod_perl, в сравнении с использованием стандартного интерпретатора Perl совместно с сервером Apache и mod_cgi:

  • возможность создания обработчиков Apache на языке perl;
  • доступ ко всем стадиям обработки http-запросов;
  • увеличение скорости выполнения скриптов за счет снижения затрат времени на регулярную загрузку интерпретатора;
  • увеличение скорости выполнения скриптов и снижение нагрузки на сервер за счет использования Apache::Registry;
  • наличие дополнительных модулей, которые позволяют использовать в разработках сессии, пароли и базы данных с сохранением преимуществ mod_perl;
  • возможность встраивания инструкций perl в конфигурационный файл сервера;
  • perl-интерфейс к API Apache;
  • ментальное: повышенные требования к качеству написания скриптов и как следствие - увеличение скорости выполнения программ и повышение уровня безопасности.

Недостатки mod_perl:

  • высокие требования к объему памяти.

mod_perl 2.0

Mod_perl 2.0 это mod_perl, который предназначен для работы с сервером Apache 2.0. Он учитывает те изменения, которые произошли в развитии Perl и Apache с момента появления mod_perl 1.0.

Наиболее заметные изменения - это появившаяся поддержка тредов на основе ithreads, поддержка работы с Apache::Test, значительные улучшения в обеспечении быстродействия, изменения в работе с Apache API и т.п.

 

Установка и настройка mod_perl 2.0 для apache 2 под directadmin

Устанавливаем mod_perl.

cd /usr/local/directadmin/customapache
./build clean
rm -f configure.*
./build update
./build update_data
./build apache
./buld php n
./build mod_perl

service httpd restart

Настраиваем mod_perl:

Вносим следующие изменения в httpd.conf:

LoadModule perl_module /usr/lib/apache/mod_perl.so

Опять рестарт апача и в логах видим подобную запись:

[notice] Apache/2.0.55-dev (Unix)
  mod_ssl/2.0.55-dev OpenSSL/0.9.7e DAV/2 mod_perl/2.0.2-dev
  Perl/v5.8.7 configured -- resuming normal operations

Чтобы включить registry scripts  добавьте следующие строки в httpd.conf:

Alias /perl/ /home/admin/domains/сайт.ru/public_html/perl/
<Location /perl/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Location>

и теперь создаем файл rock.pl:

# !/usr/bin/perl
  print "Content-type: text/plain\n\n";
  print "mod_perl 2.0 rocks!\n";

устанавливаем соответствующие права:

% chmod a+rx /home/admin/domains/сайт.ru/public_html/perl/rock.pl

перезапускаем апач-сервер и по следующему адресу h ttp://localhost/perl/rock.pl получаем ответ:

mod_perl 2.0 rocks! 

Если не работает, проверяем логи ошибок.

Модули Handler

Теперь можно убедиться, что mod_perl работает.

Напишем следующий фал Rocks.pm и поместим его в директорию /perl/MyApache2/:

  #file:MyApache2/Rocks.pm
  #----------------------
  package MyApache2::Rocks;
 
  use strict;
  use warnings;
 
  use Apache2::RequestRec ();
  use Apache2::RequestIO ();
 
  use Apache2::Const -compile => qw(OK);
 
  sub handler {
      my $r = shift;
 
      $r->content_type('text/plain');
      print "mod_perl 2.0 rocks!\n";
 
      return Apache2::Const::OK;
  }
  1;

И также создаем файл startup.pl, который размещаем в  /perl/ :

use lib qw(/home/httpd/httpd-2.0/perl);
  1;

Добавьляем следующие строки в httpd.conf 

<Location /rocks>
SetHandler perl-script
PerlResponseHandler MyApache2::Rocks
</Location>

PerlRequire /home/admin/domains/сайт.ru/public_html/perl/startup.pl

Далее перезапускаем сервер и обращаемся к h ttp://localhost/rocks.

В ответ должны получить:

mod_perl 2.0 Rocks!

Если это не сработало - проверяем error_log файл.

Если мы хотим, чтобы скрипты выполнялись интерпретатором mod_perl и кэшировался для директории cgi-bin нужно изменить httpd.conf следующим образом:

Закомментируем следующую строку:

#### ScriptAlias /cgi-bin/ /home/сайт.ru/cgi-bin/

Следующие строки добавим:

PerlModule Apache::Registry
<Location /cgi-bin>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
allow from all
</Location>

Перезапустим Apache и убедимся, что всё работает.

 

Народная ссылка для регистрации:

CentOS: mod_perl, directadmin

Категории:

Поделитесь этой записью или добавьте в закладки

   






Комментировать





Другие материалы и статьи
» Авто-система продвижения сайтов и заработка A-SPS: Еще один сервис, декларирующий все услуги для вебмастера и оптимизатора.Т.е. и качественное ссылочное п...
» Автоматическая биржа размещения рекламы в блогах и социальных сетях Getpost: Проект Getpost - это автоматическая биржа размещения рекламы в блогах и социальных сетях. При помощи ра...
» Биржа авторазмещения статей ROOIT: Пришло время осветить работу нового сервиса ROOIT, при помощи которого можно осуществить продвижение са...
» Биржа мест под статьи "Seo Zavr": Назначение биржи купли-продажи (аренды) мест под статьи - автоматизация покупки (аренды) рекл...
» Партнерская программа онлайн-тестов NiceTest: Очередная неплохая партнерка online-тестов для дополнительного заработка Nicetest.Nicetest - это партне...

Категории