CGI и mod_perl хорошо играют вместе? - PullRequest
2 голосов
/ 28 сентября 2011

У меня есть веб-сервер apache (без mod_perl), который долгое время прекрасно работал. Было предложено использовать mod_perl для улучшения производительности некоторых скриптов.

Я хочу пойти дальше и установить mod_perl на сервер, что кажется довольно простым процессом, но меня смущают некоторые вещи, возникающие при поиске в Google. Если я установлю mod_perl (через репозитории debian), все ли мои существующие CGI внезапно начнут "использовать mod_perl" и демонстрировать потенциально странное поведение?

Или в apache есть какая-то конфигурация, которую необходимо выполнить, чтобы старый CGI "начал использовать mod_perl"?

Извинения, если это простой ответ, но меня смущает терминология, используемая в документации несколькими способами.

1 Ответ

1 голос
/ 28 сентября 2011

mod_perl должен быть настроен в вашем httpd.conf для включения.Поэтому не каждый скрипт на вашем сервере начнет автоматически использовать mod_perl.

Обычно вы включаете mod_perl для VHost.Обычная конфигурация mod_perl для vhost выглядит так:

<VirtualHost some.funny-domain.com>  
    ServerName some.funny-domain.com
    ServerAdmin admin@funny-domain.com
    DocumentRoot /data/path/to/root/
    Perlrequire /data/path/to/startup.pl
    PerlModule Apache2::Reload
    PerlInitHandler Apache2::Reload
    PerlModule Apache2::RequestRec

    ScriptAlias /cgi-bin/ "/data/path/to/root/cgi-bin/"

    <Location /cgi-bin/>
            SetHandler perl-script
            PerlResponseHandler ModPerl::Registry
            PerlOptions +ParseHeaders
            PerlOptions +SetupEnv
            Options +ExecCGI
    </Location>
    CustomLog logs/access.log combined
    ErrorLog logs/error.log
</VirtualHost>

Будьте осторожны с автоматическим процессом установки!По какой-то причине он может включить mod_perl на неправильном хосте!Сначала создайте резервную копию вашей конфигурации и apache-установки, чтобы можно было легко «откатиться».

Комментарий : строка " Perlrequire / data / path /to / startup.pl"не требуется.Это необязательно и устанавливает некоторые переменные окружения для запущенных скриптов в директиве mod_perl.

...