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

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

Я столкнулся с одним решением, в котором предлагалось использовать модуль Apache::Reload, и я установил этот модуль из CPAN, соответственно изменил httpd.conf и добавил use Apache::Reload в свой модуль Perl, как указано в документации.

Я попробовал метод «перезагрузить все модули», а также один, чтобы перезагрузить определенный модуль при касании его файла, но оба не работают вообще.

Могу ли я спросить, знает ли кто-нибудь о какой-либо другой конфигурации mod_perl (или о каком-либо другом факторе), которая могла бы помешать этому?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2010

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

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

Из "Лучший способ увидеть изменения модуля на работающем веб-сервере" - http://www.perlmonks.org/bare/?node_id=794860

0 голосов
/ 18 декабря 2009

Подумайте о написании своего приложения с использованием Plack, либо напрямую, либо через одну из платформ с драйверами PSGI. Затем, когда вы отлаживаете, используйте инструмент plackup, например, так:

$ plackup --server Apache2 -r --app /path/to/your_app.psgi

Документация по установке содержит более подробную информацию о том, как должен выглядеть файл .psgi, и документация вашей платформы также должна помочь. Вот пример использования Catalyst :: Engine :: PSGI

# app.psgi
use strict;
use MyApp;

MyApp->setup_engine('PSGI');
my $app = sub { MyApp->run(@_) };
...