но ни один из описанных методов не давал нужного результата. Пришлось анализировать и микшировать разные способы.
Во первых я привык к стандартному расположению библиотек, настроечных файлов, бинарных модулей, во вторых, исходя из соображения наиболее задействованных модулей, хотелось собрать apache с не выгружаемым модулем PHP, так как это наиболее популярный язык для написания скриптов, и выгружаемым модулем perl, исходя из обратных соображений :).
Была замечена грабля - apache не хочет собиратся с PHP и PERL статическими библиотеками. Решения данной проблемы я не нашел :( Вообщем смотрим что получилось.
Установка производилась на FreeBSD 5.1. Собираем Apache с потдержкой perl+php+ssl.
Распаковываем: # tar -xzf apache_1.3.28.tar.gz # cp patches_1.3.28rusPL30.18.tar.gz apache_1.3.28/patches_1.3.28rusPL30.18.tar.gz # cd apache_1.3.28 # tar -xzf patches_1.3.28rusPL30.18.tar.gz # cd .. # tar -xzf mod_perl-1.28.tar.gz # tar -xzf mod_ssl-2.8.15-1.3.28.tar.gz
--enable-shared=max --disable-shared=perl, --enable-module=perl, --with-layout=../FreeBSD.layout:FreeBSD, \ --without-confadjust' # make test # cd ../apache_1.3.28 # make certificate TYPE=custom (Прошу!!! Не задавайте вопросов по поводу того как заполнять данные сертификата. Проявите сообразительность!) # rm /usr/local/etc/apache/httpd.conf (Если сервер ранее не настраивался) Если этого не сделать прийдется ручками править настройку SSL # cd ../mod_perl-1.28 # make install
# cvsup -g /etc/cvsup-ports (учитываем, что свежие порты подразумевают использование свежего apache и соответствующих ему модулей) # cd /usr/ports/www/mod_php4 # make (В диалоге добавляем те функции работу которых будут использовать скрипты php) # make install
# ee /usr/local/etc/rc.d/startssl.pl
Записываем скрипт автоподстановки пароля при запуске #!/usr/bin/perl print "<пароль для сертификата>\n";
Выставляем права для скрипта # chmod +x /usr/local/etc/rc.d/startssl.pl
# ee /usr/local/etc/apache/httpd.conf
Для автозаполнения пароля Строчку вида SSLPassPhraseDialog builtin Меняем на SSLPassPhraseDialog exec:/usr/local/etc/rc.d/startssl.pl Находим блок из множества AddLanguage и AddCharset По окончанию блока пишем AddDefaultCharset Windows-1251 Находим AddType application/x-tar .tgz После нее добавляем AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps Находим #AddType text/html .shtml #AddHandler server-parsed .shtml Снимаем коментарии AddType text/html .shtml AddHandler server-parsed .shtml
Редактируем под себя :) (Минимум - поставить Имя сервера, чтобы не ругалось при запуске)
# /usr/local/sbin/apachectl startssl
В логах ищем "Apache/1.3.28 (Unix) mod_perl/1.28 PHP/4.3.3RC4 mod_ssl/2.8.15 OpenSSL/0.9.7a"