Почему после установки платформы 1С 8.3.12 не запускается веб-сервер Apache 2.2 и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении платформы 1С:Предприятие до версий 8.3.11, 8.3.12 и выше многие системные администраторы сталкиваются с неприятной ситуацией: после успешной установки новой технологической платформы и публикации баз перестает запускаться веб-сервер Apache 2.2. При этом служба веб-сервера либо мгновенно аварийно завершает работу, либо «зависает» при попытке старта. Если закомментировать строку загрузки модуля 1С в конфигурационном файле, веб-сервер запускается без проблем.

В этой статье мы подробно разберем, почему возникает этот конфликт, как провести диагностику и какими способами можно вернуть работоспособность веб-сервисов 1С.

Выясняем причину конфликта

Для начала проанализируем, почему стабильно работавший ранее веб-сервер внезапно начинает выдавать ошибку на строку подключения модуля 1С:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.12.1685/bin/wsap22.dll"

Основных причин у этой проблемы три:

  1. Изменение внутренней архитектуры платформы 1С. Начиная с версии 8.3.11, разработчики 1С перешли на новые компиляторы и обновили библиотеки C++ STL. Из-за этого обновленный файл wsap22.dll стал несовместим со старой архитектурой Apache 2.2. При попытке загрузить этот модуль веб-сервер падает с ошибкой нарушения доступа к памяти (Access Violation, код 0xC0000005).
  2. Несоответствие разрядности (битности). Веб-сервер Apache и устанавливаемый модуль расширения веб-сервера 1С должны быть строго одной разрядности. Если у вас установлен 32-битный Apache, а модуль расширения установился 64-битный (или наоборот), Apache физически не сможет инициализировать библиотеку DLL.
  3. Ошибки путей в файле конфигурации. При автоматической публикации баз из Конфигуратора 1С может некорректно прописать пути в файле httpd.conf, перепутав папки C:\Program Files\ и C:\Program Files (x86)\.

---

Шаг 1. Локализация и диагностика проблемы

Прежде чем переходить к активным действиям, давайте убедимся, что проблема действительно кроется в модуле сопряжения 1С. Для этого выполним простую проверку:

  1. Перейдем в каталог установки вашего веб-сервера Apache (обычно это C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\ или аналогичный путь).
  2. Откроем текстовым редактором (например, Блокнотом от имени Администратора) конфигурационный файл httpd.conf.
  3. Найдем строку, содержащую упоминание 1С. Она выглядит примерно так: LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.12.1685/bin/wsap22.dll"
  4. Поставим в самом начале этой строки символ решетки #, чтобы закомментировать ее:
    
    # LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.12.1685/bin/wsap22.dll"
    
  5. Сохраним файл и попробуем запустить службу Apache через утилиту мониторинга или службы Windows.

Если после этого веб-сервер успешно запустился, значит, сама служба Apache исправна, а проблема кроется именно в несовместимости или неправильной настройке библиотеки wsap22.dll от новой платформы.

---

Шаг 2. Проверка разрядности системы и модулей

Очень часто администраторы ошибочно полагают, что раз у них установлена 64-битная операционная система Windows, то и все программы на ней работают в 64-битном режиме. Однако Apache 2.2 крайне часто устанавливался именно как 32-битное (x86) приложение.

Выясним разрядность компонентов:

Правило простое: для 32-битного Apache требуется 32-битный модуль 1С, для 64-битного Apache — 64-битный модуль 1С. Смешивать их нельзя!

Если вам необходимо доустановить нужный модуль расширения веб-сервера, выполните следующие шаги:

  1. Откройте «Панель управления» -> «Программы и компоненты» (Установка и удаление программ).
  2. Найдите в списке установленную платформу 1С:Предприятие нужного релиза и нажмите кнопку «Изменить».
  3. В открывшемся мастере установки выберите пункт «Изменить» и нажмите «Далее».
  4. В дереве компонентов обязательно отметьте пункт «Модуль расширения веб-сервера». Обратите внимание, запускать установку нужно для дистрибутива той разрядности, которая соответствует вашему Apache!
  5. Завершите установку.

---

Способы решения проблемы

Если разрядность проверена, пути прописаны верно, но Apache 2.2 все равно отказывается запускаться с модулем платформы 8.3.12, воспользуемся одним из следующих проверенных решений.

Решение 1. Использование стабильного модуля wsap22.dll от предыдущей платформы (Обходной путь)

