Как мне изменить исходные файлы mod_perl при изменении? - PullRequest
6 голосов
/ 14 января 2009

Я занимаюсь разработкой приложения с модом _ perl и перезагружаю сервер каждый раз, когда меняю код, - это огромная проблема. Я хотел бы по-прежнему использовать mod _ perl для разработки, потому что это то, что я планирую использовать для живого сервера. Я ничего не видел в документации о том, как это сделать.

Мысли

Ответы [ 2 ]

9 голосов
/ 14 января 2009

Я думаю, что Apache2 :: Reload будет в некоторой степени выполнить то, что вы ищете. Однако не забудьте удалить всю эту реализацию, как только вы будете готовы запустить приложение.

Мониторинг всех модулей в% INC

Для отслеживания и перезагрузки всех модулей в% INC в начале обработки запроса просто добавьте следующую конфигурацию в ваш httpd.conf:

PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload

При работе с фильтрами соединений и модулями протокола Apache2 :: Reload должен вызываться на этапе pre_connection:

PerlPreConnectionHandler Apache2::Reload

Регистрация модулей неявным образом

Чтобы перезагрузить только модули, зарегистрированные в Apache2 :: Reload, добавьте в httpd.conf следующее:

PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
# ReloadAll defaults to On

Тогда любые модули с линией:

use Apache2::Reload;

Будет перезагружен при изменении.

Для получения информации ознакомьтесь с этой страницей документации . Надеюсь, это поможет.

2 голосов
/ 28 октября 2010

Я использую это решение от Перрина Харкинса через PerlMonks:

Установите для MaxRequestsPerChild значение 1, затем загрузите любые потенциально изменяющиеся модули в дочернем, а не родительском (очевидно, только для сред разработки). Каждый запрос будет попадать на новый дочерний сервер, который будет загружать все ваши потенциально изменяющиеся модули заново.

Из " Лучший способ увидеть изменения модуля на работающем веб-сервере "

...