Установщик Apache HTTP Server для Windows — PowerShell скрипт с поддержкой нескольких экземпляров

27.03.26

Администрирование - Администрирование веб-серверов

PowerShell-скрипт автоматической установки Apache HTTP Server 2.4 на Windows. Поддерживает несколько экземпляров на разных портах, бэкап, брандмауэр, логирование. Компилируется в exe. Две версии: RU и EN.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Полный пакет: EXE + скрипты на двух языках (EN / RU).
.zip 74,42Kb
3 5 000 руб. Купить
Скрипт PowerShell + BAT-запускальщик. Английский интерфейс установщика
.zip 13,37Kb
0 4 200 руб. Купить
Скрипт PowerShell + BAT-запускальщик. Русский интерфейс установщика
.zip 15,07Kb
1 4 200 руб. Купить
Standalone EXE без зависимостей
.zip 24,18Kb
0 4 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.
Установщик Apache HTTP Server для Windows
PowerShell-скрипт с поддержкой нескольких экземпляров
imiron.ru  |  Март 2026

Зачем это нужно

При разработке на платформе 1С нередко требуется локальный веб-сервер Apache — для публикации баз, веб-сервисов, REST API. Стандартная установка Apache на Windows требует ручной правки конфигурации, регистрации службы, настройки брандмауэра. Этот скрипт автоматизирует весь процесс — от скачивания дистрибутива до открытия браузера с подтверждением работы сервера.


Возможности

  • Автоопределение разрядности ОС (x86 / x64)
  • Скачивание актуальной версии Apache с apachelounge.com (через вспомогательный PHP-скрипт на imiron.ru)
  • Проверка и автоустановка Visual C++ Redistributable (VS 2017–2026)
  • Несколько экземпляров Apache на разных портах — каждый как отдельная служба Windows
  • Реестр экземпляров через Windows Registry (не зависит от расположения скрипта/exe)
  • Обнаружение уже установленных Apache через сканирование SCM
  • Интерактивное меню выбора папки и порта с отображением занятости
  • Проверка свободного места на диске перед установкой и бэкапом
  • Бэкап перед переустановкой или удалением (только conf\ или папка целиком, упаковка в zip)
  • Управление правилами брандмауэра Windows — всплывающее окно «Разрешить доступ» не появляется
  • Полное логирование всех операций с временными метками
  • Ссылка на лог установки прямо на стартовой странице Apache в браузере
  • Совместим с ps2exe — компилируется в standalone .exe без зависимостей
  • Две языковые версии: русская и английская

Что устанавливается

После успешной установки:

  1. Apache HTTP Server 2.4 в выбранной папке (например D:\Apache24)
  2. Служба Windows с именем Apache_<порт> (например Apache_8080) — стартует автоматически
  3. Правило брандмауэра для httpd.exe на выбранном порту
  4. Запись в реестре HKLM\SOFTWARE\ApacheInstaller\Instances\Apache_<порт>
  5. Кастомная стартовая страница с информацией о сервере и ссылкой на лог установки

Конфигурация Apache

Скрипт записывает минимальный безопасный httpd.conf:

Listen 8080                         # без привязки к IP — надёжнее на Windows

LoadModule authz_host_module ...    # обязателен для Require ip
LoadModule headers_module ...       # заголовки безопасности

ServerTokens   Prod                 # скрываем версию
ServerSignature Off
TraceEnable    Off                  # защита от XST

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options        "SAMEORIGIN"
Header always set X-XSS-Protection       "1; mode=block"

<Location /server-status>
    SetHandler server-status
    Require ip 127.0.0.1 ::1        # статус только с localhost
</Location>
Почему Listen 8080 без IP-адреса? Listen 127.0.0.1:8080 на Windows иногда вызывает ошибку AH00072: make_sock: could not bind, если hostname резолвится иначе чем ожидает Apache. Listen 8080 работает надёжно.
b88; Почему подключен mod_authz_host? Директива Require ip принадлежит именно этому модулю, а не mod_authz_core. Без него Apache падает с AH00526: Unknown Authz provider: ip при старте.

Несколько экземпляров

Скрипт поддерживает установку нескольких Apache на одной машине на разных портах. Каждый экземпляр получает уникальное имя службы по порту: Apache_80, Apache_8080 и т.д.

Регистрируется командой:

httpd.exe -k install -n Apache_8080

При повторном запуске скрипта список установленных экземпляров отображается в шапке. Пункт «Удалить» в меню активен только если есть что удалять.


Требования

Параметр Значение
ОС Windows 7 SP1 или новее
PowerShell 5.1 или новее
Права Администратор
Сеть Доступ в интернет

Права администратора проверяются в runtime через WindowsPrincipal.IsInRole — надёжнее, чем #Requires -RunAsAdministrator, который иногда игнорируется.


Запуск

Вариант 1 — через bat-файл (рекомендуется)

install-ru.bat

Bat-файл автоматически запрашивает права через UAC. Если рядом есть скомпилированный exe — запускает его, иначе запускает ps1 через PowerShell.

Вариант 2 — PowerShell напрямую

powershell -ExecutionPolicy Bypass -File src\install-apache-ru.ps1

Вариант 3 — скомпилированный exe

install-apache-ru.exe

Компиляция в exe

build-exe.bat

Bat-файл устанавливает ps2exe если нужно и компилирует обе языковые версии.

Или вручную:

Install-Module -Name ps2exe -Scope CurrentUser -Force
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Import-Module ps2exe
Invoke-ps2exe .\src\install-apache-ru.ps1 .\install-apache-ru.exe -requireAdmin -noConsole:$false
b88; Совместимость с ps2exe: В exe-файле $MyInvocation.MyCommand.Path возвращает $null. Скрипт определяет рабочую папку через Process.MainModule.FileName — логи, бэкапы и реестр экземпляров всегда окажутся рядом с exe, а не в %TEMP%.

