S3.Blog

21 Декабря 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Perl: mod_perl для Apache2

Дата последнего изменения: 14 Января 2010
Метки статьи: Документация, Linux, Perl
Столкнулся сегодня с проблемой - конфигурация web-сервера и скриптов под mod_perl для Apache2 разительно отличается от конфигурации под первый Apache.
Как же настроить сервер и готовые скрипты?
 

Шаг первый. Создание mod_perl скрипта
package MyApache2::Rocks;

use strict;

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;
сохраните данный пример например тут: /home/httpd/httpd-2.0/perl/MyApache2/Rocks.pm
теперь нужно подсказать Apache2 о том, что надо искать Rocks.pm не только в стандартных @INC , но и в нашей директории /home/httpd/httpd-2.0/perl/
для этого создадим strartup-скрипт startup.pl
use lib qw(/home/httpd/httpd-2.0/perl);
1;
и сохраним его тут: /home/httpd/httpd-2.0/perl/startup.pl


Шаг второй. Настройка конфигурации Apache2
PerlRequire /home/httpd/httpd-2.0/perl/startup.pl
PerlModule MyApache2::Rocks
<Location /rocks>
      SetHandler perl-script
      PerlHandler  MyApache2::Rocks
</Location>

Шаг третий. Применение изменений в скрипте без перезагрузки Apache2
Допишите в конфигурацию Apache2 следующие строки:
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll On
PerlSetVar ReloadModules "MyApache2::Rocks"
а в скрипт Rocks.pm добавьте вверху, перед handler:
use Apache2::Reload;

Вот и всё. Приятного программирования под mod_perl  :-)

Использован материал: Getting Your Feet Wet with mod_perl: Handler Modules







Похожие материалы:




 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.