Предыдущие части: Порты и сокеты, Введение
Ставить будем для Windows 10 (не думаю, что версия Windows имеет большое значение, если только у вас не XP).
Веб-сервер Apache распространяется как бесплатное программное обеспечение с открытым кодом, поэтому предполагается, что вы должны скачать исходный код и сами собрать его. Но есть и готовые файлы для Windows, которые мы скачаем отсюда:
https://www.apachehaus.com/cgi-bin/download.plx
Будет нелишним знать, что Apache также называется httpd (http daemon). Выбираем сборку Apache 2.4.x OpenSSL 1.1.1 VC15, и нужно скачать Apache 2.4.46 x64, если у вас 64-битная система, или Apache 2.4.46, если вы не уверены.
Будет скачан зип-архив:
Внутри этого архива будет папка Apache24. Никакой инсталлятор не нужен, просто распакуйте эту папку в любое место, где у вас находятся программы. Я не ставлю инструменты для разработки в каталог Program Files – предпочитаю что-то покороче, например C:/usr/dev.
Папку Apache24 тоже необязательно называть именно так. Я переименовал её в httpd. В общем, веб-вервер у меня находится здесь: c:/usr/dev/httpd. Но вы делайте как хотите, это ни на что не влияет.
Далее, внутри той папки есть папка bin, а в ней программа httpd.exe. Это и есть веб-сервер. Вы можете запустить его прямо сейчас, но я получил вот такую ошибку:
httpd.exe: Syntax error on line 40 of C:/usr/dev/httpd/conf/httpd.conf: ServerRoot must be a valid directory
Это значит, что в конфигурационном файле должен быть указан правильный корень сервера.
Корень сервера – это собственно папка, куда вы его установили. По умолчанию она задана как /Apache24, и если бы сервер был установлен в такую папку, то заработал бы сразу. Но у нас своя атмосфера. Поэтому зайдём в папку conf и найдём там конфигурационный файл httpd.conf. Его можно открыть любым текстовым редактором типа Notepad.
Файл содержит множество параметров конфигурации сервера. Первое, что вы увидите, это параметр ServerRoot. Это и есть корневая папка.
Мы могли бы задать его напрямую вот так:
ServerRoot "/usr/dev/httpd"
Но как видим, тут сделано немного по-другому. Сначала с помощью Define задаётся переменная SRVROOT, которой и присваивается имя папки. А затем параметру ServerRoot присваивается уже значение этой переменной. Это сделано для того, чтобы переменную можно было использовать в разных местах много раз, а изменять только один раз.
Поэтому вместо ServerRoot мы просто меняем переменную SRVROOT:
Define SRVROOT "/usr/dev/httpd"
(Не забудьте, что в примере – не ваша, а моя папка.) Всё, сохраняем файл и снова запускаем httpd.exe. И скорее всего видим:
Это говорит о том, что сервер начал работать и полез слушать сетевые соединения на порт 80. Конечно, надо ему разрешить это сделать. Но так как он ваш локальный сервер, то в общественных сетях ему делать нечего, так что можете разрешить только домашнюю сеть.
Просмотр сайта
Теперь откройте веб-браузер и наберите в адресной строке:
http://localhost
Как мы знаем из предыдущих выпусков, http:// говорит о намерении общаться по протоколу HTTP, а localhost – это сетевое имя компьютера, с которым мы связываемся. Слово localhost зарезервировано и означает вашу собственную машину (локальный хост). То есть мы хотим, чтобы браузер связался по протоколу HTTP с нашей собственной машиной, где ему должен ответить наш собственный веб-сервер.
Если вы видите такую страницу:
то можете себя поздравить – у вас есть собственный веб-сервер, и он работает.
То, что показывается сейчас в браузере – HTML-документ, который был получен браузером от сервера. А где сервер взял этот документ? А в корне сервера есть папка htdocs, а в ней есть файл index.html. Так как браузер не просил никакой конкретный файл, то будет отдаваться именно этот файл. Вы можете его открыть, посмотреть, и даже изменить, а затем обновить страницу браузера и посмотреть на изменения.
Организацией нормального сайта мы займёмся чуть позже, а пока доразберёмся с веб-сервером.
Запуск и остановка
Запустить httpd.exe вы можете тремя способами:
- из ярлыка на рабочем столе
- из проводника Windows
- из командной строки Windows (cmd.exe)
Ярлык на рабочем столе вы можете создать сами, просто укажите в нём путь к httpd.exe.
Но во всех случаях появится чёрное консольное окно. Пока работает httpd.exe, окно должно быть открыто. Если закроете его "крестиком", то работа веб-сервера прекратится. Собcтвенно, это первый способ остановки. Второй способ – нажать в окне Ctrl-С.
Но сами по себе эти окна раздражают. Поэтому мы рассмотрим более правильный способ запуска.
Сервис
Сервисы (службы) – это программы, которые выполняются в фоновом режиме, стартуют вместе с системой и никак не отсвечивают. Это и есть основной режим работы httpd.exe. Чтобы сделать его сервисом, нужно запустить его вот так:
httpd.exe -k install
Вы должны получить сообщения, что служба Apache2.4 успешно установлена, и что перед запуском надо исправить перечисленные ошибки (не пугайтесь, там ничего не перечислено).
После того, как служба установлена (это необходимо сделать только один раз), её можно запустить c помощью команды Windows net:
net start Apache2.4
Учтите, что если httpd.exe уже запущен напрямую, то служба не запустится. Нужно сначала остановить httpd.exe.
Запустив службу, можете закрывать консольное окно, а веб-сервер отныне будет работать тихо и незаметно, и будет запускаться сам, когда загружается компьютер. В случае необходимости вы можете остановить службу:
net stop Apache2.4
А также вообще убрать её:
httpd.exe -k uninstall
Альтернативные способы запуска, остановки и рестарта службы:
- httpd.exe -k start
- httpd.exe -k stop
- httpd.exe -k restart
Вот и всё, что вам надо для управления веб-сервером. Но в поставке есть ещё утилита ApacheMonitor.exe, которая немного облегчает процесс. После её запуска (можете сделать ярлык на рабочий стол) она попадает в трей в виде значка, который отображает состояние сервера (работает / не работает). Кликнув по значку левой кнопкой, вы можете стартовать или остановить сервер, а кликнув правой, можете открыть монитор:
где в общем-то делается то же самое.
Читайте дальше: IP-адреса и DNS