Установка apache 2.4 для 1с предприятие 8.3. Алексей алексеев добро пожаловать в мой уютненький бложек

Отправить эту статью на мою почту

Всем известно, что веб-сервер Apache гораздо проще и легче, чем тот же веб-сервер IIS, и к тому же бесплатный. Сегодня я расскажу как можно просто опубликовать конфигурацию 1С на веб-сервере Apache, для доступа к 1С через веб-браузер или для доступа к веб-сервисам 1С. К тому же, именно 1С программистам я советую тестировать веб-сервисы и управляемые формы 1С (веб-интерфейс) именно через север Apache, т.к. будет меньше проблем с отладкой приложений, точки останова будут без проблем срабатывать в конфигураторе 1С.

Выполним несколько простых шагов:

1. Скачаем и установить сервер Apache. Сервер Apache стабильной версии 2.2, которая без проблем работает с 1С, можно скачать .

2. Замените файл конфигурации сервера Apache "httpd.conf" , обычно конфигурационный файл находится по этому пути - "C:\Apache24\conf", если вы устанавливали Apache в корень диска "С". Только после замены проверьте каждую строку в файле, чтобы все пути совпадали с реальными.

3. В итоге ваш веб-сервер Apache должен заработать примерно так:

4. Открываем конфигуратор нужной базы 1С (обязательно от имени администратора ), которую планируем опубликовать на веб-сервере Apache, например, я для теста опубликую демо-версию типовой конфигурации 1с торговля 8 ред. 11.1:

5. В конфигураторе 1С кликаем по главному меню Администрирование - Публикация на веб-сервере:

Здесь выбираете веб-сервер Apache 2.2, задаете имя базы (любое, например DemoTrd), в поле "Каталог" указываете путь к Вашему серверу Apache, где хранятся веб-документы, если сервер устанавливали в корень диска "С", то путь будет такой - "C:\Apache24\htdocs\". Нажимает кнопку Опубликовать. Дополнительно, 1С Вас попросит перезапустить службу сервера Apacge, согласитесь. В итоге публикация будет успешно выполнена:

Если вы 1с специалист, и вам необходимо отлаживать конфигурацию открытую через веб-интерфес или через веб-сервис, то дополнительно в конфигураторе в главном меню перейдите по кнопке Отладка - Подключение... и по кнопке "Автоматическое подключение..." установите флаги, как показано на рисунке ниже:

Также перейдите в главном меню в "Сервис" - "Параметры", и установите там флаги "Устанавливать режим разрешения отладки" и "Начинать отладку при запуске":

Также обязательно включите в файл настройки публикации 1С (C:\Apache24\htdocs\default.vrd) специальную строку - "", в моем случае файл "default.vrd" будет

*Внимание, если у вас нет выделенного сервера для 1С, а ваш сайт "крутится" на обычном хостинге (без выделенного сервера), то настроить web-клиент данным способом не получится. В этой статье рассмотрен случай когда платформа 1С установлена на выделенном сервере, на нем же "крутится" сайт. В ближайшее время будет написана ещё одна статья рассказывающая о способах настройки web-клиента в условиях отличных от описанных.

Настройка на стороне 1С: Предприятие:

  1. Заходим в конфигуратор нужной нам конфигурации 1С 8.2
  2. Администрирование - Публикация на веб-сервере
  • Имя - Это та строка, которую вы будете писать в адресной строке после имени сайта (В нашем случае "sb" -> )
  • Веб-сервер - этот параметр определяет сервер (В нашем случае Apache 2.2)
  • Каталог - Путь до папки в корневой директории сайта для размещения конфигурационного файла 1С
  • Ставим галочку "публиковать тонкий клиент и веб-клиент"
  • Нажимаем "Опубликовать"

Настройка на стороне Apache:

Открываем httpd.conf и видим, что 1С внесла в него изменения. Изменений не много, вот они:

LoadModule _1cws_module "C:/Program Files/1cv82/8.2.13.205/bin/wsap22.dll" # 1c publication Alias "/sb" "C:/Apache2.2/htdocs/sb/" AllowOverride None Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "C:/Apache2.2/htdocs/sb/default.vrd"

В принципе здесь все правильно, но работать НЕ БУДЕТ!!! Для того что бы все работало, необходимо исправить код сгенерированный 1С в соответствии с представленным ниже:

LoadModule _1cws_module "C:\Program Files\1cv82\8.2.13.205\bin\wsap22.dll" # 1c publication AllowOverride None Order allow,deny Allow from all SetHandler 1c-application

После внесения всех изменений перезагружаем apache и радуемся жизни!!!

Примечание:

Все работы проводились с использованием Windows Server 2008 R2 x64, Apache 2.2.17, 1С:Предприятие 8.2 (8.2.13.205).

Значение директивы _1cws_module зависит от версии вашей ОС и папки установки 1С:Предприятие

Проверить работу можно по адресу http://сайт/sb

При дальнейшем изучении проблемы была выявлена работоспособность представленного ниже кода, его рекомендуется использовать только если основной код выдает ошибку:

# 1c publication Alias "/sb" "C:\Apache2.2\htdocs\sb" AllowOverride None Options +ExecCGI Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "C:\Apache2.2\htdocs\sb\default.vrd"

Использовании директивы +ExecCGI намекает нам на то, что мы, все таки, работаем с 1С в режиме CGI. Если на вашем сервере не настроен CGI, то лучше настройте!!!

Недавно я настраивал веб-сервер Apache в связке с 1С. Причём веб-сервер находился на отдельном Linux хосте внутри Docker контейнера. Поделюсь своим опытом и дам пошаговую инструкцию.

Эта статья написана в апреле 2018 года и проверена на версии платформы 1С 8.3.11.3034. Далее рассматриваю подключение к информационной базе 1С в серверном варианте, не в файловом.

Почему именно Apache, именно под Linux и именно в Docker? Оставлю этот вопрос за рамками данной статьи.

Про Apache и про Linux слышали, наверное, все. А вот про Docker, который сильно набирает популярность последнее время, поделюсь кратким руководством на русском для общего понимания: http://guides.hexlet.io/docker/

Взаимодействие Apache и сервера 1С

В двух словах напомню схему взаимодействия веб-сервера Apache и сервера 1С, которая отлично описана в документации к 1С и миллионе статей, аналогичных этой.

Мы устанавливаем веб-сервер Apache и добавляем в его настройки (в файл httpd.conf ) специальный модуль wsap24.so . Этот модуль разработан компанией 1С и он доступен в дистрибутиве сервера 1С под Linux.

Далее всё в том же httpd.conf мы даём указания веб-серверу, что все запросы начинающиеся с определённого пути (например /BuhBase) нужно обрабатывать с помощью специального обработчика 1c-application , реализованного в модуле wsap24.so.

Соответственно, когда на веб-сервер Apache приходит входящий HTTP запрос удовлетворяющий заданному пути, например, http:///BuhBase/, в дело вступает обработчик 1c-application . Оно в свою очередь заглядывает в некий файл.vrd, внутри должны быть настройки подключения к 1С.

Обычно vrd файл генерируется в процессе выполнения процедуры «публикации на веб сервере» из конфигуратора или с помощью консольной утилиты webinst . В данном случае конфигуратор нам не поможет, ведь мы планируем запускать веб-сервер Apache совсем на другом хосте, нежели сервер 1С, да ещё и внутри Docker контейнера. Консольную утилиту webinst тоже трогать не будем, опишем файл default.vrd вручную, благо там нужно всего несколько строк в минимальном варианте, нет смысла заморачиваться с запуском чего-бы то ни было дополнительного.

Итак, если default.vrd файл есть и в нём присутствуют верные настройки подключения к серверу 1С, то модуль запущенный внутри Apache подключается по TCP к серверу 1С.

При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP.

Соберём всю конфигурацию по шагам

Шаг 1.

Устанавливаем Docker на локальную машину разработчика (для удобства проверки и отладки) и на целевую Linux машину, где мы собственно и хотим запустить веб-сервер.

Docker работает и на Linux, и на macOS и на Windows. Скорее всего, на машине разработчика (на вашей машине) стоит Windows. Я лично не проверял описанные ниже шаги под Windows, теоретически всё должно сработать, но что-то пойдёт не так, можно не тратить силы и нервы и сделать всё непосредственно на Linux сервере или в локальной виртуальной машине (например, с помощью VirtualBox).

При установке на Linux не забудем про этот важный шаг, который описан на отдельной странице в документации: https://docs.docker.com/install/linux/linux-postinstall/

Шаг 2.

Создадим директорию для нашего проекта и скачаем в неё дистрибутив 1С Сервер для Linux: https://releases.1c.ru -> Технологическая платформа 8.3 -> Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем

Получим файл deb64.tar.gz , оставляем его пока как есть.

