masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Perl, mod_perl и одна небольшая удача.

Расписавшись в собственном бессилии с вторым апачем community.livejournal.com/ru_perl/316505.html, сел разбираться с первым.

Итак, PerlRequire через .htaccess МОЖЕТ вызвать use lib ... - и те библиотеки будут загружены и пригодны как ResponceHandler, что и требовалось. Однако, доступны эти библиотеки будут только один раз - при первом запуске - "компиляции" скрипта. Если __ВСЕ__ библиотеки были использованы - удача; если нет - при втором запуске их не достучаться (могут потребоваться в коде внутри eval "...") - @INC сбрасывается на значение по-умолчанию.

Так как я делал именно CMS, то такая задача - загрузить произвольный код (или транслировать шаблон в код и загрузить результат, что в общем-то то же самое) - возникает сплошь и рядом; поведение сайта выглядит очень своеобразным - процессов сервера несколько, иногда выполняется новый, иногда - повторно уже запускавшийся. Код (у меня был код шаблона) кэшируется, но, устарев, выпадает из кэша и больше не может загрузиться. При переходе по ссылке - 50/50, динамические картинки - когда как и много подобных весёлых вещей.

Решение оказалось простым - при первом запуске use lib ... уже работает, при последующих - вызываю eval "use lib ..." - с пижонской переменной $firstRun для предотвращения лишнего на первом запуске.

В итоге, не нужно быть админом, чтобы прикрутить CMS к первому апачу как модуль mod_perl - эх, ещё бы и для второго так...

(во втором работает или startup.pl из конфига апача или cgi под mod_perl - с такими же приседаниями с @INC)
Tags: cms, perl
Subscribe

  • Групповая динамика

    Вчера вечером встретили трёх собак с хозяйкой (типичная банда, мексиканские голые, это такие средние собачки, обводами напоминающие Анубиса). Каждый…

  • Привился

    (Aka осуществил первую часть корпоративного чипирования). Давно планировал, но не было такой возможности (чтоб не тащиться чёрт-те куда, а чтоб с…

  • (no subject)

    Я отдал бы немало за пару крыльев, Я отдал бы немало за третий глаз, За руку, на которой четырнадцать пальцев, Мне нужен для дыхания другой…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 4 comments