Perl: mod_perl для Apache2
Столкнулся сегодня с проблемой - конфигурация web-сервера и скриптов под mod_perl для Apache2 разительно отличается от конфигурации под первый Apache.
Как же настроить сервер и готовые скрипты?
Шаг первый. Создание mod_perl скрипта
теперь нужно подсказать Apache2 о том, что надо искать Rocks.pm не только в стандартных @INC , но и в нашей директории /home/httpd/httpd-2.0/perl/
для этого создадим strartup-скрипт startup.pl
Шаг второй. Настройка конфигурации Apache2
Шаг третий. Применение изменений в скрипте без перезагрузки Apache2
Допишите в конфигурацию Apache2 следующие строки:
Вот и всё. Приятного программирования под mod_perl :-)
Использован материал: Getting Your Feet Wet with mod_perl: Handler Modules
Как же настроить сервер и готовые скрипты?
Шаг первый. Создание 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