Содержание
Эта статья – пошаговая инструкция по созданию локального 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
В дистрибутиве 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.
Шаг 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).
Аналогичное сообщение дает параметр тестирования службы 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
убедимся, что служба запущена и тип запуска – “автоматически”
Шаг 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 увидите стандартную страницу веб-сервера, которая сообщает, что он работает:
Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).
Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24conf и называется httpd.conf.
Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.
Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.
Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.
Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для 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 должна проводиться в два этапа:
- Первичная установка программного пакета в выбранную папку.
- Оптимизация размещения файловых областей 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»:
- ServerRoot «C:/Program Files/Apache24» # путь к базовой папке Web-сервера
- PidFile «D:/www/logs/httpd.pid» # идентификатор процесса Web-сервера
- 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:
- 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» следующие строки:
- LoadModule php5_module «C:/PHP5/php5apache2_2.dll»
- AddType application/x-httpd-php .php
- PHPIniDir «C:/PHP5»
Нужно отметить, что в папке PHP5 должен существовать конфигурационный файл php.ini, созданный на основе файла php.ini-development (если сервер используется для разработки Web-сайтов) или php.ini-production (это настоящий Web-сервер). Чтобы модули PHP могли найти все необходимые им динамические библиотеки, путь к папке C:PHP5 должен быть прописан в переменной PATH среды окружения Windows.
Серверные CGI-сценарии на языке Perl уже должны выполняться при соблюдении двух условий:
- Интерпретатор языка Perl установлен на этом компьютере.
- В первой строке файлов сценариев правильно указан путь к интерпретатору 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/