| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > HTML::Mason + mod_perl2 on Apache2 |
| Автор: sepp 18.1.2010, 20:38 |
| Имеется: Аpache-2.2.14-r1, mod_perl-2.0.4-r1, HTML-Mason-1.42 на os Linux. Конфигурации в файле httpd.conf ############## start mod_perl ##################### LoadModule perl_module modules/mod_perl.so ### Директория в которой работает mod_perl ### Alias /mod-perl/ /usr/local/www/X/mod-perl/ <Location /mod-perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader on PerlOptions +ParseHeaders Options +ExecCGI Order deny,allow Deny from all Allow from 127.0.0.1 </Location> ### mod_perl работает с файлами с расширением mdpl вне директории /usr/local/www/X/mod-perl/ ### <Files *.mdpl> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader on PerlOptions +ParseHeaders Options +ExecCGI Order deny,allow Deny from all Allow from 127.0.0.1 </Files> ############## finish mod_perl ##################### ########## start HTML::Mason ################################### PerlModule HTML::Mason::ApacheHandler PerlSetVar MasonCompRoot "/usr/local/www/X/mod-perl" PerlSetVar MasonDataDir "/usr/local/www/mason_dir" <Location /usr/local/www/X/mod-perl> SetHandler perl-script PerlHandler HTML::Mason </Location> #<LocationMatch "(\.m(html|txt|pl))$"> # SetHandler perl-script # PerlHandler HTML::Mason #</LocationMatch> #<LocationMatch "(\.ma(html|txt|pl))$"> # SetHandler perl-script # PerlInitHandler Apache::Constants::NOT_FOUND #</LocationMatch> ########## finish HTML::Mason ################################### Вопрос Какие следует провести настройки для HTML::Mason чтобы он работал в связке с mod_perl. Т. е. как сделать так, чтобы масон работал с файлами с расширениями .mpl|.mtxt|.|.mhtml под mod_perl в директории /usr/local/www/X/mod-perl/ и при этом в этой же директории под чистый mod_perl без масон работали файлы с рaсширением .mdpl|.pl ? Каким образом сделать чтобы при запросе компонентов с расширением .mapl|.mahtml|.matxt выдавался ответ о ошибке 404 NOT_FOUND ? При указаной конфигурации под mod_perl корректно отрабатывает скрипт increment.pl из директории /usr/local/www/X/mod-perl my $x = 0; print "Content-Type: text/html\n\n"; print $x++, "\n"; файл mason-test.html для масона не работает из директории /usr/local/www/X/mod-perl % my $name = 'sepp'; <html> <head> <title>Mason test</title> </head> <body bgcolor="ffffff"> hello, <% $name %>! <br>2 + 3 = <% 2 + 3 %> </body> </html> Возникают ошибки [Mon Jan 18 19:14:16 2010] [error] Scalar found where operator expected at /usr/local/www/X/mod-perl/mason-test.mhtml line 1, near "#line 1 /usr/local/www/X/mod-perl/mason-test.mhtml\n% my $name"\nsyntax error at /usr/local/www/X/mod-perl/mason-test.mhtml line 1, near "#line 1 /usr/local/www/X/mod-perl/mason-test.mhtml\n% my $name "\nsyntax error at /usr/local/ www/X/mod-perl/mason-test.mhtml line 3, near "head>"\nBareword found where operator expected at /usr/local/www/X/mod-perl/mason-test.mhtml line 4, near "<title>Mason"\nBareword found where operator expected at /usr/local/www/X/mod-perl/mason-test.mhtml line 9, near "/head>\n<body bgcolor="ffffff">\nhello, <% $name %>!\n<br>2 + 3 = <% 2 + 3 %>\n</body"\n (Might be a runaway multi-line // string starting on line 5)\n [Mon Jan 18 19:14:16 2010] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico, referer: http://localhost/mod-perl/mason-test.mhtml |