Предварительное разветвление приложения Dancer на CentOS

У меня есть приложение-прототип (интерфейс базы данных веб-службы RESTful), написанное с использованием Dancer. В качестве прототипа он отлично работает под Apache с mod_proxy, и маршруты Dancer работают очень хорошо.

Мой следующий шаг - посмотреть, смогу ли я немного масштабировать это, поскольку некоторые запросы могут быть очень медленными, и я не хочу, чтобы медленные запросы блокировали другие запросы.

Я хотел бы использовать rpms для управления необходимыми модулями perl. Для Dancer это не проблема, поскольку CentOS-6 плюс EPEL обеспечивают достаточное число оборотов, чтобы позволить мне собрать/установить Dancer и Dancer::Plugin::Database об/мин. Попытка собрать пакеты Plack работает не так хорошо, однако по целому ряду причин, одна из которых заключается в том, что некоторые из системных модулей имеют слишком низкий номер версии (и нет, перезапись системных пакетов локальными сборками более высокой версии невозможна). вариант не рассматривается).

EPEL предоставляет пакеты для CGI::Emulate::PSGI и HTTP::Server::Simple::PSGI, но я не вижу, как превратить любой из них в желаемое решение.

Итак, мой вопрос: есть ли чистый/поддерживаемый способ запустить Dancer на CentOS-6 с предварительным разветвлением? За исключением этого, как заставить Apache хорошо работать с локальной установкой perl (где я могу использовать такие инструменты, как cpanm, для установки вещей)?


person gsiems    schedule 03.08.2012    source источник
comment
почему бы не установить современную версию perl с помощью perlbrew?   -  person Miguel Prz    schedule 04.08.2012
comment
Любая причина не устанавливать локальную среду Perl с local::lib или perlbrew?   -  person matthias krull    schedule 04.08.2012
comment
MiguelPrz/mugen keichi — я мог бы сделать это и иметь для других целей (хорошо, что это не нужно). Кроме того, я не уверен, как это будет работать с Apache (mt Apache-foo не силен) - это вопрос установки правильных переменных среды, имеет ли значение версия perl (думая здесь о mod_perl) или это действительно не проблема?   -  person gsiems    schedule 04.08.2012
comment
Вы компилируете mod_perl для конкретного perl. Итак, вы устанавливаете свой собственный perl и компилируете с ним mod_perl. Затем в конфиге апача вы загружаете свой mod_perl вместо системного.   -  person jira    schedule 04.08.2012
comment
@Miguel Prz - Поскольку вы были первым, кто предложил perlbrew, и именно этот подход я, наконец, принял (полностью избегая использования системного perl) - не могли бы вы сделать свой комментарий ответом, чтобы я мог его принять?   -  person gsiems    schedule 29.08.2012


Ответы (2)


Я настоятельно рекомендую вам использовать perlbrew , и забудьте системный perl.

person Miguel Prz    schedule 02.09.2012

Если вы хотите ограничиться пакетами, поставляемыми с CentOS, вы можете запустить приложение Dancer под mod_perl. Для mod_perl существует адаптер Plack, так что это довольно просто.

Например

<Location /myapp>
  SetHandler perl-script
  PerlHandler Plack::Handler::Apache2
  PerlSetVar psgi_app /var/www/html/myapp.example.com/app.psgi
</Location>
person jira    schedule 04.08.2012
comment
@jira-- За исключением того, что Plack::Handler::Apache2 является частью Plack, которая не будет корректно собирать системные библиотеки perl. - person gsiems; 04.08.2012
comment
Можно ли запустить приложение Dancer как старый добрый CGI? Затем вы можете запустить его под ModPerl::Registry - person jira; 04.08.2012
comment
@jira-- я не знаю, можно ли запускать dancer как обычное приложение CGI. Кроме того, я думаю, что производительность для моего приложения будет меньше, чем хотелось бы. - person gsiems; 29.08.2012
comment
Дело в том, что тогда вы запускаете свой CGI под ModPerl::Registry. Это заставляет его работать постоянно - не бойтесь слова CGI в этом случае. - person jira; 29.08.2012