Почему база 1С не публикуется через Apache и возникает ошибка Not Found?

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

При настройке веб-сервера для работы с 1С:Предприятие специалисты часто сталкиваются с ситуацией, когда процесс публикации в конфигураторе проходит без ошибок, но при попытке открыть базу в браузере пользователь видит сообщение "Not Found. The requested URL was not found on this server". В этой статье мы подробно разберем, почему возникает такая ошибка, развенчаем мифы о конфигурационных файлах и научимся правильно настраивать связку 1С и Apache. В качестве альтернативы стандартным инструментам для удобного управления веб-публикациями можно использовать приложение для публикации баз 1С, помогающее избежать распространенных ошибок.

Различие между Apache и IIS: где искать файлы настроек?

Рассмотрим распространенное заблуждение: ожидание файла 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

Если автоматическая публикация не дает результата, нам необходимо проверить файл httpd.conf, который находится в папке conf вашего установленного Apache. Разберем по шагам, что именно там должно появиться после успешной публикации:

  1. Загрузка модуля: В конце файла должна появиться строка, подключающая расширение 1С.
  2. Описание публикации (Alias): Должен быть создан блок, указывающий на путь к файлу 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, так как она будет иметь неподдерживаемый формат.

Анализ файла default.vrd

Если 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=&quot;ServerName&quot;;Ref=&quot;BaseName&quot;;">
    <standardOdata enable="true"
            publishRoot="standardOdata">
        <standardOdata/>
    </standardOdata>
</point>

В случае серверной базы убедитесь, что параметры Srvr и Ref указаны верно. Если база файловая, путь в параметре File должен быть доступен пользователю, от имени которого запущен Apache. Помните, что для файловой базы через веб-клиент требуются права доступа к самой папке с базой данных (файл 1Cv8.1CD).

Заключение и чек-лист для проверки

Подводя итог, если вы столкнулись с ошибкой при публикации 1С на Apache, пройдите по следующему списку шагов:

  1. Проверьте версию: Убедитесь, что версия Apache в системе совпадает с выбранной версией в мастере публикации 1С.
  2. Перезапустите службу: После каждой публикации необходимо перезапускать службу Apache вручную через services.msc, чтобы убедиться в отсутствии ошибок запуска.
  3. Проверьте httpd.conf: Убедитесь, что пути к wsap24.dll и default.vrd прописаны без ошибок и файл физически существует по указанным путям.
  4. Сверьте разрядность: Убедитесь, что и Apache, и компоненты 1С имеют одинаковую разрядность (оба x64 или оба x86).
  5. Контролируйте регистр: Хотя в Windows Apache менее чувствителен к регистру, старайтесь вводить URL базы точно так, как указано в поле "Имя" при публикации (например, localhost/MyBase).

Соблюдение этих правил позволит вам избежать большинства проблем при веб-публикации информационных баз 1С.

← На главную