Это самый быстрый временный вариант, позволяющий запустить работу пользователей без кардинального изменения инфраструктуры. Суть метода заключается в том, что сам веб-сервер будет использовать для запуска старую, стабильно работающую библиотеку wsap22.dll (например, от версии 8.3.10), но при этом перенаправлять запросы он сможет на базы, работающие под управлением новой платформы 8.3.12.

Разберем по шагам, как это настроить:

  1. Убедитесь, что на сервере установлена старая рабочая платформа (например, 8.3.10.2561). Если вы ее уже удалили, установите ее заново (только модуль расширения веб-сервера нужной разрядности).
  2. Откройте конфигурационный файл Apache httpd.conf.
  3. Найдите строку подключения модуля 1С и принудительно укажите путь к файлу из папки старой платформы: LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.10.2561/bin/wsap22.dll"
  4. Ниже в файле найдите блок публикации вашей базы (он обычно создается автоматически в конце файла). Пример структуры блока:
    
    # Directives for 1C:Enterprise Web Application
    Alias "/MyBase" "C:/inetpub/wwwroot/MyBase/"
    <Directory "C:/inetpub/wwwroot/MyBase/">
        AllowOverride All
        Options None
        Order allow,deny
        Allow from all
        SetHandler 1c-application
        ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyBase/default.vrd"
    </Directory>
    
  5. Обратите внимание на файл default.vrd, путь к которому указан в директиве ManagedApplicationDescriptor. Откройте этот файл XML-редактором или обычным Блокнотом.
  6. Убедитесь, что внутри этого файла прописана верная ссылка на базу данных, а сам веб-клиент или http-сервисы обращаются к актуальной версии платформы. При необходимости в параметрах подключения можно явно указать версию запускаемой платформы.
  7. Сохраните изменения во всех файлах и запустите службу Apache.

Этот «костыль» отлично работает, поскольку протокол обмена между веб-компонентом 1С и сервером приложений внутри ветки 8.3 практически не менялся. Но помните, что это временное решение.

---

Решение 2. Окончательное и рекомендуемое решение — переход на Apache 2.4

Разработчики Apache официально прекратили поддержку ветки 2.2 еще в конце 2017 года. Фирма 1С также прекратила тестирование своих новых релизов на совместимость с этой устаревшей версией веб-сервера. Единственный способ раз и навсегда избавиться от подобных ошибок при будущих обновлениях платформы — это переход на современный и поддерживаемый Apache 2.4.

Выполним переход на новую версию по шагам:

  1. Остановите и удалите старую службу Apache 2.2. Для этого откройте командную строку от имени администратора и выполните команду: httpd.exe -k uninstall Примечание: если команда не найдена, предварительно перейдите в папку bin вашего старого Apache с помощью команды cd.
  2. Скачайте Apache 2.4. Мы рекомендуем скачивать стабильные сборки (например, от VS16 или аналогичные) соответствующей разрядности (лучше всего использовать x64 связку: 64-битная Windows + 64-битный Apache 2.4 + 64-битный модуль расширения 1С).
  3. Распакуйте и установите Apache 2.4. Распакуйте архив в корень диска (например, в C:\Apache24). Установите службу командой: C:\Apache24\bin\httpd.exe -k install
  4. Опубликуйте базу заново. Запустите Конфигуратор 1С нужной вам новой версии (например, 8.3.12.1685) обязательно от имени Администратора. Перейдите в меню Администрирование -> Публикация на веб-сервере. Выберите ваш новый веб-сервер Apache 2.4, укажите путь к его конфигурационному файлу (C:\Apache24\conf\httpd.conf) и нажмите кнопку «Опубликовать».

При публикации Конфигуратор автоматически пропишет в конец файла настроек Apache 2.4 правильный модуль сопряжения новой версии:

LoadModule _1cws_module "C:/Program Files/1cv8/8.3.12.1685/bin/wsap24.dll"

Обратите внимание, что для версии Apache 2.4 используется библиотека wsap24.dll, которая полностью оптимизирована под новую архитектуру платформы 1С и работает абсолютно стабильно, без зависаний и аварийных завершений работы службы.

---

Резюме

Если после обновления платформы до 8.3.12 у вас «упал» Apache 2.2, не паникуйте. Сначала локализуйте проблему, закомментировав модуль 1С в httpd.conf. Если вам нужно срочно запустить работу — пропишите путь к старой библиотеке wsap22.dll от версии 8.3.10. Если же вы хотите настроить систему надежно и на перспективу — выделите время на установку современной связки из Apache 2.4 (x64) и соответствующего модуля расширения веб-сервера 1С.

← На главную