Установка Apache 2.0


Редакторский комментарий: Райн Блум (Ryan Bloom) был одним из основных разработчиков сервера Apache 2.0. Мы встретили его на выставке Linux World в Нью-Йорке и попросили его написать серию статей, описывающих новую версию Apache, для наших читателей. Это первая его статья, рассказывающая, что нового появилось в Apache 2.0 и как его установить.
Разработчики работали над Apache 2.0 последние 2 года, и 4 Апреля 2000 года первая бета версия Apache 2.0 была выпущена. Это первая из серии статья, в которой мы объясняем, чем Apache 2.0 отличается от Apache 1.3 и чего пользователям сервера следует опасаться.

Зачем переходить на версию 2.0?


Одно из самых важных изменений - это добавление в Apache 2.0 поддержки многонитиевых архитектур. Версия 1.3 для обработки запросов использовала потоки, и это существенно повышало производительность на многих операционных системах. А нити, совместно с потоками, делают Apache 2.0 еще более масштабируемой.
Второе значимое отличие от Apache 1.3 - это возможность фильтрации входа/выхода, которая позволяет одному модулю изменять выходные данные другого модуля. Такая возможность была необходима в Apache 1.3, например для CGI скриптов с SSI тэгами. В версии 1.3 такое было невозможно , а в Apache 2.0 стало возможным, благодаря фильтрации входа/выхода модулей.
Apache 2.0 теперь предоставляет поддержку SSL без необходимости модификации ядра сервера. Минимально необходимая поддержка SSL реализована в модуле mod_tls, которая в скором будущем расширится до полной поддержки SSL.
Первая трудность при использовании Apache 2.0, это инсталляция и конфигурация сервера. Есть два вида конфигурации сервера: перед сборкой сервера и перед запуском. Эта статья рассматривает получение дистрибутива сервера, его сборку и установку.

Установка и конфигурация сервера Apache 2.0

Перед тем как мы начнем, скачайте последнюю версию сервера Apache 2.0. Самое лучшее место для получения последней стабильной версии Apache - это официальный сайт веб сервера. Если Вы разработчик и Вам потребовалась разрабатываемая на данный момент версия, то Вам необходимо отправиться на страницу разработчиков Apache и узнать, как получить код сервера из репозитария CVS.
Это статья предполагает, что вы используете дистрибутив Apache 2.0.15, хотя в будущих версиях Apache все должно выглядеть примерно похожим.
После того, как вы получили дистрибутив, распакуйте его, используя команду:
tar -xvzf httpd-2*.tar.gz
После этого мы можем приступать к конфигурации сборки Apache. В предыдущих версиях Apache были две различные модели конфигурации сервера, каждая из которых развивалась отдельно. Первый метод - это использование текстового файла, контролирующего состав сборки сервера. А вторым стал autoconf-подобный механизм, который преобразовывал файл скрипта сборки под текущую платформу.
Разработчики решили, что для Apache 2.0 больше подойдет второй метод настройки. Поэтому Apache 2.0 для определения компонентов сборки использует утилиты autoconf и libtool. Дистрибутивы, скачанные с сайта Apache, уже имеют конфигурационные скрипты, а для разрабатываемых версий необходимо сгенерировать конфигурационный скрипт командой
./buildconf
Также данная команда проверяет все директории дистрибутива, чтобы убедиться в том, что все необходимые компоненты для Apache у Вас в наличие.
После этого в корневом каталоге дистрибутива сервера появиться конфигурационный скрипт. Это тот скрипт, который окончательно сконфигурирует сервер Apache. Тем не менее, данный скрипт имеет множество параметров, которые позволяют пользователю контролировать каждый аспект сборки Apache. Полный список этих параметров можно получить командой
./configure --help
Обсуждение каждого параметра сборки выходит за рамки данной статьи, но я опишу несколько наиболее простых и важных из них:
  • --prefix. Задает путь инсталляции сервера apache.
  • --with-maintainer-mode. Компиляция с данными отладки. Данная опция будет важной, по крайней мере, до тех пор, пока не появится стабильная версия сервера.
  • --with-mpm. Задает МП-модуль. Многопроцессность является встроенной возможностью Apache 2.0. Более полное описание этой возможности сервера можно найти в других статьях.
  • --enable-module. Определяет, какие модули будут встроены в ядро Apache. Это может быть либо список модулей, либо слово most, которое задает минимально необходимый состав модулей.
  • --enable-mods-shared. Определяет, какие модули следует компилировать отдельно от сервера
