Андрей Смирнов
Время чтения: ~16 мин.
Просмотров: 19

Как запустить Apache на Windows

Эта статья – пошаговая инструкция по созданию локального web-сервера. В ней описана установка web-сервера Apache 2.4 на платформе ОС Windows. Тестирование установки выполнялось на Windows Server 2012 R2 для 64х разрядной операционной системы. Более подробно можно посмотреть в документации http://httpd.apache.org/docs/2.4/

Установка  Apache 2.4

Шаг 1. На сайте apache.org нет версии Apache 2.4 для Windows. Поэтому дистрибутив возьмем на apachelounge.com. В момент написания статьи последний релиз – Apache 2.4.25 win64

блог18_1-1.png?fit=994%2C529&ssl=1

В дистрибутиве Apache нет файла инсталляции. Поэтому установка будет выполняться вручную.

Шаг 4 .  Скачиваем  apache 2/4/25 win64   и компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

Шаг 5   Создаем папку и распаковываем архив httpd-2.4.25-win64-VC14.zip временную папку.  Скопируйте папку  Apache24 на диск С.  Не меняйте путь. Пусть будет C:Apache24. Правок в файле конфигурации будет гораздо меньше, если маршрут  будет такой C:Apache24

Шаг 6   С помощью блокнота редактируем  файл  конфигурации httpd.conf , установленный по маршруту  C:Apache2conf  :

Строка 46  Устанавливаем значение параметра ServerName.ServerName localhost:80

Строка 116 Снимаем  комментарий  (#) и делаем доступно загрузку модуля

LoadModule foo_module modules/mod_foo.so  

Строка 172  . Устанавливаем значение параметра ServerName и ServerAdminServerName localhost:80

ServerAdmin admin@mydomain.ru   

Я создал специальную учетную запись электронной почти на yandex  для параметра ServerAdmin

 Строка 179  Устанавливаем значение параметра DocumentRoot (расположение документов сайта). Я оставил такой мршрут по умолчанию

DocumentRoot C:/Apache24/htdocs

Шаг 7  Исполняемые файлы Apache находятся в папке C:Apache24bin. Добавляем это значение в переменную среды PATH Windows.

блог18_2.png?fit=627%2C354&ssl=1

Шаг 8 Перед установкой  Apache как службу нужно запустить компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe.

Шаг 9  Устанавливаем Apache как службу.

Исполняемые файлы Apache находятся в папке C:Apache24bin.  Для этом открываем командную панель  (Start > Run > cmd) с правами администратора и командой cd меняем директорию, чтобы было C:Apache24bin >  и запускаем httpd.exe -k install

Отметим, что я забыл выполнить шаг 8 перед  запуском службы Apache.  В результате без компоненты  C++ Redistributable Visual Studio 2015  не запускается  Apache из-за того , что нужна библиотека  vcruntime140.dll  в папке  C:WindowsSysWOW64 ( а  для 32 бит в папку C:WindowsSystem32).

блог18_3.png?fit=627%2C321&ssl=1

Аналогичное сообщение дает параметр тестирования службы httpd.exe -t

Можно попробовать скачать компоненту  vcruntime140.dll от сюда  http://www.dll.ru/files/vcruntime140-dll.html и  скопировать  файл в папку  C:WindowsSysWOW64  ( для 32 бит нужно скопировал  файл в папку C:WindowsSystem32).  Однако после этого нужно перезагружать компьютер. Поэтому я рекомендую установить  компоненту C++ Redistributable Visual Studio 2015 : vc_redist_x64/86.exe. Установка этой компоненты не требует перезагрузки компьютера.

Шаг  10 После запуска службы apache  httpd.exe -k start , открываем список запущенным служб в управлении компьютера и находим службу apache 2.4

блог18_4.png?fit=627%2C360&ssl=1

убедимся, что служба запущена и тип запуска – “автоматически”  

Шаг 10  Проверяем работоспособность сервера. В командной строке браузера набираем адрес: http://localhost. Если установка Apache прошла успешно – на экране отобразится текст Itworks!. В противном случае мы увидим пустой экран.

В случае если сервер не запустился, следует проверить, не занят ли порт 80, который использует Apache по умолчанию. Делается это с помощью командыnetstat –anb

Чаще всего этот порт используют Skype или Firefox. В этом случае следует либо освободить порт, либо перевести Apache на порт 8080.

Для этого в файле httpd.conf изменяем значений параметров ServerName и Listen. ServerName localhost:8080

После этого перезапускаем службу командойhttpd.exe -k restart

и опять пытаемся зайти по адресу http://localhost

Для удобства работы с сервером Apache можно установить в меню автозагрузки Windows ярлык, указывающий на C:TestServer Apache24bin ApacheMonitor.exe

Веб-сервер Apache – это служба, которая работает в фоне и у которой нет графического интерфейса. Эта служба устанавливается и запускается в командной строке.

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

На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.

Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:

  c:Apache24binhttpd.exe -k start

И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:

11.png

Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).

Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24conf и называется httpd.conf.

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

