The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка связки Apache + php + perl + ssl (apache install mod_php mod_perl ssl)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: apache, install, mod_php, mod_perl, ssl,  (найти похожие документы)
From: Сергей Кузнецов (SergeyKa) <mailksa@mail.ru> Newsgroups: email Date: Mon, 11 Nov 2003 14:31:37 +0000 (UTC) Subject: Установка связки Apache + php + perl + ssl Оригинал статьи находится по адресу http://www.sergeyka.h10.ru Немного информации для ознакомления. При написании статьи я пользовался несколькими методами описанными в http://www.opennet.dev/base/dev/apache_php_mysql.txt.html http://www.opennet.dev/docs/HOWTO-RU/mini/Apache-mods.html http://www.opennet.dev/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 # 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 Будем считать, что настройка завершена :)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, co6aka (?), 18:03, 11/11/2003 [ответить]  
  • +/
    Может быть я не прав(если правильно помню), но по умолчанию mod_perl работает с директорией  cgi-perl а не cgi-bin.

    http://www.myd.ru/cgi-bin/test-cgi

    можешь запустить и без вкрапления mod_perl.

     
     
  • 2.2, SergeyKa (?), 18:50, 11/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    Тут небольшая ошибочка закралась :)
    в стандартной поставке test-cgi вообще не скрипт perl

    Для проверки нужно поместить в файл test-cgi простенкий perl скрипт
    #!/usr/bin/perl
    use CGI;
    $so = new CGI;
    print $so->header;
    print "Yes! Work script PERL!\n";

     
     
  • 3.3, Hamlet (?), 03:36, 13/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    и никакой проверки не получится - скрипт может быть выполнен не mod_perl :)
     

  • 1.4, SigmaD (?), 00:12, 16/11/2003 [ответить]  
  • +/
    Ну и "грабли" вы находите ... :(

    =====================
    Была замечена грабля - apache не хочет собиратся с PHP и PERL статическими библиотеками. Решения данной проблемы я не нашел :(
    =====================

    gzip -dc apache_1.3.27.tar.gz | tar xvf -
    cd apache_1.3.27
    ./configure
    cd ..

    bzip2 -dc php-4.3.1.tar.bz2 | tar xvf -
    cd php-4.3.1
    rm -f config.cache
    ./configure\
            --with-apache="../apache_1.3.27/" \
            --enable-safe-mode      \
            --enable-magic-quotes   \
            --disable-short-tags    \
    ...

    make && make install
    cd ..

    cd mod_perl-1.27

    /usr/bin/perl Makefile.PL               \
            APACHE_SRC=../apache_1.3.27/src \
            DO_HTTPD=1 USE_APACI=1 EVERYTHING=1     \
            APACI_ARGS=' --server-uid=webserv,      \
    --server-gid=webgrp,           \
    --enable-module=so,             \
    --enable-module=most,           \
    --enable-shared=max,            \
    --prefix=/usr/local/apache,     \
    --activate-module=src/modules/php4/libphp4.a,   \
    --disable-shared=perl,          \
    --enable-module=perl            \
    '

    make && make test && make install

    apache_1.3.27/src/httpd -l
    Compiled-in modules:
      http_core.c
      mod_so.c
      mod_perl.c
      mod_php4.c
    suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

    вот они, родимые, оба статичесике


    также присоединяюсь к замечанию по поводу тестирования mod_perl: _таким_ методом тестируется не он, а работа механизма CGI.


    по поводу mod_perl'а: неодноратно встречал замечания следующего характера - "если у вас проблемы со стабильностью работы mod_perl, то соберите его статически". Пример - http://bestpractical.com/rt/

    Хотя "на поиграться" сойдет и mod_perl через DSO.


    Тщательнее надо, тщательнее ... (с)

     
     
  • 2.5, SergeyKa (?), 11:44, 17/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь то-же самое с mod_ssl а заодно посмотри в http://www.opennet.dev/openforum/vsluhforumID3/1296.html#6
     
     
  • 3.6, SergeyKa (?), 16:12, 19/11/2003 [^] [^^] [^^^] [ответить]  
  • +/
    mkdir usr local src cd usr local src fetch http www apache org dist ... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру