Публикация информационной базы 1С на веб-сервере — типовая задача, с которой сталкиваются системные администраторы и разработчики при организации доступа через веб-клиент или мобильные приложения, а также при настройке HTTP- и Web-сервисов. Однако нередко сразу после публикации веб-сервер Apache перестает запускаться, выдавая синтаксическую ошибку на строку загрузки модуля платформы LoadModule _1cws_module. Разберем детально, почему это происходит и как правильно настроить окружение.
Проанализируем основные факторы, вызывающие ошибку синтаксиса или сбой инициализации модуля wsap*.dll:
wsap22.dll, а для Apache 2.4 — wsap24.dll. Попытка подключить модуль от Apache 2.2 в конфигурацию Apache 2.4 приводит к фатальной ошибке синтаксиса.Order allow,deny и Allow from all. В Apache 2.4 по умолчанию применяется директива Require all granted. Если модуль совместимости mod_access_compat не включен, старый синтаксис вызывает ошибку разбора файла конфигурации.httpd.conf пути должны содержать прямые слеши (/), а пути с пробелами обязательно должны быть заключены в прямые двойные кавычки.Выясним разрядность установленной платформы 1С. Для этого посмотрим путь установки программы:
C:\Program Files (x86)\1cv8\... — 32-разрядная версия платформы (x86).C:\Program Files\1cv8\... — 64-разрядная версия платформы (x64).Важное правило: Разрядность дистрибутива Apache должна строго совпадать с разрядностью установленной платформы 1С, модуль которой подключается к веб-серверу.
Рассмотрим порядок установки актуальной версии веб-сервера Apache 2.4 под Windows:
C:\Apache24.
cd /d C:\Apache24\bin
httpd.exe -k install
Для управления службой можно использовать следующие команды:
httpd.exe -k start
httpd.exe -k restart
httpd.exe -k stop
Выполнить публикацию можно автоматически через Конфигуратор 1С (меню Администрирование — Публикация на веб-сервере...), обязательно запустив Конфигуратор от имени администратора. Либо разберем, как прописать настройки вручную в конце файла httpd.conf.
Для 64-разрядной версии Apache 2.4 и 64-разрядной платформы 1С конфигурация выглядит следующим образом:
# Подключение модуля 1С для Apache 2.4
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.10.2168/bin/wsap24.dll"
# Описание публикации информационной базы
Alias "/KPS83" "C:/WWW/KPS83/"
<Directory "C:/WWW/KPS83/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/WWW/KPS83/default.vrd"
</Directory>
Чтобы быстро найти строку с ошибкой и не гадать о причинах сбоя запуска службы, выполним проверку синтаксиса встроенными средствами Apache. Для этого выполним в командной строке команду:
C:\Apache24\bin\httpd.exe -t
Если в файле конфигурации есть ошибки, утилита укажет точный номер строки и текст проблемы (например, неверная директива или невозможность загрузить указанную dll). Если всё настроено корректно, консоль вернет сообщение Syntax OK.
Проанализируем дополнительные важные нюансы, которые необходимо учитывать при публикации:
SYSTEM или Local Service) должна иметь права на чтение и выполнение к каталогу bin платформы 1С, права на чтение каталога с файлом default.vrd, а в случае файловой базы — полные права (чтение и запись) к папке с базой данных 1Cv8.1CD.LoadModule содержит жестко прописанный путь к конкретному релизу платформы 1С. При обновлении технологической платформы и удалении старого релиза необходимо повторно опубликовать базу через Конфигуратор или вручную скорректировать путь к wsap24.dll в файле httpd.conf, иначе веб-сервер не сможет запуститься.