12.png

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

Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.

Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для Windows. Если вы знакомы с Linux или другими аналогичными операционными системами, вам должна быть знакома работа в консоли и редактирование текстовых файлов. Пути до файлов тоже записываются не совсем обычно для Windows. Сейчас главное уяснить два правила:

  • используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
  • всегда используйте прямые слеши, а не обратные (т.е., «c:/apache» вместо «c:apache»).

Итак, откройте файл Apache24confhttpd.conf любым текстовым редактором (хоть Блокнотом) и вот мы уже готовы к настройке веб-сервера.

Первой идёт директива ServerRoot – это верхняя директория дерева, в которой хранятся файлы конфигурации сервера и журналов. Не добавляйте слэш на конец пути папки.

Значение по умолчанию устанавливается двумя директивами:

  Define SRVROOT "c:/Apache24"  ServerRoot "${SRVROOT}"

Первая директива присваивает значение переменной SRVROOT, которое по умолчанию «c:/Apache24». Вторая директива присваивает значение переменной ${SRVROOT} настройке ServerRoot.

ServerRoot — это та папка, в которой находятся все файлы веб-сервера – поменяйте значение на то, куда вы распаковали файлы веб-сервера. Это можно сделать используя конструкцию из двух переменных:

  Define SRVROOT "c:/Server/bin/Apache24"  ServerRoot "${SRVROOT}"

Либо если вы не планируете снова использовать переменную ${SRVROOT} (а она по умолчанию используется далее!), то можно сократить запись из двух строк до одной строки:

  ServerRoot "c:/Server/bin/Apache24"

Директива Listen позволяет вам привязать Apache к определённому IP адресу и/или порту. Значение по умолчанию:

  Listen 80

Оно означает, прослушивать 80 порт на любом IP адресе (т.е. любом сетевом интерфейсе), доступном в вашей системе. Вы можете указать конкретный IP адрес, который нужно прослушивать и, следовательно, на запросы с которого отвечать:

  Listen 12.34.56.78:80

Можно указать несколько портов:

  Listen 80  Listen 8000

Или несколько IP и портов:

  Listen 192.170.2.1:80  Listen 192.170.2.5:8000

Вы можете использовать любые сочетания, главное правило – порт на указанном интерфейсе (IP) не должен быть занят другой программой.

Значение по умолчанию вполне подходит для локального веб-сервера – т.е. здесь можно просто ничего не менять.

Далее идёт большой список модулей. Некоторые их них отключены (строки закомментированы, т.е. начинаются с #), а некоторые включены.

На самом деле, всё действительно необходимое уже включено – и для работы большинства веб-сайтов менять ничего не нужно – особенно на локальном веб-сервере. Но есть одно исключение – модуль mod_rewrite по умолчанию отключён. Это очень популярный модуль, например, все ЧПУ (понятные для человека адреса страниц) делаются с помощью него. Вы можете его включить, для этого достаточно найти строку:

  #LoadModule rewrite_module modules/mod_rewrite.so

и раскомментировать её, т.е. заменить на:

  LoadModule rewrite_module modules/mod_rewrite.so

Директива ServerAdmin содержит e-mail администратора, этот адрес электронной почты пишется на некоторых страницах веб-сервера, которые автоматически генерируются в случае возникновения ошибок. Подразумеваются, что по этому адресу можно связаться с администратором.

Директива ServerName – это то, как сервер сам себя идентифицирует (называет). Для локального веб-сервера поменяйте строку

  #ServerName www.example.com:80

на

  ServerName localhost

Конструкция

запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).

Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:

  DocumentRoot "${SRVROOT}/htdocs"  <directory>      Options Indexes FollowSymLinks      AllowOverride None      Require all granted  </directory>

DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.

Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!

Обратите внимание, что для установки настроек вновь используется переменная ${SRVROOT}, значение которой было присвоено в самом начале. Если использовать синтаксис с ${SRVROOT}, то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:

  DocumentRoot "c:/Server/data/htdocs/"  <directory>      Options Indexes FollowSymLinks      AllowOverride None      Require all granted  </directory>

Директива Options включает разные опции. По умолчанию указаны опции Indexes и FollowSymLinks. Первая (Indexes) означает показывать индексные файлы, если запрос не содержит имени файла. Допустим, пользователь открывает адрес http://localhost/site/, то если в этой папке есть индексный файл (например, index.html или index.php), то будет показан этот файл. Понятно, что если сделан запрос на определённый файл, например, http://localhost/site/page.html, то будет показана запрошенная страница.

Вторая опция (FollowSymLinks) означает следовать символьным ссылкам. Это что-то вроде ярлыков в Windows. В Linux с помощью таких ссылок можно собрать в одном сайте файлы, размещённые в различных папках файловой системы. На самом деле, для начинающих администраторов сервера это не очень нужно.

Директива AllowOverride установлена на None, это означает запрет использовать файлы .htaccess. На своём сервере я разрешаю файлы .htaccess (нужны для mod_rewrite, ограничения доступа), поэтому я заменяю её значение на All, получается так:

  AllowOverride All

А директива Require all granted открывает посетителям доступ для веб-документов.

Я уже упомянул индексные файлы, перечень индексных файлов устанавливается конструкцией:

<ifmodule>      DirectoryIndex index.html  </ifmodule>

Там всего один файл — index.html. Можно дописать любое количество своих собственных. Я меняю:

  DirectoryIndex index.html

на

  DirectoryIndex index.php index.html index.htm

Другие настройки обычно не требуется менять для локального веб-сервера.

Смотрите также:

Связанные статьи:

  • Apache для Windows (100%)
  • Документация по Apache на русском языке (100%)
  • Как подключить PHP к Apache на Windows (100%)
  • Как подключить MySQL к Apache на Windows (100%)
  • Установка Apache, PHP, MySQL и phpMyAdmin на Windows XP (100%)
  • Как включить mod_rewrite в Windows (RANDOM — 100%)

(о параметрической настройке Apache 2.4.34 можно прочитать в другой статье)

Проблема установки Apache под Windows

Основная проблема установки Web-сервера Apache под Windows заключается в том, что после первичной установки дистрибутива весь пакет (исполняемые программы, конфигурационные файлы, файлы журналов работы сервера и файловая область для размещения Web-страниц) размещается в одном месте. Это мешает нормальной эксплуатации продукта по следующим причинам:

  • Разграничение прав доступа. Исполняемые файлы должны оставаться неизменными, конфигурационными файлами управляет администратор Web-сервера, а доступ к файловой области Web-страниц должны иметь разработчики и администраторы сайта. Права доступа к папке «Program Files» настроены в предположении, что в ней хранятся исполняемые модули программных пакетов, модификация которых не требуется.
  • Захламление системных папок. Папка «Program Files» операционной системы Windows изначально предназначена для размещения только исполняемых файлов. Она может находиться на отдельном томе, размер которого выбирается системным администратором в предположении о его относительном постоянстве. Уж точно никто не ожидает, что в этой папке будут храниться пользовательские данные, галереи рисунков и файловый архив сайта.

Поэтому установка Apache под Windows должна проводиться в два этапа:

  1. Первичная установка программного пакета в выбранную папку.
  2. Оптимизация размещения файловых областей web-сервера и соответствующее изменение его конфигурации.

При модификации конфигурационных файлов Apache нужно постоянно помнить, что в качестве разделителя путей к файлам и папкам должен использоваться символ «прямой слеш», как в операционных системах Unix и Linux, а не «обратный слеш», как в Windows.

Книги, сувениры, подарки, наборы для творчества, канцтовары — почтой или курьером по РБ

Первичная установка

Для установки потребуется как минимум операционная система Windows XP SP3 (для этой устаревшей версии понадобится Web-сервер, сборка которого выполнена компилятором VC9 или VC10). Современные сборки Apache операционную систему Windows 2000 не поддерживают.

Дистрибутивный пакет Apache для Windows можно загрузить с сайта одного из двух «официальных» поставщиков: Apache Lounge (только версия 2.4, с документацией) или Apache Haus (версии 2.4 и 2.2, без документации). Он представляет собой ZIP-архив, который, по замыслу поставщиков дистрибутива, нужно распаковать в корень диска C:.

Поскольку мы всё равно будем проводить оптимизацию размещения файловой структуры Web-сервера, первичную установку нужно выполнить в ту папку, которая предназначена для размещения исполняемых модулей web-сервера (exe-, lib-, so- файлов и прочих, которые не подвержены изменениям). Это может быть системная папка «Program Files» или другая по выбору системного администратора.

После первичной установки нужно вынести из «базовой» папки в другое место на диске папки с файлами, которые «идеологически» относятся не к web-серверу, а к web-сайту. Для определённости будем предполагать, после распаковки дистрибутива все его компоненты находятся в папке «C:Program FilesApache24», а web-сайт будет размещаться в папке «D:www».

Оптимизация размещения файловых областей

Сразу после установки структура папок программного пакета Apache выглядит следующим образом:

bin
cgi-bin
conf
error
htdocs
icons
include
lib
logs
manuals
modules
— дополнительные программные модули Web-сервера (so-файлы).

Из перечисленных выше папок четырём (cgi-bin, conf, htdocs и logs) не место в базовой папке Web-сервера. Из нужно скопировать в рабочую папку Web-сайта: «D:www». Исходные папки можно было бы удалить, однако они могут понадобится для восстановления начальной ситуации, если в ходе настройки Web-сервера что-то пойдёт не так. С другой стороны, если их оставить на прежнем месте, то из-за неполной настройки Web-сервера может случиться так, что использоваться будут именно эти папки, а не те, которые мы хотим. Поэтому после копирования их лучше просто переименовать в cgi-bin.0, conf.0, htdocs.0 и logs.0 соответственно.

Настройка на новую файловую структуру

Теперь можно отразить фактическую файловую структуру Web-сервера в параметрах конфигурационного файла «D:wwwconfhttpd.conf»:

  1. ServerRoot «C:/Program Files/Apache24» # путь к базовой папке Web-сервера
  2. PidFile «D:/www/logs/httpd.pid» # идентификатор процесса Web-сервера
  3. DocumentRoot «D:/www/htdocs» # здесь размещается Web-сайт<

Directory «D:/www/htdocs«> # свойства папки с Web-сайтом…ErrorLog «D:/www/logs/error.log» # журнал ошибок Web-сервера</li>CustomLog «D:/www/logs/access.log» common # журнал работы Web-сервера</li>ScriptAlias /cgi-bin/ «D:/www/cgi-bin/» # папка серверных CGI-сценариев</li><Directory «D:/www/cgi-bin«> # свойства папки серверных сценариев…TypesConfig D:/www/conf/mime.types # описания MIME-типов</li>Include «D:/www/conf/extra/httpd-manual.conf» # настройка для сопроводительной документации</li></ol>

Обратите внимание, что в п. 2 нужно добавить в конфигурационный файл строку с параметром PidFile, т. к. в эталонном конфигурационном файле этот параметр отсутствует. Остальные параметры в конфигурационном файле уже присутстсвуют — нужно отыскать строки, содержащие их, и заменить исходные пути к папкам на новые.

Пунктом 10 предполагается, что для включения доступа к HTML-документации по ссылке «http://localhost:8080/manual» нужно раскомментировать соответствующую строку с параметром Include и указать новый путь к подключаемому конфигурационному файлу. Однако поскольку местоположение документации тоже изменилось, то потребуется дополнительно внести изменение в файл «D:wwwconfextrahttpd-manual.conf» по аналогии с п. 3 и 8:

  1. AliasMatch ^/manual(?:/(?:da|de|en|es|fr|ja|ko|pt-br|ru|tr|zh-cn))?(/.*)?$ «C:/Program Files/Apache24/manual$1«<

Directory «C:/Program Files/Apache24/manual«>…</ol>

Запуск сервера и проверка настройки

Поскольку мы изменили файловую структуру Web-сервера, запускать исполняемый модуль сервера нужно командой (её можно записать в bat- или cmd-файл): "C:Program FilesApache24binhttpd.exe" -w -f "D:wwwconfhttpd.conf" -d "C:Program FilesApache24."

Запущенный в режиме пользовательского приложения Apache (т. е. запущенный с помощью только что приведенной командной строки) может быть остановлен комбинацией клавиш [Ctrl]+[C]. Если же при этом возникли какие-нибудь трудности, то можно использовать такую команду: taskkill /f /IM httpd.exe

Чтобы установить Apache в качестве службы, надо выполнить команду:"C:Program FilesApache24binhttpd.exe" -k install -f "D:wwwconfhttpd.conf" -d "C:Program FilesApache24."

Запуск и останов службы Web-сервера Apache производится командами: "C:Program FilesApache24binhttpd.exe" -k start и "C:Program FilesApache24binhttpd.exe" -k stop соответственно.

Удалить Apache из списка служб Windows можно с помощью команды: "C:Program FilesApache24binhttpd.exe" -k uninstall

Проверка правильности установки и первоначальной настройки Web-сервера выполняется вводом в Web-браузере URL: «http://localhost:80/». Если всё было выполнено правильно, должна открыться страничка с текстом «It works!»

Если устанавливалась сопроводительная документация в HTML-формате, то она должна быть доступна по ссылке «http://localhost:80/manual/»

Apache ведёт протокол доступа к сайту в файле «D:wwwconfaccess.log». Сведения о проблемах в работе сервера записываются в файл «D:wwwconferror.log». Его анализ может быть особенно полезен при настройке выполнения CGI-сценариев.

Дополнительная настройка

В дополнение к перечисленным выше настройкам нужно проверить значение параметра Listen, которым задаются настройки сетевого интерфейса (ip-адрес и номер TCP-порта), на котором сервер будет принимать клиентские подключения. Если Apache используется индивидуальным Web-разработчиком, то можно рекомендовать такую конфигурацию:

Listen 127.0.0.1:8080 # параметры сетевого интерфейса

Номер TCP-порта не должен конфликтовать с другим программным обеспечением, установленным на компьютере. Так, стандартный порт HTTP 80 часто бывает занят клиентом Skype. Для совместного использования сервера в сети нужно указать правильный IP-адрес или сетевое имя компьютера, на котором устанавливается Web-сервер.

Web-сервер Apache чаще всего используется совместно с интерпретаторами таких языков серверных сценариев, как PHP и Perl. Для того, чтобы на Web-сайте могли использоваться сценарии PHP (предполагаем, что PHP установлен в папку C:PHP5), нужно добавить в конфигурационный файл «D:wwwconfhttpd.conf» следующие строки:

  1. LoadModule php5_module «C:/PHP5/php5apache2_2.dll»
  2. AddType application/x-httpd-php .php
  3. PHPIniDir «C:/PHP5»

Нужно отметить, что в папке PHP5 должен существовать конфигурационный файл php.ini, созданный на основе файла php.ini-development (если сервер используется для разработки Web-сайтов) или php.ini-production (это настоящий Web-сервер). Чтобы модули PHP могли найти все необходимые им динамические библиотеки, путь к папке C:PHP5 должен быть прописан в переменной PATH среды окружения Windows.

Серверные CGI-сценарии на языке Perl уже должны выполняться при соблюдении двух условий:

  1. Интерпретатор языка Perl установлен на этом компьютере.
  2. В первой строке файлов сценариев правильно указан путь к интерпретатору Perl, например: #!C:/PERL/bin/perl.exe -w

Для проверки можно ввести в браузере URL: http://localhost:8080/cgi-bin/printenv.pl, предварительно подправив первую строку сценария printenv.pl в соответствии с п. 2.

Остальные нюансы настройки Web-сервера Apache под Windows выходят за рамки этой статьи.

Книги, сувениры, подарки, наборы для творчества, канцтовары — почтой или курьером по РБ

Используемые источники:

  • https://master1c8.ru/site/ustanovka-i-nastroyka-servera-apache-2-4/
  • https://apache-windows.ru/как-запустить-apache-на-windows/
  • https://www.iharsw.login.by/blog/16090401/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации