Почему не открывается база 1С на Apache в Windows 10 и как исправить ошибку 404

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

Публикация информационной базы 1С на веб-сервере Apache — задача, которая кажется тривиальной, но часто преподносит сюрпризы даже опытным специалистам. Ситуация, когда основной адрес сервера http://192.168.1.107 успешно выдает страницу "It works!", а при попытке зайти в базу http://192.168.1.107/ut11 сервер возвращает ошибку 404 Not Found, является классической. Разберем детально, почему это происходит и как настроить окружение так, чтобы все заработало "с полпинка".

Регистрозависимость URI: главная ловушка Windows-пользователей

Проанализируем ключевую особенность работы веб-серверов. Мы привыкли, что в операционной системе Windows файлы UT11, ut11 и Ut11 — это один и тот же объект. Однако веб-сервер Apache работает по стандартам URI (Uniform Resource Identifier), для которых регистр символов имеет критическое значение.

Выясним причину ошибки в нашем случае: если при публикации базы в конфигураторе (или в файле default.vrd) вы указали имя "UT11" заглавными буквами, то Apache будет ожидать запрос именно в таком виде. Обращение по адресу /ut11 (в нижнем регистре) для него будет означать поиск совершенно другого ресурса, который не описан в конфигурационном файле httpd.conf. Как результат — сервер честно сообщает, что ресурс не найден.

Рассмотрим, как правильно прописать псевдоним (Alias) в конфигурационном файле Apache. Обычно 1С добавляет в httpd.conf блок следующего вида:


Alias "/UT11" "C:/inetpub/wwwroot/UT11/"
<Directory "C:/inetpub/wwwroot/UT11/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/inetpub/wwwroot/UT11/default.vrd"
</Directory>

Важный момент: если в строке Alias "/UT11" указан верхний регистр, в адресной строке браузера необходимо вводить именно его. Чтобы избежать подобных проблем в будущем, рекомендуем всегда использовать нижний регистр при именовании публикаций.

Проверка разрядности платформы и Apache

Если исправление регистра не помогло, проанализируем следующий важный аспект — соответствие разрядности (32-бит или 64-бит). Это одна из самых частых технических причин, по которым расширение веб-сервера 1С отказывается инициализироваться.

  1. 64-битный Apache требует только 64-битную библиотеку расширения 1С (wsap24.dll). Она обычно находится по пути C:/Program Files/1cv8/номер_версии/bin/.
  2. 32-битный Apache (x86) требует 32-битную библиотеку. Путь к ней: C:/Program Files (x86)/1cv8/номер_версии/bin/.

Посмотрим на пример строки подключения модуля в httpd.conf:

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

Если вы укажете путь к 32-битной библиотеке в 64-битном Apache, служба веб-сервера либо не запустится, либо будет выдавать ошибку 500 при попытке обращения к любому ресурсу 1С. Всегда проверяйте соответствие установленных дистрибутивов.

Различия в синтаксисе Apache 2.2 и 2.4

Разберем ситуацию, когда используется современная версия Apache 2.4, а настройки копируются из старых мануалов для версии 2.2. В версии 2.4 радикально изменился механизм управления доступом.

В старой версии 2.2 мы писали:

Order allow,deny
Allow from all

В новой версии 2.4 эти директивы заменены на одну:

Require all granted

Если оставить старый синтаксис в Apache 2.4, сервер может интерпретировать это как ошибку конфигурации или ограничить доступ, возвращая 403 Forbidden. Всегда проверяйте версию установленного Apache командой httpd -v в командной строке.

Конфликт с IIS (World Wide Web Publishing Service)

Выясним, почему Apache может работать нестабильно на "чистой" Windows 10. В данной ОС часто по умолчанию активирована служба W3SVC (Служба веб-публикаций), которая является частью IIS. Она автоматически занимает 80-й порт.

Чтобы Apache мог беспрепятственно использовать стандартный порт, выполним следующие шаги:

  1. Нажмем Win + R и введем services.msc.
  2. Найдем службу Служба веб-публикаций (или World Wide Web Publishing Service).
  3. Остановим её и установим тип запуска "Отключена".
  4. Перезапустим службу Apache.

Настройка прав доступа к каталогу публикации

Проанализируем права доступа к файлам. Для того чтобы Apache мог отдавать базу пользователям, системная учетная запись, от которой запущен сервис (обычно это SYSTEM или LocalSystem), должна иметь права на чтение файлов в каталоге публикации и в папке bin платформы 1С.

Особое внимание уделим файлу default.vrd. Это дескриптор виртуального ресурса, написанный на языке XML. Рассмотрим его типичное содержимое:


<?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="/ut11"
		ib="Srvr="ServerName";Ref="BaseName";">
	<ws>
		<point name="WebServiceName"
				alias="ws1.1cws"
				enable="true"/>
	</ws>
	<httpServices>
		<point name="ServiceName"
				alias="hs1"
				enable="true"/>
	</httpServices>
</point>

Убедимся, что кодировка этого файла строго UTF-8. Если при редактировании файла вручную вы сохраните его в кодировке Windows-1251, 1С не сможет его прочитать, и при попытке входа вы получите ошибку конфигурации.

Использование логов для диагностики

Если проблема сохраняется, заглянем в "черный ящик" — логи Apache. Они находятся в папке logs внутри каталога установки сервера (файлы error.log и access.log).

Если в access.log вы видите записи со статусом 404, значит, запрос вообще не доходит до модуля 1С — проблема в путях или регистре в httpd.conf. Если же вы видите статус 500, значит, Apache передал запрос модулю wsap24.dll, но тот не смог инициализировать подключение к базе (например, из-за отсутствия лицензии или неверной строки соединения в .vrd).

Для более глубокой отладки на стороне 1С можно создать файл logcfg.xml в каталоге conf платформы. Это позволит увидеть, что именно происходит внутри модуля расширения веб-сервера в момент запроса.

Подводя итог: при публикации 1С на Apache в Windows 10 будьте предельно внимательны к регистру символов в URL, проверяйте соответствие разрядности компонентов и не забывайте отключать конфликтующие службы IIS. Соблюдение этих простых правил позволит вам развернуть веб-доступ быстро и без ошибок.

← На главную