Назад | Перейти на главную страницу

Как проще всего интегрировать mod_perl и mod_dav_svn в Apache на Solaris 10

Я написал некоторое программное обеспечение, которое использует код Perl, работающий внутри Apache (с использованием mod_perl), для работы (среди прочего) с Subversion (с использованием модуля mod_dav_svn).

В настоящее время я пишу несколько инструкций о том, как настроить и запустить эту систему в различных ОС, и у меня возникли проблемы с Solaris.

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

Итак, доступен ли бинарный пакет, который позволяет мне запускать mod_perl и mod_dav_svn в том же Apache на Solaris 10, который я пропустил?

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

Сборка пакетов из исходных текстов в целом является сложной задачей, но как только это будет сделано, вы можете использовать его для создания пакета и предоставления двоичных файлов самостоятельно, избавив других от необходимости делать это для вашего проекта.

Я делал только Subversion, а не mod_perl, но я взглянул на скрипт сборки, который мы используем для mod_perl (к сожалению, он очень специфичен для нашей среды и не принесет вам особой пользы), и он выглядит как mod_perl будет самым простым вариантом, так как у него меньше зависимостей (только perl и apache).

Сборка mod_perl выглядит так же просто, как perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install.

Subversion, с другой стороны, требует как минимум apr и apru и, в зависимости от ваших требований, других зависимостей (например, мы строим с привязками python для trac). Если вы решите скомпилировать Subversion, вы, вероятно, захотите отключить как можно больше зависимостей (например, если вам не нужна поддержка berkely db, передайте --without-berkley-db настроить). Если configure жалуется на отсутствие зависимости, решите, нужна ли она вам, и просто добавьте --without-featurex если вам это не нужно.

Сначала вам нужно будет собрать apr и apru (или установить бинарные пакеты) и передать --with-apr=/some/path и --with-apr-util=/some/path параметры (оба являются путями к файлу apr / apu-1-config, расположенному в каталоге bin).

Получение поддержки SSL также может потребовать некоторой работы, поскольку библиотеки ssl solaris находятся в месте, которое обычно не определяется. Убедитесь, что у вас есть -I/usr/sfw/include в переменной среды CFLAGS и -L/usr/sfw/lib -R/usr/sfw/lib (или / usr / sfw / lib / amd64 или sparcv9, если вы хотите 64-разрядную версию) в переменной среды LDFLAGS. Обе переменные необходимо установить перед запуском configure. Если вы создаете 32-разрядную версию, вам, возможно, удастся просто выполнить --with-ssl=/usr/sfw, но маловероятно, что Subversion правильно найдет 64-битные библиотеки, если вам требуется 64-битная версия без правильной настройки CFLAGS / LDFLAGS.

Как и при создании mod_perl, вам нужно сообщить Subversion, где находится apxs, просто пропустите --with-apxs=/path/to/apache/bin/apxs настроить.

Этот последний совет, вероятно, очевиден, но на всякий случай: превратите инструкции сборки в сценарий (или Makefile), чтобы вы могли легко повторить их на новых машинах или с немного другими параметрами конфигурации.

Просто отвечу здесь, чтобы записать, что сработало для меня, следуя очень полезному ответу Марка.

Поскольку компиляция mod_perl выглядела менее хлопотно, чем компиляция Subversion, я установил Subversion 1.6 и его зависимости (включая Apache 2.2.15) из sunfreeware.com.

Затем я скачал и собрал mod_perl согласно инструкции.

Мне пришлось отредактировать /usr/local/apache2/bin/apxs потому что предполагалось, что Perl находится в /usr/local/bin вместо того /usr/bin но после этого он все скомпилировал и поставил mod_perl.so В правильном месте.

Другая небольшая проблема с установкой модулей Perl против стандартного Perl 5.8, включенного в Solaris, заключается в том, что он был скомпилирован с использованием компилятора Sun, а не gcc, и у вас будет меньше проблем, если вы скачать и используйте это вместо этого (убедитесь, что каталог bin находится перед gcc на вашем пути).

Я только что осознал, что OpenCSW пакеты могут быть другим решением. Похоже, у них есть бинарные пакеты apache, mod_perl и subversion. Но я их еще не пробовал.

Просто используйте Web Stack, интегрированную компиляцию этих продуктов Sun (вы можете выборочно установить то, что вам нужно):

Программное обеспечение Web Stack включает следующее программное обеспечение:

  1. Серверное программное обеспечение - веб-сервер Apache, Apache Tomcat, прокси-сервер Squid, lighttpd.
  2. Программное обеспечение БД - MySQL Server.
  3. Среда программирования - PHP, Perl, Ruby и Python.
  4. Программное обеспечение для кеширования - memcached.

Полное руководство здесь: http://wikis.sun.com/display/WebStack/Web+Stack+Getting+Started+Guide