Perl по-mod’ному Докучаев Дмитрий aka Forb Xakep, номер #068, стр. 068-108-1 (forb@real.xakep.ru) Тонкости программирования в mod_perl Единственным минусом языка Perl является его тормознутость. Это обусловлено тем, что все скрипты обрабатываются интерпретатором, отсюда имеем потерю скорости. Простой крупного сервера весьма нежелателен, поэтому программисты либо переходят на PHP, либо... пользуются прелестями mod_perl. Ты наверняка слышал об этом чудесном модуле, но, скорее всего, ни разу не юзал его на практике. Сегодня тебе предоставляется такая возможность. Я думаю, что после практического урока ты оценишь работу mod_perl на твердую пятерку с плюсом. Прелести и вкусности Прежде чем что-либо устанавливать, поговорим о достоинствах и недостатках mod_perl. В некоторых источниках данный модуль рекомендуют использовать лишь на раскрученных порталах и в электронных магазинах. С одной стороны, мысль правильная: подобное нововведение эффективно при большом числе запросов к серверу. Но если ты юзаешь старенький пенек для своего перлового web-сайта, прибавить скорость обработки скриптов с помощью модуля тебе никогда не помешает. Итак, mod_perl обладает как минимум двумя основными преимуществами: 1. Широкие возможности. С помощью модуля программист способен выполнять то, что не под силу обычным CGI-сценариям. Например, ты легко можешь вмешаться в обработку HTTP-запроса (практически на любой стадии), сгенерировать произвольный ответ, написать собственный алгоритм HTTP-аутентификации и т.д. и т.п. Звучит заманчиво, правда? 2. Скорость. Все запросы к серверу обрабатываются самим Apache, а не внешним Perl-интерпретатором. Помимо этого, при повторном запросе происходит возврат уже выполненного (кэшированного) значения, что весьма экономит время. Кэш запоминается на все время жизни Апача, так что если юзер повторил запрос на следующий день, Apache моментально вернет ответ, не интерпретируя код сценария повторно. Эти основные преимущества излагаются в mod_perl user guide. Остальные фичи либо вытекают из них, либо надуманы влюбленными в модуль программистами и дизайнерами :). О недостатках user guide вообще умалчивает. Но в период работы с модулем я испытал геморрой при настройке модуля и адаптации старых (не модулевых) скриптов к mod_perl. Впрочем, когда мы рассмотрим практическую часть, ты сам увидишь все недостатки модуля. Доставка, установка Настало время для установки необходимых приложений. Я подразумеваю, что у тебя уже стоит Apache с прекомпиленным mod.so (параметр -–enable-module=so). Теперь сливай mod_perl по ссылке http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz. Текущая версия модуля - 1.29. После этого распаковывай архив и приступай непосредственно к инсталляции. На данный момент у тебя должны иметься пакеты perl-devel и extutils-makemaker. В противном случае инсталлятор ругнется матом на отсутствие файлов. Установка довольно проста и содержит всего 3 команды. Сначала выполни perl Makefile.PL USE_APACI=1 APACI_ARGS=--enable-module=so APACHE_PREFIX=/usr/local/www. Это нужно вот зачем: во время установки модуля происходит перекомпиляция самого сервера, поэтому необходимо повторно задать параметры к ./configure (в частности, –-prefix). Если этого не сделать, Apache будет думать, что –-prefix равен /usr/local/apache, и откажется запускаться. |