Многопроцессные модули (МП-модули) позволяют вам настроить Apache 2.0 для любых задач. Однако то, что работает хорошо на одной операционной системе, может некорректно работать при другом окружении. Чтобы решить эту проблему,системные администраторы могут выбрать режим работы сервера. Некоторые операционные системы поддерживают больше режимов работы сервера, чем другие. Например, у Unix есть 3 стандартных МП-модуля:
Prefork - модель, подобная Apache версии 1.3. Родительский процесс создает множество дочерних процессов, которые обрабатывают запросы. Каждый дочерний процесс имеет одну нить и может обработать только один запрос за раз. Когда нагрузка увеличивается, сервер для обработки поступающих запросов создает новые дочерние процессы.
Threaded - модель, подобная Prefork, за исключением того, что каждый дочерний процесс имеет постоянное количество нитей. Точное количество нитей определяется при запуске сервера из файла httpd.conf.
Perchild - Родительский процесс создает определенное количество дочерних процессов, каждый с минимальным количеством нитей. Когда нагрузка на сервер возрастает, процессы создают новые нити, чтобы обработать возрастающий трафик.
Windows же имеет только один модуль.
Winnt - модель, как у Apache версии 1.3, где существуют только два процесса: дочерний, обрабатывающий запросы, и родительский, отвечающий за контроль над дочерним процессом.

Компиляция сервера

После того, как выполнился конфигурационный скрипт, необходимо скомпилировать сервер. Это делается с помощью команды
make
в корневом каталоге дистрибутива сервера. Последний шаг - это фактически установка нового сервера, которая производится командой
make install.
Эта команда скопирует все необходимые файлы в директорию, определенную опцией -prefix конфигурационного скрипта. Если данная опция не была указана, то по умолчанию будет использоваться путь /usr/local/apache/.
Вот мы все почти и сделали. Если установка прошла успешно, то необходимо перейти в созданную директорию и запустить сервер командой
./bin/apachectl start.
Однако нам необходимо знать какой порт прослушивает сервер. Если вы устанавливали сервер под пользователем root, то сервер слушает 80 порт (стандартный HTTP порт), а если вы производили установку под другим пользователем, то сервер работает с портом 8080. Номер порта может быть изменен в файле httpd.conf в директиве Port. Теперь запустите свой любимый браузер и запросите страницу с адресом, либо http://localhost/, либо http://localhost:8080/, в зависимости от используемого порта. Вы должны увидеть стандартную веб-страницу Apache. Если этого не произошло, то файл ошибок объяснит вам в чем проблема.
В следующей статье, я расскажу вам подробнее о конфигурации сервера перед запуском, а также о том, как перейти с сервера Apache версии 1.3 на Apache версии 2.0.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • News2.ru
  • NewsLand.ru
  • del.icio.us
  • BobrDobr.ru
  • Ma.gnolia
  • Digg
  • Reddit
  • Technorati
  • Slashdot
  • Netscape
  • DZone
  • ThisNext
  • Furl
  • YahooMyWeb
Опубликовано в: Установка Apache Январь 28, 2006

