но ни один из описанных методов не давал нужного результата. Пришлось
анализировать и микшировать разные способы.
Во первых я привык к стандартному расположению библиотек, настроечных
файлов, бинарных модулей, во вторых, исходя из соображения наиболее
задействованных модулей, хотелось собрать apache с не выгружаемым
модулем PHP, так как это наиболее популярный язык для написания
скриптов, и выгружаемым модулем perl, исходя из обратных соображений :).
Была замечена грабля - apache не хочет собиратся с PHP и PERL
статическими библиотеками. Решения данной проблемы я не нашел :( Вообщем
смотрим что получилось.
Установка производилась на FreeBSD 5.1.
Собираем Apache с потдержкой perl+php+ssl.
Качаем во временный каталог исходники:
# mkdir /usr/local/src
# cd /usr/local/src
# fetch http://www.apache.org/dist/httpd/apache_1.3.28.tar.gz
# fetch ftp://ftp.lexa.ru/pub/apache-rus/patches_1.3.28rusPL30.18.tar.gz
Можно скачать сразу пропатчены apach - кому как нравится. Мы пойдем другим путем.
# fetch http://perl.apache.org/dist/mod_perl-1.28.tar.gz
# fetch http://www.modssl.org/source/mod_ssl-2.8.15-1.3.28.tar.gz
# fetch -o FreeBSD.layout http://matt.simerson.net/computing/www/apache.layout
(если к моменту прочтения статьи вы захотите установить более свежий
набор ищите ссылки по адресам
http://ftp.epix.net/apache/dist/httpd/apache_1.3.28.tar.gz
ftp://ftp.lexa.ru/pub/apache-rus/patches_1.3.28rusPL30.18.tar.gz
http://www.modssl.org/source/mod_ssl-2.8.12-1.3.27.tar.gz
http://www.openssl.org/source/openssl-0.9.6g.tar.gz
http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz
http://se.php.net/distributions/php-4.2.3.tar.gz
)
Распаковываем:
# 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
Конфигурим
# cd mod_ssl-2.8.15-1.3.28
# ./configure --with-apache=../apache_1.3.28 --with-ssl=/usr --enable-shared=ssl
--with-mm=/usr/local
# cd ../mod_perl-1.28
# perl Makefile.PL DO_HTTPD=1 USE_APACI=1 APACHE_PREFIX=/usr/local EVERYTHING=1
APACI_ARGS='--server-uid=www, --server-gid=www, --enable-module=so
--enable-module=most, --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"