При настройке веб-сервера для работы с 1С:Предприятие специалисты часто сталкиваются с ситуацией, когда процесс публикации в конфигураторе проходит без ошибок, но при попытке открыть базу в браузере пользователь видит сообщение "Not Found. The requested URL was not found on this server". В этой статье мы подробно разберем, почему возникает такая ошибка, развенчаем мифы о конфигурационных файлах и научимся правильно настраивать связку 1С и Apache. В качестве альтернативы стандартным инструментам для удобного управления веб-публикациями можно использовать приложение для публикации баз 1С, помогающее избежать распространенных ошибок.
Рассмотрим распространенное заблуждение: ожидание файла web.config после публикации на Apache. Проанализируем архитектуру веб-серверов. Файл web.config является специфичным для Internet Information Services (IIS). Если вы используете Apache, этот файл никогда не будет создан, и это не является признаком ошибки. Для Apache единственным и достаточным конфигурационным файлом, который создает 1С, является default.vrd. Этот файл содержит описание публикации и параметры подключения к информационной базе.
Выясним основную причину, по которой публикация может оказаться неработоспособной. В диалоговом окне публикации 1С необходимо выбрать конкретную версию веб-сервера. Если у вас установлен Apache 2.4, а в настройках 1С выбрана версия Apache 2.2, публикация завершится формально успешно, но работать не будет. Это связано с тем, что 1С использует разные программные модули (библиотеки .dll) для разных версий сервера.
Проанализируем последствия неправильного выбора: 1С пропишет в конфигурационный файл Apache путь к модулю wsap22.dll, в то время как серверу Apache 2.4 требуется wsap24.dll. В результате сервер не сможет правильно интерпретировать запросы к базе 1С, что приведет к ошибке 404 Not Found. Для автоматизации этого процесса и исключения ошибок ручной настройки конфигурации можно использовать внешнюю обработку для публикации баз 1С на Apache и IIS.
Если автоматическая публикация не дает результата, нам необходимо проверить файл httpd.conf, который находится в папке conf вашего установленного Apache. Разберем по шагам, что именно там должно появиться после успешной публикации:
default.vrd.Пример корректных строк в httpd.conf для Apache 2.4 выглядит следующим образом:
# 1c publication
LoadModule _1cws_module "C:/Program Files/1cv8/8.3.22.1709/bin/wsap24.dll"
Alias "/MyBase" "C:/inetpub/wwwroot/MyBase/"
<Directory "C:/inetpub/wwwroot/MyBase/">
AllowOverride All
Options None
Require all granted
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/MyBase/default.vrd"
</Directory>
Обратите внимание на директиву Require all granted. Рассмотрим синтаксические различия: в версии 2.2 использовались команды Order allow,deny и Allow from all. Если вы ошибочно выбрали 2.2 при публикации, 1С вставит устаревший синтаксис, который Apache 2.4 может проигнорировать или выдать ошибку конфигурации при запуске.
Выясним, достаточно ли у веб-сервера прав для работы. Даже если файл default.vrd физически существует в папке, служба Apache может не иметь прав на его чтение. Посмотрим, как это исправить. Служба Apache чаще всего запускается от имени пользователя SYSTEM или LocalService. Необходимо убедиться, что у этого пользователя есть права "Чтение и выполнение" на каталог, в котором лежит публикация.
Рекомендуется создать отдельный каталог (например, C:\www\base1c) и предоставить группе пользователей "Все" или конкретному пользователю службы полные права на этот каталог на время отладки. Это поможет исключить влияние ограничений файловой системы NTFS.
Проанализируем еще один важный технический нюанс — разрядность. Ошибка Not Found или падение службы Apache часто возникают из-за несовпадения битности (x86 или x64) установленного сервера Apache и модулей расширения веб-сервера 1С.
Смешивание разрядностей приведет к тому, что Apache не сможет загрузить библиотеку wsap24.dll, так как она будет иметь неподдерживаемый формат.
Если Apache настроен верно, но база всё равно не открывается, разберем содержимое файла default.vrd. Это XML-файл, который можно открыть любым текстовым редактором. Посмотрим на ключевой параметр ib (Information Base):
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/MyBase"
ib="Srvr="ServerName";Ref="BaseName";">
<standardOdata enable="true"
publishRoot="standardOdata">
<standardOdata/>
</standardOdata>
</point>
В случае серверной базы убедитесь, что параметры Srvr и Ref указаны верно. Если база файловая, путь в параметре File должен быть доступен пользователю, от имени которого запущен Apache. Помните, что для файловой базы через веб-клиент требуются права доступа к самой папке с базой данных (файл 1Cv8.1CD).
Подводя итог, если вы столкнулись с ошибкой при публикации 1С на Apache, пройдите по следующему списку шагов:
services.msc, чтобы убедиться в отсутствии ошибок запуска.wsap24.dll и default.vrd прописаны без ошибок и файл физически существует по указанным путям.localhost/MyBase).Соблюдение этих правил позволит вам избежать большинства проблем при веб-публикации информационных баз 1С.