22 Комментариев »

  1. Cool design. Keep up the good work. Good job guys!

    Комментарий от John — Апрель 1, 2006 @ 4:19 am

  2. а mod_rewrite под виндой работает???
    если да то что для этого надо сделать!!!

    Комментарий от web-мастер — Июль 2, 2006 @ 12:11 pm

  3. 2web-мастер. Еще и как работает. Снимаем символ комментария с LoadModule rewrite_module modules/mod_rewrite.so в файле httpd.conf и вперед.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond …
    RewriteRule …

    </IfModule>

    Комментарий от Администратор — Июль 2, 2006 @ 10:58 pm

  4. Great place to visit

    Комментарий от Paul@ — Август 21, 2006 @ 6:21 am

  5. А как же включить этот модуль на Linux?

    Комментарий от serge — Сентябрь 11, 2006 @ 3:10 pm

  6. --А как же включить этот модуль на Linux?--
    Собираешь апач с поддержкой Rewrite например.
    --enable-rewrite - так кажись

    Комментарий от Nikkola — Сентябрь 11, 2006 @ 3:12 pm

  7. А вообще можно как подключаемый модуль, также как в винде.

    Комментарий от Nikkola — Сентябрь 11, 2006 @ 3:13 pm

  8. у меня такой вопрос. установил апач вроде работает так как надо!пишу адрес http://localhost он что то пытается открыть но ничего не происходит

    Комментарий от kyk — Март 17, 2007 @ 4:32 pm

  9. Попробуй http://127.0.0.1/
    и что значит - ничего не происходит?

    Комментарий от Самара — Апрель 16, 2007 @ 10:23 pm

  10. а почему у меня не открывается asp
    пишет какой то код странный с vbscript

    Комментарий от ASSA — Май 24, 2007 @ 6:36 am

  11. Очень все доходчиво. Спасибо. Устанавливаю сейчас на vds сервер очень пригодилось.

    Комментарий от Руслан — Октябрь 16, 2008 @ 2:39 pm

  12. to kyk Если установка на локальный сервер то лучше пользовать denver

    Комментарий от Назар — Октябрь 20, 2008 @ 9:20 pm

  13. Денвер только для отладки на своем компе, его на хостинг не ставят.

    Комментарий от Кирилл — Октябрь 27, 2008 @ 4:59 pm

  14. Так человек же про это и говорил

    Комментарий от Паспарту — Декабрь 9, 2008 @ 1:57 am

  15. Плин..эта реклама от Гугля мне всё напутала )

    Комментарий от Мастер — Декабрь 9, 2008 @ 7:56 pm

  16. У кого-нибудь ровно встала?

    Комментарий от Стекольщик — Декабрь 11, 2008 @ 1:26 am

  17. Не знаю ставил 5 раз каждыра раз глюки причем разные мрак…

    Комментарий от grang — Январь 10, 2009 @ 11:10 pm

  18. Спасибо за инстракшн, всё легло ровно

    Комментарий от Юрий — Февраль 23, 2009 @ 3:07 am

  19. Юрий не поделитесь опытом ?

    Комментарий от Шеф повар — Февраль 24, 2009 @ 3:10 am

  20. Шеф повар в статье всё детально описано , в чем проблемы то ?

    Комментарий от Харизматичный лидер — Февраль 25, 2009 @ 3:24 am

  21. так уже ведь есть и версии посвежее

    Комментарий от Сталин — Февраль 26, 2009 @ 3:19 am

  22. собирал по очереди - --enable-module=mod_so
    --enable-rewrite
    результат - # usr/local/apache2/bin/apachectl start
    bash: usr/local/apache2/bin/apachectl: Нет такого файла или каталога
    # ./httpd
    httpd: Syntax error on line 52 of /usr/local/apache2/conf/httpd.conf: Cannotload /usr/local/apache2/modules/mod_foo.so into server: /usr/local/apache2/modules/mod_foo.so: cannot open shared object file: No such file or directory
    WTF?

    Комментарий от anonymous — Март 10, 2009 @ 10:23 pm

Оставить комментарий

You must be logged in to post a comment.

Работает на WordPress