IPB

Здравствуйте, гость ( Вход | Регистрация )

 Forum Rules ПРАВИЛА ФОРУМА. ЧИТАТЬ ВСЕМ !
 
Reply to this topicStart new topic
> Установка связки Apach+php+perl(DSO)+ssl, Статья
SergeyKa
11.11.2003 - 13:23
Сообщение #1



The NetWork Assistant
Group Icon
Группа: Старейшины
Сообщений: 342
Регистрация: 18.02.2003

Пользователь №: 6704




Немного информации для ознакомления.
При написании статьи я пользовался несколькими методами описанными в
_http://www.opennet.ru/base/dev/apache_php_mysql.txt.html
_http://www.opennet.ru/docs/HOWTO-RU/mini/Apache-mods.html
_http://www.opennet.ru/base/dev/apache2_php.txt.html
_http://matt.simerson.net/computing/www/apache.shtml
но ни один из описанных методов не давал нужного результата. Пришлось анализировать и микшировать разные способы. Во первых я привык к стандартному расположению библиотек, настроечных файлов, бинарных модулей, во вторых, исходя из соображения наиболее задействованных модулей, хотелось собрать 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"

проверяем работу mod_perl
# ee /usr/local/www/cgi-bin/test-cgi
Заменяем существующий текст
#!/usr/bin/perl
use CGI;
$so = new CGI;
print $so->header;
print "Yes! Work script PERL!\n";

# chown www:www /usr/local/www/cgi-bin/test-cgi
# chmod 500 /usr/local/www/cgi-bin/test-cgi

В браузере набираем
http://www.myd.ru/cgi-bin/test-cgi
Будем считать, что настройка завершена :)
User is offlineProfile Card PM
Go to the top of the page
+
Реклама

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



- Текстовая версия Сейчас: 28.03.2024 - 12:54
]]> ]]>
]]> Яндекс.Метрика ]]>