Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. И этой записью открываем новый раздел Сервер Apache. В данном разделе мы с вами будем разбираться с тем, как работает HTTP сервер Apache. Начнем мы, конечно, с установки Apache на Windows. Нужно отметить, что большинство хостингов в качестве веб-сервера используют Apache, поэтому любому веб-мастеру необходимо знать основы работы с этим сервером.

Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

В этой записи мы с вами разберемся для чего вообще нужен веб-сервер, затем поговорим про некоторые особенности сервера Apache и установим его на компьютер под управлением Windows, а в завершении мы посмотрим на ошибки, которые могут возникнуть при установке Apache на Windows 7 и выше.


Что такое веб-сервер Apache и для чего он нужен?

Мы знаем, что взаимодействие в сети Интернет можно полностью описать моделью OSI или эталонной моделью. Для веб-разработчика наибольший интерес представляют протоколы и технологии, находящиеся на шестом и седьмом уровне эталонной модели. Из всех протоколов седьмого уровня нам более всех интересен протокол HTTP, в основе которого лежит архитектура клиент-сервер.

Из названия клиент-сервер, даже не зная самой архитектуры, можно понять, что в процессе есть два действующих лица: клиент и сервер. В качестве клиента выступает компьютер, с помощью которого посетитель заходит на сайт и браузер, который установлен на компьютер посетителя. Браузер выполняет две очень важные функции:

  1. Он отправляет специальные HTTP сообщения (такие сообщения получили название HTTP запросы), с помощью которых он (браузер) сообщает серверу о том, что и в каком виде он хочет получить. В запросах браузера содержаться специальные поля HTTP заголовков, при помощи которых браузер сообщает различную служебную информацию, и есть HTTP методы, с помощью которых браузер сообщает о том, что серверу нужно сделать с сообщением.
  2. Второй важной функцией браузера является анализ HTML документов. Анализируя специальные HTML тэги и HTML атрибуты браузер создает страницу, которую мы видим на экране, эта страница состоит из специальных HTML элементов.

Но что происходит на серверном компьютере, что позволяет браузеру получать информацию по протоколу HTTP? Прежде чем ответить на эти вопросы, давайте проведём линию, разделяющую готовые сайты, которые выложены на хостинг и для которых куплены доменные имена и сайты, которые находятся в разработке.

На самом деле разница между ними только в том, что один сайт уже на хостинге с доменом, а другой еще в разработке на локальной машине. Также отметим, что сайты, состоящие из обычных HTML страниц (сайты, созданные без использования системы управления сайтом или статические сайты) могут работать на локальной машине и без специального серверного приложения, это обусловлено тем, что браузер умеет работать с файловой системой компьютера.

Но, как только вы решили создать динамический сайт, например, с использованием языка PHP, у вас возникнет необходимость в сервере, который, грубо говоря, организовывал бы вам доступ к сайту и его базе данных. В качестве такого сервера как раз-таки может выступать Apache. Вообще, веб-сервер Apache на данный момент самый популярный сервер, реализующий взаимодействие по протоколу HTTP (в принципе, это его основная функция, но есть еще и другие, о которых мы поговорим позже). С вероятностью 70% хостинг, на котором вы разместите свой сайт, будет использовать сервер Apache.

Можно дать следующую рекомендацию: если вы уже выбрали хостинг и знаете его программное обеспечение, то лучше всего локальную разработку сайта вести на том же ПО, которое установлено на хостинге. Но, как мы уже говорили, HTTP сервер Apache – самый популярный и чаще всего на хостингах вы столкнетесь именно с ним. Если упрощенно смотреть на Apache исключительно, как на HTTP сервер, то выполняет он следующие действия:

  1. Получает запрос от клиента.
  2. Обрабатывает клиентский запрос.
  3. Ищет ресурс, указанные в запросе клиента.
  4. Отправляет специальный HTTP ответ клиенту, снабженный кодом состояния, по которому клиент узнает, как его понял сервер и смог ли он выполнить указанное действие.

Заметим, что сверху описана очень упрощенная схема действий. Вообще, сервер Apache является кроссплатформенным приложением, реализующим взаимодействие по протоколу HTTP. Если глубоко не вдаваться в детали, то можно сказать, что Apache работает одинаково на любой операционной системе (хотя это не совсем так). Поэтому вы можете установить Apache к себе на компьютер под управлением Windows, разработать и настроить сайт на локальной машине, а затем перенести его на хостинг и с вероятностью 95% ваш сайт будет работать на хостинге так же, как и на локальном компьютере.

Далее мы рассмотрим установку сервера Apache и отметим, что установка веб-сервера Apache может вызвать некоторые трудности у начинающих пользователей, если трудности все-таки возникнут, то рекомендуем вам присмотреться к готовой сборке Denwer или локальному веб-серверу AMPPS, в которые Apache уже включен и даже настроен.

Где скачать Apache? Как установить HTTP сервер Apache на Windows

Веб-сервер Apache – это серверное приложение, которое реализует взаимодействие по HTTP протоколу. Пусть вас не смущает деление на клиент и сервер, поскольку концепция клиент-сервер не делит аппаратные части на строго серверную или строго клиентскую, она лишь позволяет распределить функционал и нагрузку между клиентскими и серверными приложениями, поэтому мы можем установить Apache себе на компьютер и работать с ним, как с удаленным сервером.

Мы собрались устанавливать Apache на Windows 10, но здесь у нас есть небольшая загвоздка. Всё дело в том, что на данный момент, если вы скачаете Apache с официального сайта, затем установите его на Windows, то, скорее всего, PHP интерпретатор откажется работать c версией, скачанной с официального сайта. Поэтому пользователям Windows рекомендуется скачивать Apache из другого источника, ну, если только вы не хотите сами компилировать Apache и производить его первичную конфигурацию.

Также отметим, что вам необходимо удалить все ранее установленные версии сервера Apache перед установкой. Стоит еще сказать, что данная инструкция не поможет установить сервер Apache на Windows XP, так как Apache 2.4 будет работать только на Windows 7 и выше. Перед установкой не забудьте выключить Скайп или отключите в его настройках использование TCP порта 80.

Теперь о том, где скачать Apache. Собственно, скачиваем Apache с этого сайта. Выберете версию, соответствующую вашей операционной системе. На данном сайте вы всегда можете найти актуальную версию сервера Apache для Windows грамотно и правильно скомпилированную, которая гарантированно запустится.

Страница загрузки веб-сервера Apache

Страница загрузки веб-сервера Apache

Раньше у веб-сервера Apache был инсталлер, теперь, к сожалению, установка Apache полностью ручная. Если вы хотите установить дополнительные модули Apache, то скачивать их нужно с этого же сайта. Надеемся, что трудностей со скачиванием Apache не возникнет. Теперь нам необходимо подготовить место на жестком диске, чтобы установить Apache. Так же нам потребуется удобный и профессиональный текстовый редактор, например: Brackets, Sublime Text 3, Notepad++ или IDE NetBeans.

Мы это сделали следующим образом: в корне диска С создали папку Server, внутри которой создали еще четыре папки: apache, tmp, www, log, php. Не все папки мы будем использовать в данной инструкции. Всё это отображено на рисунке ниже.

Структура папок для установки сервера Apache

Структура папок для установки сервера Apache

В папке www мы создали простой HTML документ, который назвали Index.html со следующим содержимым:

В этом документе только один HTML заголовок и если мы сможем открыть его по завершении установки веб-сервера Apache, то мы все сделали правильно. Для дальнейшей установки веб-сервера нам нужно добавить путь в системную переменную PATH:

О том, как это сделать для Windows 7, мы рассматривали в публикации посвященной установки SQLite на Windows, о том, как значение в переменную PATH на Windows 10 мы говорили в статье про установку SASS на Windows.

Теперь приступим к установке Apache на Windows. В архиве, который вы скачали с сайта, есть папка Apache24, ее содержимое нужно распаковать в папку c:\server\apache (не саму папку, а именно ее содержимое). Затем найдите следующий файл: c:\server\apache\conf\httpd.conf, откройте его в любом удобном редакторе и измените значение директивы/переменной ServerRoot следующим образом:

Затем найдите значение переменных DocumentRoot и Directory, замените их на новые, если вы делаете, как в примере, то:

Комментарии в Apache обозначаются символом «#». Переменная ServerName по умолчанию закомментирована, для установки Apache нам нужно это исправить, по умолчанию так:

Заменяем на следующее значение:

Apache записывает информацию об ошибках и о том с какого устройства и когда были запросы к серверу, сохраняя всю информацию в специальные файлы: лог ошибок и лог доступа. Чтобы эти файлы находились в специально отведенной для этого папке, мы внесем следующие изменения:

Теперь приступим к установке сервиса Apache или службы Windows, в Linux эта штука называется демоном. Для этого нам нужно открыть командную строку Windows от имени администратора и выполнить следующую команду:

Если при установке Apache на Windows у вас возникла ошибка следующего содержания: «The program can't start because MSVCR100.dll is missing from your computer. Try reinstalling the program for to fix this problem.» Показана на рисунке ниже.

Ошибка при установки Apache на Windows

Ошибка при установки Apache на Windows

То вам необходимо скачать пакет Visual C++ для Visual Studio 2012, лучше всего это сделать с официального сайта Windows. Пакет установится только в том случае, если вы его будете ставить от имени администратора. Запуск Apache на Wibdows осуществляется просто: переходим в папку c:\server\apache\bin\ и запускаем файл ApacheMonitor.exe. После чего в трее (в правом нижем углу экрана) появится ярлык сервера Apache, жмем на него левой кнопкой мыши и видим контекстное меню, как на рисунке ниже.

Контекстное меню для управления сервером Apache

Контекстное меню для управления сервером Apache

Нажимаем Start, если все прошло успешно, то набрав в браузере http://localhost, вы увидите созданный ранее HTML документ. На этом установка Apache на Windows завершена.

Что делать, если после установки Apache на Windows появляется ошибка: занят порт 80

Если у вас Windows 8 и выше, то вы, скорее всего столкнетесь с проблемой: сервер Apache не запускается из-за того, что занят порт 80. Все давно знают про Skype и о том, что его настройки нужно поменять или просто отключит Скайп на то время, пока запущен Apache. Но, скорее всего, дело не в Скайпе.

Дело всё в том, что зачастую в Windows бывает так, что 80 порт занят каким-то другим процессом и Винда ругается, суть этой ругани в следующем: процесс system висит на 80 порту PID 4. Можно это перевести на человек понятный язык так: на 80 порту работает какое-то системное приложение, его ID = 4.

Порт 80 в Windows может забирать либо Kernel, либо IIS (хотя это не всегда так, нужно каждый раз разбираться). Избавиться от такого досадного недоразумения нам поможете правка реестра Windows:

  1. Нажимаем сочетание клавиш Win+R , вводим regedit.
  2. В реестре ищите ветку «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP»
  3. Затем изменяйте значение ключа “start” с 3 на 4 (если не поможет, то можете попробвать значение 0).
  4. Перезапускаете компьютер.

В моем случае освободить 80 порт в Windows для Apache мне помог данный способ со значением ноль. Другие способы мне не помогли.

Один комментарий к записи Что такое HTTP сервер Apache? Установка веб-сервера Apache 2.4 на Windows. Где скачать Apache 2.4 для Windows?

Auslogics

При установке PHP в качестве модуля настройки из php.ini читаются один раз при запуске Web-сервера. Поэтому при внесении изменений в php.ini необходимо перегрузить Apache для того, чтобы внесенные изменения вступили в силу

Текст комментария: