Apache HTTP-сервер представляет из себя кроссплатформенное программное обеспечение, назначение которого прежде всего это – размещение сайтов. Веб-сервер Apache поддерживает различные операционные системы, в том числе и Windows. Здесь разберём, как установить и настроить Apache для работы веб-страницы на Windows Server. В качестве примера будем использовать виртуальный выделенный сервер под управлением Windows Server 2022.
Предварительные работы
Перед тем, как приступить непосредственно к настройке веб-сервера, необходимо установить пакет Visual C++, содержащий компоненты среды, необходимые для запуска приложений C++, а именно, Visual C++ Redistributable for Visual Studio 2015. Данный пакет требуется для запуска Apache. Чтобы получить дистрибутив, перейдите по ссылке, где кликните Download
.
В следующем окне отметьте 64-х разрядную версию дистрибутива и ещё раз нажмите Download
.
После чего запустите на выполнение загруженный установщик, где активируйте согласие с условиями соглашения, затем нажмите Install
.
Загрузка и установка веб-сервера
Теперь можно обратиться к установке непосредственно веб-сервера. Zip-архив Apache доступен на его странице загрузки. Перейдите на неё и кликните в строку, содержащую 64-х битную версию веб-сервера.
По окончании загрузки архива извлеките из него каталог Apache24
. В нашем примере мы сохраняем его на диске C:
. Таким образом, файлы веб-сервера будут располагаться в папке C:\Apache24\
. При этом вы можете сохранить каталог в любое другое удобное для вас место и даже переименовать его по вашему усмотрению.
Настройка веб-сервера
Далее, переходим к настройке конфигурации Apache. Для этого необходимо внести изменения в конфигурационный файл httpd.conf
, который расположен в папке conf
каталога веб-сервера. Откройте файл для редактирования и прежде всего найдите строку Define SRVROOT "C:/Apache24"
. После чего приведите её в соответствие с тем, куда вы разместили и как переименовали каталог Apache24
. В нашем примере изменять данную строку необходимости нет.
Если в установленной версии конфигурационного файла отсутствует параметр Define SRVROOT
, то имя каталога необходимо прописать в следующих строках, заменив значение ${SRVROOT}
на путь к директории веб-сервера:
ServerRoot "${SRVROOT}"
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
Затем найдите строку, которая содержит Options Indexes FollowSymLinks
, и дополните её ещё одним значением, чтобы строка выглядела следующим образом:
Options Indexes FollowSymLinks ExecCGI
Далее, необходимо разрешить веб-серверу выполнять файлы .cgi
и .pl
. Это должно позволить запускать CGI- и Perl-скрипты вне директории cgi-bin
. Для этого отыщите следующую строку:
#AddHandler cgi-script .cgi
И в начале строки удалите символ #
, тем самым актировав данную настройку. Следующей строкой добавьте ещё одну:
AddHandler cgi-script .pl
Кроме того, в самый конец конфигурационного файла добавьте строку, определяющую расположение Perl из системного реестра:
ScriptInterpreterSource Registry
Для применения внесённых изменений сохраните файл httpd.conf
.
Запуск веб-сервера
На следующем шаге мы попробуем запустить веб-сервер. Сделать это можно из командной строки или из оболочки PowerShell. В первом случае откройте командную строку, для чего используйте комбинацию клавиш Win
R
, либо строку поиска, где наберите cmd
.
В открывшейся командной строке запустите исполняемый файл httpd.exe
из директории bin
, расположенной в каталоге веб-сервера:
C:\Apache24\bin\httpd.exe
Запуск командной оболочки PowerShell так же производится при помощи клавиш Win
R
или строки поиска, где следует набрать powershell. Активация веб-сервера производится командой:
& "C:\Apache24\bin\httpd.exe"
Чтобы убедиться, что веб-сервер работает, откройте на вашем VPS браузер и перейдите в нём по адресу http://localhost
:
Настройка брандмауэра
На этом этапе страница, запущенная на нашем веб-сервере, работает исключительно при доступе с VDS. При этом доступ к странице извне закрыт брандмауэром виртуальной машины. Для того, чтобы это исправить, необходимо добавить в брандмауэр разрешающее правило для Apache.
Запуск брандмауэра осуществляется с использованием опять же комбинации Win
R
, где следует набрать firewall.cpl
. После открытия окна Windows Defender Firewall кликните в строку Advanced settings
.
В открывшемся окне перейдите в Inbound Rules
и кликните в New Rule
.
В стартовом окне мастера активируйте строку Program
и нажмите Next
.
Затем при помощи кнопки Browse
выберите файл httpd.exe
из каталога bin
, после чего нажмите Next
.
В следующем окне отметьте все чекбоксы и снова нажмите Next
.
И наконец, в строке Name
укажите название нового правила и для его сохранения кликните Finish
.
Теперь ваша веб-страница будет доступна из сети в том числе и с вашей локальной рабочей станции. Чтобы перейти к ней наберите в адресной строке браузера IP-адрес вашего удалённого сервера или имя домена, A-запись которого настроена на этот IP-адрес.
Запуск Apache как службы
На данном этапе необходимо произвести запуск веб-сервера так, чтобы он функционировал как служба. Это позволит отказаться от использования командной строки и оболочки PowerShell для запуска Apache, поскольку веб-сервер будет работать в фоновом режиме. Для этого откройте командную строку, перейдите в каталог bin
и запустите файл httpd.exe
со следующими параметрами:
httpd.exe -k install
Таким образом, Apache теперь будет работать как служба и проверить это можно в менеджере служб. Чтобы это сделать используйте комбинацию клавиш Win
R
, где введите services.msc
. В списке найдите службу Apache2.4, откройте её и убедитесь, что служба запущена. Если это не так, нажмите Start
.
Веб-сервер Apache – это служба, которая работает в фоне и у которой нет графического интерфейса. Эта служба устанавливается и запускается в командной строке.
Если вам нужен только веб-сервер без дополнительных модулей, то вы можете ограничиться базовой настройкой.
На самом деле, базовая настройка веб-сервера крайне проста – необходимо только правильно указать путь до папки, в которой помещены веб-сайты – этого будет достаточно для запуска веб-сервера.
Кстати, в конфигурационном файле уже прописаны значения многих параметров по умолчанию. К примеру, по умолчанию корневой директорией является c:/Apache24. Поэтому если папку Apache24 из скаченного архива вы разархивируете в корень диска C, то вы можете вообще без настройки запустить веб-сервер следующей командой:
c:\Apache24\bin\httpd.exe -k start
И по адресу http://localhost увидите стандартную страницу веб-сервера, которая сообщает, что он работает:
Кстати, для открытия командной строки в Windows используйте сочетание клавиш Win+x и в открывшемся окне выберите Windows PowerShell (администратор).
Настройка веб-сервера выполняется посредством редактирования текстового файла, который размещён в папке Apache24\conf\ и называется httpd.conf.
Этот файл состоит из директив с определёнными значениями. Эти директивы регулируют поведение веб-сервера. Но больше чем директив в этом файле комментариев – они начинаются с решётки (#) – комментарии нужны для человека, который настраивает веб-сервер. Сам сервер строки начинающиеся с # просто игнорирует. Т.е. вы можете просто удалить их.
Этот файл содержит не все возможные директивы – многие из них здесь отсутствуют, поскольку не требуются для большинства задач. Даже в этой заметки мы рассмотрим не все доступные в файле настройки – если описание чего-то пропущено, значит просто не нужно это трогать.
Как уже было сказано, важно установить путь до папки с веб-сайтами. Если она установлена неправильно (например, отсутствует на компьютере), то веб-сервер не запуститься.
Думаю, вы уже обратили внимание, что веб-сервер отличается от других программ для Windows. Если вы знакомы с Linux или другими аналогичными операционными системами, вам должна быть знакома работа в консоли и редактирование текстовых файлов. Пути до файлов тоже записываются не совсем обычно для Windows. Сейчас главное уяснить два правила:
- используйте абсолютные пути до файла (которые начинаются с буквы диска, затем следуют все вложенные папки), а не относительные – у сервера свои правила интерпретации относительных путей, поэтому вы можете не понять друг друга;
- всегда используйте прямые слеши, а не обратные (т.е., «c:/apache» вместо «c:\apache»).
Итак, откройте файл Apache24\conf\httpd.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
Конструкция
<Directory /> AllowOverride none Require all denied </Directory>
запрещает доступ к файловой системе веб-сервера (пока это не разрешено явно) и запрещает использовать файлы .htaccess (пока это не разрешено явно).
Далее идёт довольно объёмная конструкция, но если удалить из неё комментарии, то получается следующее:
DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
DocumentRoot – это директория, где по умолчанию находятся сайты. По умолчанию именно там ищутся все пришедшие на веб-сервер запросы. Укажите здесь путь до корневой папки в веб-документами. Конечный слэш писать не нужно.
Конструкция <Directory />…</Directory> нам уже встречалась. Но здесь указывается конкретная папка, для который делаются настройки. Эти настройки перезаписывают общие, которые указаны ранее.
Пути до папок в DocumentRoot и Directory не забудьте поменять на свои!
Обратите внимание, что для установки настроек вновь используется переменная ${SRVROOT}, значение которой было присвоено в самом начале. Если использовать синтаксис с ${SRVROOT}, то корневая папка документов должна обязательно находится в корневой папке сервера. Я настраиваю сервер по-другому — у меня исполнимые файлы отделены от файлов сайтов, поэтому вместо переменной, можно просто прописать пути до нужной папки с сайтами:
DocumentRoot "c:/Server/data/htdocs" <Directory "c:/Server/data/htdocs"> 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 dir_module> DirectoryIndex index.html </IfModule>
Там всего один файл — index.html. Можно дописать любое количество своих собственных. Я меняю:
DirectoryIndex index.html
на
DirectoryIndex index.php index.html index.htm
Другие настройки обычно не требуется менять для локального веб-сервера.
Смотрите также:
- Как подключить PHP к Apache на Windows
- Как подключить MySQL к Apache на Windows
Связанные статьи:
- Apache для Windows (100%)
- Документация по Apache на русском языке (100%)
- Как подключить PHP к Apache на Windows (100%)
- Как подключить MySQL к Apache на Windows (100%)
- Установка Apache, PHP, MySQL и phpMyAdmin на Windows XP (100%)
- Как установить веб-сервер Apache с PHP, MySQL и phpMyAdmin на Windows (RANDOM — 100%)
Все способы:
- Шаг 1: Скачивание и распаковка файлов
- Шаг 2: Изменение конфигурационного файла
- Шаг 3: Первый запуск локального веб-сервера
- Вопросы и ответы: 17
В этой статье мы разберем только основные принципы установки и первого запуска веб-сервера Apache на компьютере под управлением Windows. Учитывайте, что все остальные действия, такие как: установка PHP, подключение MySQL, добавление других необходимых компонентов для локального сервера, придется выполнять вручную, из-за чего могут изменяться настройки Apache. Если во время редактирования глобальных параметров возникнут проблемы, не стесняйтесь обращаться к официальной документации и искать в поисковике решение ошибок по их кодам.
Шаг 1: Скачивание и распаковка файлов
Apache для Windows распространяется в виде ZIP-архива, в котором находятся все нужные файлы. Установка через Терминал, как это осуществляется в дистрибутивах Linux, в этом случае недоступна, поэтому для получения файлов выполните следующие действия:
Скачать Apache с официального сайта
- Кликните по кнопке выше, чтобы перейти на официальный сайт веб-сервера, где нажмите по ссылке с названием последней доступной версии Apache.
- Вы окажетесь на странице описания версии, после чего выберите «Files for Microsoft Windows».
- В разделе «Downloading Apache for Windows» нажмите на ссылку «Apache Lounge».
- Выберите версию для разрядности своей операционной системы и начните загрузку.
- Пока файлы скачиваются, создайте папку, куда будут помещены все элементы, связанные с веб-сервером. Мы выбрали для этого системный раздел жесткого диска, создали папку «Server», а в ней — «Bin». Это стандартные названия каталогов, поэтому при редактировании конфигурационного файла будем учитывать именно данное расположение.
- Перетащите папку «Apache24» из скачанного архива в созданный ранее каталог «Bin».
Шаг 2: Изменение конфигурационного файла
Конфигурация локального веб-сервера, установленная по умолчанию, не подходит для его нормального запуска, чтобы проверить работу и подключить остальные компоненты. Связано это с изменением пути расположения файлов и другими параметрами, влияющими на старт программы. Измените их, выполнив представленные далее шаги.
- Перейдите по пути
C:\Server\bin\Apache24\conf\
. - Дважды кликните по файлу «httpd.conf» для его открытия.
- Если у вас есть продвинутый текстовый редактор, выберите его для просмотра файла конфигурации. В противном случае используйте стандартный «Блокнот».
- В документе найдите строку
Define SRVROOT "c:/Apache24"
. - Замените ее на
Define SRVROOT "c:/Server/bin/Apache24"
, чтобы указать новый путь к файлам. Учитывайте, что в строке мы указали созданный ранее путь. Если у вас он отличается, поменяйте выражение в кавычках. - Далее найдите строку
#ServerName www.example.com:80
, которая по умолчанию заключена в комментарий и неактивна. - Измените ее на
ServerName localhost
, указав тем самым локальный адрес, который в дальнейшем и будет использоваться для проверки веб-сервера. - Отыщите строки
DocumentRoot "${SRVROOT}/htdocs"
и<Directory "${SRVROOT}/htdocs">
, которые отвечают за расположение связанных с сервером файлов. - Замените их на
DocumentRoot "c:/Server/data/htdocs"
и<Directory "c:/Server/data/htdocs">
. - Сейчас параметр
DirectoryIndex
имеет только значениеindex.html
, поэтому его тоже нужно найти и отредактировать. - Добавьте еще несколько доступных форматов файлов, чтобы в итоге строка обрела вид
DirectoryIndex index.php index.html index.htm
. - Для строки
AllowOverride None
поменяйте состояние наAll
, удалив предыдущее выражение. - Осталось только найти
#LoadModule rewrite_module modules/mod_rewrite.so
и убрать значок #, активировав тем самым строку. - В итоге она должна отображаться так, как это показано на следующем скриншоте.
- Если с поиском конкретных строк у вас возникают проблемы, используйте сочетание клавиш Ctrl + F, чтобы вызвать инструмент «Найти» и вписать там необходимое выражение.
- Перед выходом не забудьте сохранить изменения в конфигурационном файле.
Шаг 3: Первый запуск локального веб-сервера
Приступим к первому запуску локального веб-сервера Apache для проверки его работоспособности. Надо это для того, чтобы при дальнейшей настройке у вас не возникло серьезных неполадок, на решение которых потратится много времени.
- Щелкните правой кнопкой мыши по меню «Пуск» и из появившегося меню выберите пункт «Windows PowerShell (администратор)».
- Введите команду
c:\Server\bin\Apache24\bin\httpd.exe -k install
и нажмите Enter для ее активации. Она установит компоненты Apache и подготовит их к работе. - После получения информации об успешной установке сервисов переходите к следующему шагу.
- Запуск веб-сервера осуществляется через команду c
:\Server\bin\Apache24\bin\httpd.exe -k start
. - Появится оповещение Безопасности Windows, которое следует подтвердить, нажав «Разрешить доступ».
- Откройте любой браузер и перейдите по адресу
http://localhost/
. Если на странице появилась надпись «Index of /», значит, все действия выполнены правильно. - При получении ошибки в консоли, свидетельствующей об отсутствии необходимых папок, перейдите в каталог «Server», создайте там директорию «data» с подпапкой «htdocs».
Наша группа в TelegramПолезные советы и помощь
Веб-сервер Apache поддерживает различные операционные системы, в том числе и Windows.
Здесь разберём, как установить и настроить Apache для публикации баз 1С на Windows Server.
В качестве примера будем использовать выделенный сервер с установленным сервером 1С под управлением Windows Server 2019.
Сборка Апач 2.4.62-240718 Win64 работает с использованием новейшей версии Windows® Visual Studio C++ 2022, также известной как VS17.
Имеет улучшения, исправления и оптимизации по сравнению с VS16 в таких областях, как производительность, управление памятью, новые функции соответствия стандартам,
генерация кода и стабильность. Например, настройка качества кода и улучшения, выполненные в различных областях генерации кода для «скорости».
И более эффективно использует новейшие процессоры и поддерживаемые внутренние функции выпусков Windows.
Инструкция по установке
-
Установить последнюю версию Visual C++ Redistributable Visual Studio 2015-2022 (на момент написания статьи — это версия 14.40.33810).
-
Загрузить и установить веб-сервер Apache 2.4
-
Настроить и запустить веб-сервер Apache 2.4
-
Настроить брэндмауэр.
-
Запустить Apache как службу.
-
Настроить SSL- сертификаты для сервера Apache.
-
Настроить публикации баз 1С для доступа по https протоколу.
Подготовительные работы
Перед установкой Апач 2.4 на Windows Server необходимо установить последнюю версию
Visual C++ Redistributable Visual Studio 2015-2022 (на момент написания статьи — это версия 14.40.33810).
Для этого качаем распространяемый компонент Microsoft Visual C++ для Visual Studio 2022 с официального сайта:
После чего запустите на выполнение загруженный установщик, где активируйте согласие с условиями соглашения, затем нажмите Install / Установить.
Установка веб-сервера
Установим веб-сервер скачав архив Apache2.4 непосредственно с сайта загрузки Apache Lounge.
Выбираем 64-х битную версию веб-сервера.
Распакуем скачанный Архив в директорию C:/Apache24
или вы можете сохранить каталог в любое другое удобное для вас место и даже
переименовать его по вашему усмотрению.
Настройка веб-сервера
Теперь настроем конфигурации Apache. Для этого необходимо отредактируем конфигурационный файл httpd.conf,
который расположен в директории веб-сервера: /Apache24/conf/
.
Откройте файл для редактирования и прежде всего найдите строку Define SRVROOT "C:/Apache24"
.
и если вы разархивировали веб-сервер в другой каталог укажите путь, куда вы разместили и как переименовали каталог Apache24.
в этом примере директория веб-сервера не изменилась.
Если в установленной версии конфигурационного файла отсутствует параметр Define SRVROOT
,
то имя каталога необходимо прописать в следующих строках, заменив значение ${SRVROOT}
на путь к директории веб-сервера:
ServerRoot "${SRVROOT}"
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
Если нам требуется выполнять CGI- и Perl-скрипты вне директории cgi-bin
Затем найдите строку, которая содержит Options Indexes FollowSymLinks
, и дополните её ещё одним значением,
чтобы строка выглядела следующим образом:
Options Indexes FollowSymLinks ExecCGI
Далее, необходимо разрешить веб-серверу выполнять файлы .cgi и .pl. Это позволит запускать CGI- и
Perl-скрипты вне директории cgi-bin. Для этого отыщите следующую строку:
#AddHandler cgi-script .cgi
И раскоментируем ее (в начале строки удалим символ** #**, тем самым актировав данную настройку). Следующей строкой добавим ещё одну:
AddHandler cgi-script .pl
Кроме того, в самый конец конфигурационного файла добавьте строку, определяющую расположение Perl из системного реестра:
ScriptInterpreterSource Registry
Для применения внесённых изменений сохраните файл httpd.conf.
Запуск веб-сервера Apache24
На следующем шаге запустим веб-сервер. Сделать это можно из командной строки или из оболочки PowerShell.
Запуск из командной строки
В первом случае открываем командную строку, для чего используем комбинацию клавиш Win R, либо строку поиска, где наберираем cmd
.
В открывшейся командной строке запустите исполняемый файл httpd.exe из директории bin, расположенной в каталоге веб-сервера:
C:\Apache24\bin\httpd.exe
Запуск командной оболочки PowerShell так же производится при помощи клавиш Win R или строки поиска,
где следует набрать powershell. Активация веб-сервера производится командой:
& "C:\Apache24\bin\httpd.exe"
Проверим, что веб-сервер работает, откроем браузер по адресу http://localhost:
Должны увидеть картинку:
Настройка брандмауэра
Пока доступ к веб-серверу предоставлен исключительно локально. При этом доступ к странице извне закрыт брандмауэром Windows server.
Для того, чтобы доступ к веб-серверу был извне, необходимо добавить в брандмауэр разрешающее правило для нашего Apache.
Доступ к брандмауэру осуществляется нажатием парвой кнопки мыши по кнопке “Пуск”, где необходимо выбрать “Выполнить” или
с использованием комбинации Win R, где следует набрать firewall.cpl
.
После открытия окна Windows Defender Firewall кликните в строку Advanced settings / Дополнительные параметры.
В открывшемся окне выберем Inbound Rules / Правилая для входящих подключений и кликнем New Rule / Создать правило.
В стартовом окне мастера активируйте строку Для программ и нажмите Далее.
Далее при помощи кнопки Обзор… выберите файл httpd.exe из каталога C:\Apache24\bin
, после чего нажмите Далее и в следующем окне еще раз Далее
в шаге “Профиль” проверим, что выбраны все чек-боксы и нажимаем Далее
И в конце дадим имя нашему правилу, в строке “Имя:»» укажем название нового правила например Apache24 и для его сохранения нажимаем Готово.
Теперь наш веб-сервер доступен из Интернет.
Настроим Apache как службу
Использование Apache как службы Windows позволит автоматизировать запуск веб-сервера Apache после перезагрузки,
поскольку веб-сервер будет работать в фоновом режиме.
Для этого откроем командную строку (Выполнить cmd), перейдем в каталог C:\Apache24\bin
и запустим файл httpd.exe со следующими параметрами:
Таким образом, Apache теперь будет работать как служба и проверить это можно в менеджере служб. Чтобы это сделать используйте комбинацию клавиш Win R, где введите services.msc
.
В списке найдите службу Apache2.4, откройте её и убедитесь, что служба запущена. Если это не так, нажмите Start.
Настроим ssl-сертификат
Получение сертификата
Наиболее простым способом установки SSL-сертификата от Let’s Encrypt является применение консольной утилиты WACS (Windows ACME Simple).
WACS позволяет осуществить автоматический выпуск и привязку SSL-сертификата к сайтам, работающим на IIS и Apache.
На момент написания данной статьи актуальной версией утилиты являлась версия v2.2.9.1.
Загрузка клиента WACS доступна со страницы проекта на GitHub – https://github.com/win-acme/win-acme/releases.
Настроим публикацию баз 1С на сервере
Так же для запуска веб-сервисов 1С проведем корректировки
Раскоментируем модули:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
Мы включили модуль ssl так как для доступа к опубликованным базам 1С будем испольлзовать https протокол
И добавим _1cws_module модуль, указав при этом адрес до библиотеки wsap24.dll, установленной вместе с 1С сервером:
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.25.1336/bin/wsap24.dll"
Обратите внимание, что в конфигурации Апач все слэши в пути — обратные!
Вместо ServerName добавим:
<VirtualHost *:80>
ServerName domen.name:80
Redirect / https://domen.name/
</VirtualHost>
где domen.name
— Ваш домен.
в блок
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
необходимо добаить строчку
И включим ссылку на конфигурационный индивидуальный файл:
# Secure (SSL/TLS) connections
Include conf/domen.name.conf
Вместо domen.name
— укажите Ваш домен.
Подготовим наш конфигурационный файл
Listen 443 https
# SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
# SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
# SSLHonorCipherOrder on
# SSLProtocol all -SSLv3
# SSLProxyProtocol all -SSLv3
# SSLPassPhraseDialog builtin
<VirtualHost ip_adress:443>
DocumentRoot "${SRVROOT}/htdocs"
ServerName domen.name:443
ServerAdmin support@domen.name
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/ssl/domen.name-chain.pem"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/domen.name-key.pem"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "${SRVROOT}/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
# -------------- 1c public configurations section ----------------------------
# 1c publication
Alias "/pb_ka3" "C:/public1c/bp_ka3/"
<Directory "C:/public1c/bp_ka3/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/public1c/bp_ka3/default.vrd"
</Directory>
# в этом месте добавляем публикации каждой базы
# -------------- end of 1c public configurations section ----------------------------
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "${SRVROOT}/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Корректируем и сохраняем в папку /conf/
Чтобы настройки применились, необходимо перезапустить веб-сервер (Службу Apache24)
Подробней о настройке автоматического получения бесплатного SSL-сертификата от Let’s Encrypt к сайтам, работающим на IIS и Apache
Последнее обновление: 25.11.2023
Для работы с PHP нам потребуется веб-сервер. Обычно в связке с PHP применяется веб-сервер Apache. Официальный
сайт проекта — https://httpd.apache.org/. Там же можно найти всю подробную информацию о релизах, скачать исходный код.
Однако официальный сайт не предоставляет готовых сборок для ОС Windows.
Перед установкой Apache следует отметить, что если наша ОС Windows, то в системе должны быть установлен пакет для C++, который можно найти по адресу
для 64-битной и для 32-битной.
Итак, если нашей ОС является Windows, перейдем на сайт http://www.apachelounge.com/, который предоставляет дистрибутивы Apache для Windows:
В разделе Apache 2.4 binaries VS17 выберем последнюю версию дистрибутива сервера. На странице загрузок мы можем
найти две версии пакета Apache — для 64-битных систем и для 32-битных.
После загрузки пакета Apache распакуем загруженный архив. В нем найдем папку непосредственно с файлами веб-сервера — каталог Apache24.
Переместим данный каталог на диск C, чтобы полный путь к каталогу составлял C:/Apache24.
Запуск Apache
В распакованном архиве в папке bin найдем файл httpd.exe
Это исполняемый файл сервера. Запустим его. Нам должна открыться следующая консоль:
Пока работает это приложение, мы можем обращаться к серверу. Для его тестирования введем в веб-браузере адрес
http://localhost. После этого веб-браузер должен отобразить следующую страницу:
Эта страница символизирует, что наш веб-сервер работает, и мы можем с ним работать.
Конфигурация веб-сервера
Теперь проведем конфигурацию сервера, чтобы связать его с ранее установленным интерпретатором PHP.. Для этого найдем в папке веб-сервера
в каталоге conf (то есть C:\Apache24\conf ) файл httpd.conf
Откроем этот файл в текстовом редакторе. httpd.conf настраивает поведение веб-сервера.
Мы не будем подобно затрагивать его описания, а только лишь произведем небольшие изменения, которые потребуются нам для работы с PHP.
Прежде всего подключим PHP. Для этого нам надо подключить модуль php, предназначенный для работы с apache. В частности, в папке
php мы можем найти файл php8apache2_4.dll:
Для подключения php найдем в файле httpd.conf конец блока загрузки модулей LoadModule
//...................... #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so
И в конце этого блока добавим строчки
LoadModule php_module "C:/php/php8apache2_4.dll" PHPIniDir "C:/php"
Далее укажем место, где у нас будут храниться сайты. Для этого создадим, например, на диске С каталог localhost. Затем найдем в файле httpd.conf
строку
DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs">
По умолчанию в качестве хранилища документов используется каталог «c:/Apache24/htdocs». Заменим эту строку на следующую:
DocumentRoot "c:/localhost" <Directory "c:/localhost">
Изменим пути файлам, в которые будут заноситься сведения об ошибках или посещении сайта. Для этого найдем строку
ErrorLog "logs/error.log"
И заменим ее на
ErrorLog "c:/localhost/error.log"
Далее найдем строку
CustomLog "logs/access.log" common
И заменим ее на
CustomLog "c:/localhost/access.log" common
Таким образом, файл error.log
, в который записываются ошибки, и файл access.log
, в который заносятся все
данные о посещении веб-сайта, будут располагаться в папке c:/localhost.
Затем найдем строчку:
#ServerName www.example.com:80
И заменим ее на
ServerName localhost
Далее найдем блок <IfModule mime_module>
:
<IfModule mime_module> # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types
И под строкой <IfModule mime_module>
добавим две строчки:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
То есть должно получиться:
<IfModule mime_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types
В данном случае мы добавили поддержку для файлов с расширением .php
и .phps
.
И в конце найдем блок <IfModule dir_module>
:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
И заменим его на следующий:
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
В данном случае мы определяем файлы, которые будут выполняться при обращении к корню файла или каталога. То есть по сути определяем главные страницы
веб-сайта: index.html и index.php.
Это минимально необходимая конфигурация, которая нужна для работы с PHP.
Теперь наша задача — убедиться, что php подключен и работает правильно. Для этого перейдем в папку c:/localhost, которую мы создали для хранения
файлов веб-сервера, и добавим в нее обычный текстовый файл. Переименуем его в index.php и внесем в него следующее содержание:
<?php phpinfo(); ?>
В данном случае мы создали простейший скрипт, который выводит общую информацию о PHP.
Теперь заново запустим файл httpd.exe и обратимся к этому скрипту, набрав в строке браузера
адрес http://localhost/index.php
Что тут произошло? При обращении к сайту на локальной машине в качестве адреса указывается http://localhost.
Затем указывается имя ресурса, к которому идет обращение. В данном случае в качестве ресурса используется файл
index.php. И так как в файле httpd.conf в качестве хранилища документов веб-сервера указан каталог C:\localhost, то именно в этом каталоге и будет
веб-сервер будет производить поиск нужных файлов.
И поскольку выше при конфигурировании мы указали, что в качестве главной страницы может использоваться файл index.php, то мы можем также обратиться к
этому ресурсу просто http://localhost/
Таким образом, теперь мы можем создавать свои сайты на php.
Установка веб-сервера в качестве службы
Если мы часто работаем с веб-сервером, в том числе для программиррования на PHP, то постоянно запускать таким образом сервер,
может быть утомительно. И в качестве альтернативы мы можем установить Apache в качестве службы Windows.
Для этого запустим командную строку Windows от имени администратора и установим Apache в качестве службы с помощью команды:
C:\Apache24\bin\httpd.exe -k install
То есть в данном случае прописываем полный путь к файлу httpd.exe (C:\Apache24\bin\httpd.exe) и далее указываем команду на установку службы -k install
.
Если установка завершится удачно, то в командная строка отобразит сообщение «The Apache2.4 service is successfully installed». Также будет проведено тестирование сервера.
После установки службы убедимся, что она запущена