Изменения

Платформы для запуска Perl веб-приложений

1425 байтов добавлено, 10:19, 7 августа 2009
mod_perl
=== mod_perl ===
 
[http://perl.apache.org/ mod_perl] — модуль HTTP-сервера [http://httpd.apache.org/ Apache], предназначенный для веб-разработки внутри Apache на языке Perl. Существуют как версии для Apache 1.x, так и для 2.x. Внутреннее устройство mod_perl’а полностью повторяет C API апача.
Плюсы:
# Очень большая гибкость степень гибкости и возможность возможности комбинирования с другими модулями Apache, в частности, засчёт наличия большого числа обработчиков разных стадий запроса. Гибкость означает, что можно не только просто отправлять ответ на запрос из своего Perl-модуля, но можно и осуществлять авторизацию или ещё что-нибудь. Любоптный пример использования: [http://svn.yourcmc.ru/viewvc.py/vitaphoto/head/lib-sway/SVNPropCheck.pm?view=markup SVNPropCheck].
# Весьма богатый и достаточно удобный программный интерфейс, через который с Apache можно делать практически всё, что душа пожелает.
# Возможность с небольшими телодвижениями запускать CGI-приложения в среде mod_perl с помощью модуля Apache::Registry. Для примера использования доработанного модуля Registry можно посмотреть реализацию [http://mxr.mozilla.org/bugzilla/source/mod_perl.pl mod_perl.pl] из Bugzilla 3.x.
Минусы:
# Чрезмерная завязка на внутреннее устройство веб-сервера [http://httpd.apache.org/ Apache]. Фактически — когда вы разрабатываете на mod_perl’е, вы фактически разрабатываете ''полноценный модуль Apache''. Аналогично — приложения, написанные под mod_perl, не запустятся больше нигде.
# Склонность к утечкам памяти. ''mod_perl течёт всегда, хоть ты его режь.'' Решение, правда, тоже несложное — MaxRequestsPerChild.
# Серьёзное увеличение размеров потомков Apache.