Как мне использовать Apache поставщика с самоскомпилированными Perl и mod_perl?

StackOverflow https://stackoverflow.com/questions/79493

  •  09-06-2019
  •  | 
  •  

Вопрос

Я хочу использовать встроенный Apache от Apple или RedHat, но я хочу использовать Perl 5.10 и mod_perl.Какой наименее навязчивый способ добиться этого?Мне нужны бесплатные исправления безопасности для Apache, dav, php и т. д., но меня очень волнует, какую версию Perl я использую и что находится в моем пути @INC.Я не против скомпилировать свой собственный mod_perl.

Это было полезно?

Решение

  1. Создайте свою версию Perl 5.10, следуя специальным инструкциям из документации mod_perl.Сообщите конфигуратору Perl, чтобы он установил его в какое-нибудь нестандартное место, например /usr/local/perl/5.10.0.

  2. Используйте инструкции для создания общей библиотеки (или динамической, или .so) mod_perl для Apache вашего дистрибутива, но обязательно запустите Makefile.PL, используя твой версия перла:

    /usr/local/perl/5.10.0/bin/perl Makefile.PL APXS=/usr/bin/apxs

  3. Установите и настройте mod_perl как обычно.

После первого шага может оказаться полезным изменить путь, чтобы случайно не запутаться в том, какую версию Perl вы используете:

export PATH=/usr/local/perl/5.10.0/bin:$PATH

Другие советы

Вы захотите изучить mod_so

Я делал это раньше.Это было некрасиво, но сработало, тем более, что Perl от производителя обычно существует 2-3 года.

Я начал с создания собственного RPM для Perl, который устанавливал Perl в другое место, например /opt/.Это было довольно прямолинейно.В основном я начал с этого, потому что не хотел, чтобы системные утилиты, использующие Perl, ломались, когда я обновлял/устанавливал новые модули.Мне пришлось изменить все мои сценарии, чтобы указать #!/opt/bin/perl наверху, а иногда я даже играл с путем, чтобы убедиться, что мой перл идет первым.

Затем я взял исходный RPM mod_perl и изменил его, чтобы использовать мой /opt/bin/perl вместо /usr/bin/perl.У меня нет доступа к внесенным мной изменениям, поскольку это было на другом концерте.Мне потребовалось немного поиграть, чтобы получить это.

Это сработало, но я не мастер RPM, поэтому проверка зависимостей сработала не очень хорошо.Например, я мог удалить свой собственный RPM и все сломать.Для меня это не имело большого значения, поэтому я пошел дальше.

Я также смешивал RPM с установками модулей CPAN (я упоминал, что мы создали собственное зеркало CPAN с собственным кодом?).Это тоже было немного хрупко.Опять же, у меня не было ресурсов (то есть времени), чтобы придумать, как согнуть cpan2rpm использовать мой Perl и не вызывать конфликтов RPM.

Если бы мне пришлось делать все это снова, я бы сделал собственный RPM для Perl 5.10 и просто заменил системный Perl.Тогда я бы использовал cpan2rpm чтобы создать пакеты RPM, необходимые для моего программного обеспечения, и скомпилировать свой собственный RPM mod_perl.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top