Шаг 3.

Создадим файл с настройками подключения к 1С: default.vrd

Я привожу пример минимального vrd файла в котором по умолчанию опубликованы все веб-сервисы, все http сервисы и стандартный REST интерфейс (OData).

Обратите внимание на строку подключения, замените имя сервера 1С (Serv1C) и имя информационной базы (BuhBase) на свои.

Если вы ранее уже публиковали свою базу на веб-сервере (не важно на каком: IIS или Apache, Windows или Linux, с помощью конфигуратор или с помощью webinst), у вас точно должен быть.vrd файл, поищите в публичных директориях веб-сервера и используйте его.

Шаг 4.

Возьмём стандартный конфиг от Apache (httpd.conf) и добавим к нему несколько строк в конец (полный пример: https://github.com/pqr/docker-apache-1c-example/blob/master/httpd.conf)

LoadModule _1cws_module /opt/1C/v8.3/x86_64/wsap24.so # 1c publication Alias "/BuhBase" "/usr/local/apache2/htdocs/BuhBase/" AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/usr/local/apache2/htdocs/BuhBase/default.vrd"

Таким образом мы указываем веб-северу, что запросы по пути /BuhBase нужно обслуживать с помощью обработчика (SetHandler) 1c-application .

Тут же указывается и путь к default.vrd . На данном этапе всех этих путей пока нет (и не будет, они будут внутри Docker контейнера).

Шаг 4.

Создадим файл с именем Dockerfile (без расширения) со следующим содержанием:

FROM httpd:2.4 # Данный образ базируется на стандартном образе Debian+Apache 2.4: https://store.docker.com/images/httpd # Копируем дистрибутив в директорию dist COPY deb64.tar.gz /dist/deb64.tar.gz # Разархивируем дистрибутив RUN tar -xzf /dist/deb64.tar.gz -C /dist \ # и устанавливаем пакеты 1С в систему внутри контейнера && dpkg -i /dist/*.deb \ # и тут же удаляем исходные deb файлы дистрибутива, которые нам уже не нужны && rm /dist/*.deb # Копируем внутрь контейнера заранее подготовленный конфиг от Apache COPY httpd.conf /usr/local/apache2/conf/httpd.conf # Копируем внутрь контейнера заранее подготовленный конфиг с настройками подключения к серверу 1С COPY default.vrd /usr/local/apache2/htdocs/BuhBase/default.vrd

Шаг 5.

Собираем образ командой:

Docker build -t my-apache-1c .

Опция -t my-apache-1c присваивает собранному образу имя, чтобы в дальнейшем его было удобнее запуcкать. Если не указать -t , то запускать придётся по сгенерированному уникальному ID образа, что не очень удобно.

Шаг 6.

Запускаем контейнер из только что созданного образа командой:

Docker run --add-host Serv1C:192.168.1.15 --publish 80:80 my-apache-1c

Разберём эту строку по частям:

--add-host Serv1C:192.168.1.15 - здесь мы явно указали докеру, что за именем сервера Serv1C скрывается IP адрес 192.168.1.15 (подставьте свои значения). Имя сервера Serv1C мы использовали выше в default.vrd. Этот эквивалентно тому, как если бы мы прописали эту связь в знаменитый hosts файл. Но внутри контейнера нельзя поправить hosts файл, нужно действовать через параметр командной строки --add-host.

А почему бы сразу не указать IP адрес в default.vrd? Я пробовал, но при проверке в браузере платформа 1С выдавала ошибку и, честно говоря, я не разобрался в проблеме. При подключении по имени хоста (Serv1C) проблем не было.

--publish 80:80 - сообщаем докеру, запросы к хост-машине на порт 80 нужно перенаправлять в контейнер на порт 80 (внутри контейнера слушает Apache). Иногда на хост-машине порт 80 может быть уже занят, например, на этом же Linux сервере запущен какой-то сайт или на машине разработчика стоит локальный веб-сервер, тогда делаем так: --publish <любой свободный порт на хост-машине>:80 ,например: --publish 8000:80

Последним параметром идёт имя образа (my-apache-1c) на основе которого запускать контейнер. Образ с таким именем мы уже создали на предыдущем шаге.

После запуска этой команды в окне терминала появятся логи процесса Apache. Терминал не закрываем. Если закрыть, контейнер будет остановлен.

Шаг 7.

Проверяем.

Сначала проверяем Apache в целом: http://localhost - должны увидеть сообщение «It Works!»

Почему localhost? Мы сейчас находимся на своей собственной машине (на компьютере разработчика) где запустили Docker контейнер, соответственно для нас он запущен локально.

Если все эксперименты проводятся сразу на Linux сервере, то пробовать нужно, соответственно, по адресу Linux сервера, например, http://192.168.1.10 или http://linux-host

Если при запуске контейнера был указан какой-то особый порт для хост-машины, то проверять нужно на нём, например, http://localhost:8000

Проверим стандартный REST интерфейс (OData): http://localhost/BuhBase/odata/standard.odata/

Попробуем какой-нибудь веб-сервис (если в конфигурации такие есть): http://localhost/BuhBase/ws/MyWebService?wsdl

Всё должно отработать!

Теперь можно останавливать контейнер: Ctrl+C

Шаг 8.

Мы только что развернули Apache с модулем 1С в Docker контейнере на локальной машине (на машине разработчика). На деле это всё должно крутиться где-то на специально отведённом Linux сервере в виде демона.

Удобнее всего запускать контейнер на сервере с помощью утилиты docker-compose . Но для начала протестируем этот docker-compose опять же на локальной машине.

Всё в той же директории проекта (где у нас уже есть Dockerfile, httpd.conf, и др.) создаём файл docker-compose.yml :

Version: "3.4" services: apache-1c: build: . restart: always ports: - 80:80 extra_hosts: - "Serv1C:192.168.1.15"

По сути здесь всё те же параметры, которые мы передавали в команду docker run.

Отличий три:

  1. Мы больше не придумываем и не указываем имя для нашего образа типа (my-apache-1c), вместо этого используем параметр build: . , т.е. docker-compose будет собирать образ на основе текущей директории (помните про контекст?) и тут же запускать контейнер на основе собранного образа
  2. restart: always - если по каким-то причинам Apache упадёт или весь сервер перезагрузится, то Docker автоматически перезапустит контейнер
  3. extra_hosts - это тоже самое, что и --add-host в параметрах команды docker run. Да, есть некая неконсистентность.

И запускаем контейнер с помощью новой для нас команды:

Docker-compose up -d

Контейнер должен запуститься и уйти в фоновый режим (флаг -d ). Проверяем все адреса в браузере как на предыдущем шаге.

Останавливаем контейнер (эту команду нужно выполнять в терминале, находясь в директории проекта):

Docker-compose down

Шаг 9.

docker system prune

Шаг 10.

Важная часть любого проекта - это документация! Обязательно напишем README.md , например, такой: https://github.com/pqr/docker-apache-1c-example/blob/master/README.md

Поместим все файлы, кроме deb64.tar.gz, под систему контроля версий git , отправим в корпоративный репозиторий, чтобы не потерялось.

Шаг 11.

Копируем получившуюся директорию проекта на Linux сервер, заходим туда по ssh и, находясь в целевой директории, выполняем команду docker-compose up -d , проверяем в браузере.

Всё готово и работает на Linux сервере!

Что с обновлениями платформы 1С?

Качаем новый дистрибутив deb64.tar.gz в директорию проекта.

Если был переход с версии 8.3 на версию 8.4, то внутри httpd.conf нужно поправить путь к wsap24.so.

А если несколько информационных баз?

Вариант А.

Значит нам понадобится подготовить несколько.vrd файлов, добавить инструкции по их копированию в Dockerfile и описать пути для веб-сервера в httpd.conf: на каждую базу свой путь, своя директория, свой.vrd файл.

Закидываем изменённый Dockerfile, httpd.conf и новые vrd файлы на сервер, останавливаем контейнер и запускаем заново с флагом --build:

Docker-compose down && docker-compose up -d --build

Вариант Б.

На каждую информационную базу можно поднять свой отдельный контейнер. Это значит что директорию проекта нужно будет размножить по числу баз, внутри каждой сделать свои настройки в.vrd файле. Но при таком подходе не получится все контейнеры запустить одновременно на одному порту, придётся в каждом docker-compose.yml прописать свои порты, например, 8001:80 для первой базы, 8002:80 для второй базы и т.д.

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

Нужно поменять настройки подключения к 1С серверу в default.vrd?

Меняем.vrd, и перезапускаем Docker контейнер с пересборкой образа: docker-compose down && docker-compose up -d --build

Что осталось за кадром?

  • В этой статье не описано как быть с файловыми базами. Черновой пример настроек привёл в комментариях под статьёй, но на деле его не проверял.
  • После переноса файлов проекта с локальной машины на сервер всё может не заработать. Например, на сервере может быть закрыт порт 80 - надо проверять правила firewall, iptables и т.п. Могут быть и другие причины - как это всё отлаживать и куда смотреть (где логи?) остаётся за рамками статьи
  • Если этот веб-сервер должен смотреть в интернет то нам обязательно нужен SSL сертификат для https соединения. Про то как настраивать https в Apache написано много статей. При использовании Apache внутри Docker по большому счёту всё настраивается точно также. Либо можно поставить reverse proxy с терминацией SSL, например, Træfik или Nginx. Вот этот Docker образ ещё и сертификаты от Let"s Encrypt автоматически установит: https://hub.docker.com/r/umputun/nginx-le/
  • В качестве базового образа мы использовали официальный httpd на базе Debian. Можно попробовать поиграться с более лёгким образом на базе Alpine.

Исходный код

Все файлы конфигурации описанные в этой статье можно найти в git репозитории: https://github.com/pqr/docker-apache-1c-example/ - принимаются Pull Requests.

Есть вопросы? Напишите мне, с удовольствием дополню статью, если что-то не понятно, есть пробелы в рассуждениях или какие-то шаги в вашем случае не сработали - попробуем разобраться вместе и дополним материал.

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

Основные требования

Минимальные системные требования к серверной части архитектуры могут значительно различаться и сильно зависят от:

  1. Задач, решаемых программой;
  2. Интенсивности документооборота;
  3. Количества единовременно подключенных пользователей;
  4. Размера и количества опубликованных и прописанных баз данных.

Однако без двух вещей при публикации 1С на веб-сервере обойтись просто невозможно:

  • Развернутого в системе веб-сервера;
  • Установленного и запущенного модуля расширения, поставляемого фирмой 1С.

Веб-сервер

В качестве этого элемента нашей структуры может выступать как Internet Information Server (IIS), поставляемый в составе операционных систем от фирмы Microsoft, так и Apache сервер. Конечно, есть и платные аналоги этих решений, но про них мы разговор вести не будем.

Дополнительным плюсом продуктов Apache является возможность их запуска из Linux подобных операционных систем.

Мы рассмотрим вариант с IIS, т.к. он не требует поисков и установки продуктов сторонних производителей.

Модули расширения веб-сервера

Инсталляцию этих модулей можно осуществить, запустив файл поставки платформы. Дойдя до окна, внешний вид которого показан на Рис.1, необходимо активировать установку соответствующего компонента.

Естественно, помимо расширений на компьютере должна быть инсталлирована и сама платформа 1С Предприятие, в противном случае у нас не будет доступа к Конфигуратору, через который выполняется основная часть публикации.

Определившись с инструментарием, перейдем к настройке.

Установка и запуск Web-сервера

Для того, чтобы запустить IIS на компьютере с установленной Windows, необходимо произвести следующую последовательность действий (на примере Windows 7):


Рис.3

Удостовериться в том, что веб-сервер заработал, можно забив в адресной строке любого браузера строку вида «http://localhost» и получив картинку, как на Рис.4.

Рис.4


Рис.6.

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

Выбрав конкретную, только что опубликованную базу в списке, необходимо активировать утилиту «Сопоставление обработчиков» (Рис.7).
Рис.7

В нашем случае нам понадобится установить соответствие между ISAPI-dll и исполняемым файлом wsisapi.dll, находящимся в папке BIN, установленной версии платформы.

В принципе, на этом основную часть работы с сервером можно считать завершенной, переходим непосредственно к публикации базы.

Публикация базы на сервер

Настройка прав пользователей

Получив вышеуказанное окно, мы переходим к настройке правил доступа для пользователей.

Нам необходимо разрешить полный доступ пользователю IIS_USERS:

  • К папке «C:\inetpub\wwwroot\Имя публикации», где хранится ресурс;
  • К папке с используемой версией программы, где хранится библиотека wsisapi.dll;
  • К месту, где хранится база.

Выполнив вышеперечисленные действия, мы можем проверить работоспособность нашей публикации, забив в окне браузера строку вида «localhoct/Имя публикации» и обнаружив там форму идентификации пользователя.

В этой статье будет рассказано, как быстро и просто установить 64-битный веб-сервер Apache 2.4.25, настроить его, и выполнить публикацию веб-сервиса с помощью 1С-Предприятия 8.3.

С версии 1С-Предприятие 8.3.8 мы получили возможность работать с сервером Apache 2.4. Учитывая, что поддержка Apache 2.2 заканчивается в июле 2017, вопрос вполне актуальный.

Перед началом установки убеждаемся в следующем:

Итак, если начальные условия у нас выполнены, то порядок действий будет следующим:

  1. Скачиваем и устанавливаем VC++ 15 Runtime по ссылке . Выбираем файл нужный язык и скачиваем файл «vc_redist.x64.exe». Устанавливаем его.
  2. Скачиваем последний актуальный дистрибутив с сайта Apache Haus , на момент написания статьи это 2.4.25 для версии x64. Дистрибутив содержит все необходимые моды для работы по SSL протоколу (библиотека OpenSSL), что для нас большой плюс.
  3. Распаковываем архив, в нем содержится каталог «Apache24», копируем этот каталог в место, где планируется разместить наш веб-сервер.
  4. Находим файл «Apache24/conf/httpd.conf » и редактируем его.
    1. Если в пункте 3 мы копировали в корневой каталог диска, то этот пункт пропускаем, иначе находим строку «Define SRVROOT "/Apache24" » и указываем там полный путь к папке сервера.
    2. Находим и редактируем строку «ServerAdmin [email protected] ».
    3. Находим и редактируем строку «ServerName localhost:80 ».
    4. Сохраняем файл.
  5. Проверяем список служб Windows на предмет наличия службы веб-публикаций (это наш стандартный IIS). На клиентских версиях Windows она скорее всего отсутствует, а на серверных по умолчанию существует. Проверяем, чтобы эта служба была отключена, иначе при попытке запуска Apache мы получим ошибку «make_sock: could not bind to address 0.0.0.0:80 ».
  6. Запускаем командную строку (cmd ) и переходим в каталог «Apache24/bin ». Выполняем тестовый запуск сервера путем отправки команды: httpd
  7. Если работает служба «Брандмауэр Windows», то мы получим сообщение о сетевой активности и запрос о разрешении работы данного приложения. Разрешаем.
  8. Если при установке и настройке не было ошибок, мы не увидим никаких сообщений, текстовый курсор будет мигать в режиме работы приложения, без возврата к стандартному приглашению командного процессора. В этот момент мы проверяем работоспособность путем ввода в адресной строке браузера адреса: «http://localhost». В результате нам должна отобразиться стандартная страница сборки Apache от «Apache Haus».
  9. Прерываем выполнение сервера путем нажатия CTRL+C и затем выполняем установку в качестве службы путем выполнения команды «httpd -k install ». Проверяем и убеждаемся в появлении новой службы в списке. Первая часть марлезонского балета прошла успешно – сам веб-сервер успешно установлен, настроен и работает.
  10. Для тестирования предлагаю использовать проверочную базу данных 8.3, которую можно скачать по ссылке . Разворачиваем как клиент-серверную, далее заходим в конфигуратор 1С-Предприятия под пользователем «Admin» без пароля и выбираем меню «Администрирование – Публикация на веб-сервисе…». Будет открыт диалог публикации, в котором в поле веб-сервиса в списке выбора доступен Apache 2.4. Выбираем его, отмечаем то, что хотим публиковать, нажимаем кнопку «Опубликовать». От рестарта отказываемся. Ниже пример на проверочной базе (можно скачать DT-файл).

  11. Открываем файл конфигурации «Apache24/conf/httpd.conf », ищем строку «LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.9.2170/bin/wsap24.dll" », меняем ее на «LoadModule _1cws_module "C:/Program Files/1cv8/8.3.9.2170/bin/wsap24.dll" ». Данное действие приходится выполнять потому, что, по умолчанию 1С в конфигураторе всегда проставляет ссылку на 32-битную библиотеку, а нам нужна 64-битная. Так что у нас есть выбор – либо каждый раз после правки публикации править файл, либо воспользоваться отдельным механизмом – утилитой «WebInst». Сохраняем файл конфигурации, делаем рестарт службы «Apache 2.4».
  12. Если все сделано правильно, то мы получаем две работоспособные ссылки:
    • «http://localhost/webtest/ » ссылка служит для входа в базу данных через веб-клиент.
    • «http://localhost/webtest/ws/Test?wsdl » - служит для просмотра содержимого wsdl-ссылки веб-сервиса, имеющегося в данной конфигурации.
  13. Вся процедура в результате занимает не дольше получаса.


Понравилась статья? Поделитесь с друзьями!