Какой самый простой способ интегрировать mod_perl и mod_dav_svn в Apache на Solaris 10?
Я написал некоторое программное обеспечение, которое использует код Perl, работающий внутри Apache (используя mod_perl) для работы (среди прочего) с подрывной деятельностью (используя модуль mod_dav_svn).
В настоящее время я пишу несколько практических руководств по настройке и работе в различных ОС, и у меня возникли проблемы в Solaris.
- Сервер Apache2, который поставляется с Solaris10, имеет mod_perl, но не mod_dav_svn - я не могу найти двоичный пакет svn, созданный для этого apache.
- http://sunfreeware.com/ имеет пакеты subversion и apache 2.2, которые работают вместе, но не mod_perl.
- Различные двоичные пакеты subversion (например, Collabnet) включают в себя apache, но не mod_perl.
Похоже, мой вариант - собрать mod_perl или subversion из исходного кода, чего я действительно надеялся избежать, поскольку стараюсь сделать инструкции по установке как можно более нетехническими.
Итак, есть ли бинарный пакет, который позволяет мне запускать mod_perl и mod_dav_svn в том же Apache на Solaris 10, который я пропустил?
В противном случае, если кто-то должен был сделать это раньше, они хотели бы прокомментировать, какой из сборок svn или сборка mod_perl будет самой маленькой головной болью.
4 ответа
Сборка пакетов из исходного кода, в общем, является проблемой, но как только это будет сделано, вы можете использовать его для создания пакета и предоставления двоичных файлов самостоятельно и избавить других от необходимости делать это для вашего проекта.
Я только сам делал 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 включает следующее программное обеспечение:
- Серверное программное обеспечение - веб-сервер Apache, Apache Tomcat, прокси-сервер Squid, lighttpd.
- Программное обеспечение БД - MySQL Server.
- Среда программирования - PHP, Perl, Ruby и Python.
- Программное обеспечение для кэширования - memcached.
Полная инструкция здесь: http://wikis.sun.com/display/WebStack/Web+Stack+Getting+Started+Guide