Лог установки

Каждый запуск создаёт файл install-apache-YYYYMMDD-HHMMSS.log рядом со скриптом. В лог пишется всё: ответы пользователя, вывод httpd.exe, HTTP-проверка, ошибки.

Пример записи при успешной установке:

[2026-03-27 10:07:35] [INFO] httpd.exe stderr: Installing the 'Apache_8080' service
[2026-03-27 10:07:35] [INFO]                   The 'Apache_8080' service is successfully installed.
[2026-03-27 10:07:35] [INFO] httpd.exe ExitCode: 0
[2026-03-27 10:07:38] [OK]   Service Apache_8080 started.
[2026-03-27 10:07:39] [OK]   HTTP response: 200
[2026-03-27 10:07:39] [OK]   Installation complete

Известные особенности Windows

Кириллица в одинарных кавычках

В PowerShell-скриптах ломает парсер при сохранении файла в UTF-8 без BOM на русских Windows с кодировкой консоли CP1251. В скрипте все строки с кириллицей используют двойные кавычки "...".

Bat-файлы

Сохранены в ANSI (CP1251) без BOM — именно так cmd.exe читает их корректно.


Ручная установка

Если вы хотите разобраться в процессе установки подробнее или настроить Apache под конкретную задачу вручную — см. отдельную статью:

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    11278    44    62    

58

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    1775    2    0    

5

Администрирование веб-серверов Системный администратор Программист 1С 8.3 Бесплатно (free)

В файле публикации 1С есть элемент, которого конфигуратор не пишет, и большинство боевых публикаций живёт без него. Мы собрали стенд и посмотрели, чего это стоит: двенадцать параллельных вызовов, десять прошли одной волной, два ждали вдвое дольше. Отказа не получил никто, и это главное: очередь стоит до сервера 1С, поэтому её не видно ни в метриках кластера, ни в журнале регистрации. Померили четыре вещи - чем задаётся предел одновременности, в каких единицах заданы таймауты пула (документация расходится сама с собой), когда правка файла вступает в силу и сколько на самом деле живёт сеанс против написанного в нём. Дальше - что проверить у себя и почему 502 рядом с 1С не всегда означает, что сервер отвалился.

26.08.2026    863    nedomolkov.ivan    0    

1

Администрирование веб-серверов Системный администратор Программист 1С 8.3 Абонемент ($m)

Веб-публикация работает, но сервисы иногда перестают отвечать, изредка прилетает 500, а после простоя первый вход тянется полминуты. Обработка разбирает файл публикации и живые сеансы сама, а по стороне веб-сервера печатает PowerShell-скрипт администратору и разбирает его ответ обратно. По каждому пункту говорит не что там написано, а чем текущее значение кончится. В настройки IIS ничего не пишет.

10 стартмани

26.08.2026    406    0    nedomolkov.ivan    0    

0

Администрирование веб-серверов Сервера HighLoad оптимизация Системный администратор Программист Бесплатно (free)

Каждый вечер в час закрытия смен 200 касс розничной сети начинали «залипать», и у всех было готовое объяснение: блокировки. Аудит ожиданий в час пика показал: блокировок — ноль. Сессии ждали не друг друга, а свободных потоков: заводские cost threshold for parallelism = 5 и MAXDOP = 0 на 48-ядерном сервере отправляли даже лёгкие запросы разбегаться по всем ядрам, и две трети запросов стояли в очереди за потоками. Разбираем детектив: почему рефлекс «вечером тормозит — значит, блокировки» подменяет диагностику, как читается картина ожиданий, причём тут сосед по инстансу с отчётом на 24 потока и 4,3 часа — и как две динамические настройки без перезапуска сняли проблему в тот же вечер. С чек-листом «блокировки или параллелизм».

28.07.2026    2352    nedomolkov.ivan    4    

9

Администрирование веб-серверов Системный администратор 1С:Предприятие 8 Бесплатно (free)

Альтернатива Fiddler для локальной разработки/отладки/понимания Web-сервисов, чтобы смотреть тело и заголовки запроса/ответа.

02.06.2026    1267    gordey_kachurin    0    

0

Администрирование веб-серверов Системный администратор Программист Россия Абонемент ($m)

Apache HTTP Server на Windows. Установка и настройка вручную — пошаговое руководство.

5 стартмани

27.03.2026    4921    imiron_ru    0    

13

Администрирование веб-серверов Системный администратор 1С 8.3 Россия Абонемент ($m)

Публикация http-сервиса через Apache под Windows, с использованием ssl клиентского сертификата p12. База реализующая обработку запросов GET, POST с получением и передачей JSON

1 стартмани

23.01.2026    2947    ЕСТЬNULL    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 8mironov 27.04.26 06:17 Сейчас в теме
добрый день, может добавить в статью что 1с не видит нетиповое имя службы апач.
помогли советы как это обойти https://forum.infostart.ru/forum9/topic62236/
2. imiron_ru 135 28.04.26 17:33 Сейчас в теме
(1) поправлю скрипт добавлю что бы он спрашивал менять или нет.
Это нужно когда на компьютере несколько апатчей с разными портами и настройками. что бы они не мешали друг другу.

Как от тестирую скрипт выложу. Сегодня завтра
3. imiron_ru 135 28.04.26 17:37 Сейчас в теме
(1) напиши в личку (контакты не сложно найти по нику) пришлю исправленный скрипт если нужно
Для отправки сообщения требуется регистрация/авторизация