Установщик 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
0 5 000 руб. Купить
Скрипт PowerShell + BAT-запускальщик. Английский интерфейс установщика
.zip 13,37Kb
0 4 200 руб. Купить
Скрипт PowerShell + BAT-запускальщик. Русский интерфейс установщика
.zip 15,07Kb
0 4 200 руб. Купить
Standalone EXE без зависимостей
.zip 24,18Kb
0 4 200 руб. Купить

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

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

Оформить подписку и скачать решение со скидкой
Установщик 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 под конкретную задачу вручную — см. отдельную статью:

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

См. также

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

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

5 стартмани

вчера в 16:30    202    imiron_ru    0    

5

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

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

1 стартмани

23.01.2026    1058    ЕСТЬNULL    0    

5

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

Для запуска базы, опубликованной на вебсервере через тонкий клиент (win/linux) с доменной авторизацией. Подходит для запуска тонкого клиента (база web публикация) с устройств не в домене, например для работы внешних пользователей.

1 стартмани

03.01.2026    3498    1    shooshpanius    0    

7

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

Третий тонкий клиент Розница 2.3 (более двух сеансов) зависает сразу при открытии 3-го сеанса (файловая база + IIS + Тонкие клиенты) и виснут все открытые сессии. Быстрое решение на скриншотах ;)

1 стартмани

03.01.2026    1767    vs12345    11    

7

Инструменты администратора БД Администрирование СУБД Администрирование веб-серверов Администрирование 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 1С:Документооборот 1С-КАМИН: Зарплата. Версия 5.0 1С:ТОИР Управление ремонтами и обслуживанием оборудования Платные (руб)

Обработка предназначена для компаний, использующих типовые конфигурации 1С (УТ, УНФ, Розница, ERP и др.), для которых необходим контроль ошибок, для того чтобы избежать поломки.

8540 руб.

23.12.2025    708    0    0    

2

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

Проблема: При переходе с Windows на Linux многие сталкиваются с затруднениями при настройке аутентификации ОС в веб-клиенте 1С через Apache 2.4 (Debian). Решение: Команда Magnit Tech (Центр экспертизы 1С и Сопровождение 1C) разработала готовую инструкцию по настройке веб-клиента 1С на Debian 12 с поддержкой как Windows, так и Linux-серверов. Экономьте время — внедряйте проверенное!

25.07.2025    12578    biryukmikh    74    

30

Администрирование веб-серверов Сервера Нейросети Программист Платные (руб)

Сервер поиска по метаданным и поиска по коду, Сервер экспорта и поиска по документации, Сервер синтаксической проверки кода

17.06.2025    17039    0    Infostart    20    

113

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

Как проксировать запросы извне на localhost при помощи IIS.

15.01.2025    4117    Miroshh    1    

4
Для отправки сообщения требуется регистрация/авторизация