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