Публикация базы 1С на веб-сервере Apache на сервере Linux

В отличие от других подобных публикаций здесь будет описано как опубликовать базу (располагающуюся на сервере windows) на веб-сервере apache (расположенном на соседнем сервере под linux).


Введение

Если кратко – то в этой статье я попробую рассказать как опубликовать базу 1С на web-сервер апач, расположенном на сервере с Linux (Ubuntu).

Зачем нужна такая схема? По большей части это связано с безопасностью. Если вы скажете системному администратору, что вам нужно «выпустить сервер 1С в интернет», то от нормального специалиста вы получите кучу возражений (ну а от грамотного специалиста – еще и альтернативные пути). Одним из таких путей и является предложенная схема.

В предложенной варианте – «снаружи» будет доступен только сервер на Ubuntu и апач. Таким образом, в случае атаки – пострадает только этот один сервер, заменить который не составит труда (например перенаправив входящие соединения на его резервную копию), а ваша драгоценная 1С останется не тронутой. Не спорю, для серьезных компаний с армией бородатых админов эта схема покажется не серьезной и для них безопасность будет ассоциироваться только с DMZ (желающие могут погуглить), но для средней руки конторы это будет вполне приемлемый вариант. Конечно, от Anonymous это вас не спасет, но обычным «хацкерам»  довольно сильно затруднит задачу.

 

Исходные данные

Для реализации такой схемы нам потребуется сервер А: Ubuntu 12 c Apache2 и сервер В: Windows 2008, MS SQL, платформа 1С 8.3. В моих экспериментах я использовал арендованные виртуальные сервера.

Нюанс: В качестве сервера А выступал Xeon 2600 series, 1 ядро, 512 Мб RAM, 16Гб SSD (250р/мес), в качестве сервера В выступал Xeon 2600 series, 2 ядра 4096 Мб RAM 128 Гб SSD (2800руб/мес). Белые статически IP. Оплата посуточная. Вы можете развернуть подобный сервер, поиграться с ним пару дней, потратив 200р. Время на разворачивание нового сервера – 5 мин,  доступ по RDP (Windows) SSH-клиент (Linux). Здесь указывать, каким именно хостингом пользовался, я не буду (чтобы не сочли за рекламу). Но если спросите в комментариях – отвечу.

Решение задачи

1.     Начнем с настройки сервера А

Подключаемся к серверу. Для подключения можно использовать SSH-клиент  Putty (предупреждаю, работать придется через командную строку).

В моем случае сервер Ubuntu был развернут с предустановленным апачем, поэтому процедуру установки описывать не буду (мануалы есть в гугле).

Единственно что я сделал сразу при подключении (по совету админа) – это выполнил две команды:

apt-get update

apt-get upgrade

Так же установил клиент  (что-то типа коммандера, намного облегчит работу в дальнейшем):

aptget mc

Запуск выполняется просто командой:

mc

Дальше проверяем работу апача:

service apache2 start

service apache2 restart

Нюанс: при разворачивании нового сервера среди предустановленного ПО я указал Apache, MySQL, nginx. Так вот, апач упорно не хотел стартовать, ругаясь на занятый порт. При помощи гугла выяснил что на 80 порту сидел тот самый nginx. Менять порт не хотел, поэтому просто удалил этот виртуальный сервер и за 2 минуты получил новый, уже без nginx.

Проверяем работу апача из-вне, набираем в браузере http://ВашВнешнийИПАдресСервера/

Видим заветное «It works!»

Дальше устанавливаем компоненты 1С на сервер Ubuntu. Вам понадобится платформа для Linux, а точнее архив вида 8.3.5.1119_deb, с двумя файлами внутри 8.3.5.1119_deb.tar.gz и 8.3.5.1119_deb64.tar.gz (в моем случае Ubuntu 64-битная, поэтому я беру второй файл). Где их взять объяснять не буду, а вот как скачать на сервер расскажу. Качаем при помощи команды:

Wget http://www.сайтфайлобменника.com/8.3.5.1119_deb64.tar.gz

8.3.5.1119_deb64.tar.gz – это тоже архив. Распаковать его можно либо командой tar, либо открыть MC, открыть архив как папку, и скопировать из этой папки-архива нужные нам файлы в нужное нам место. А нужны нам следующие файлы:

1c-enterprise83-common_8.3.5-1119_amd64.deb

1c-enterprise83-server_8.3.5-1119_amd64.deb

1c-enterprise83-ws_8.3.5-1119_amd64.deb

Эти файлы можно также открыть в MC и запустить файлы INSTALL. Устанавливать нужно в таком же порядке, как указаны здесь. По сути нам нужен только последний пакет, но гугл и форумы сказали, что для пакета ws рекомендуется пакет server, а для server рекомендуется common. Так что ставим все.

После установки 1С службу агента 1С можно остановить:

service srv1cv83 stop

Нюанс: на самом деле, если не ошибаюсь, для апача нужен всего один файл wsap22.so, который можно найти в самом пакете 1c-enterprise83-ws_8.3.5-1119_amd64.deb, не устанавливая саму 1С. Нужно достать его оттуда, положить в специальную папку (можно даже в папку апача) и указать к нему путь в файле httpd.conf. Однако у меня это не сработало. При старте апача возникала ошибка:

root@vm88265:/etc/apache2# service apache2 restart

apache2: Syntax error on line 214 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/httpd.conf: Cannot load /etc/apache2/wsap22.so into server: nuke83.so: cannot open shared object file: No such file or directory

Action ‘configtest’ failed.

Возможно, было дело в правах на файл, возможно в чем-то еще, а возможно одного такого файла не достаточно. Если у вас получится прикрутить wsap22.so к апачу без установки 1С – расскажите.

 

2.     На время отвлечемся от сервера А и проверим, что сервер В соответствует нашим требованиям.

На сервер В у вас должна быть развернута клиент-серверная тестовая база (почему не файловая – расскажу дальше, хотя и файловая тоже возможна). Также в брандмауэре у вас должны быть открыты порты на входящие подключения (1540,1541,1560-1590).

 

3.     Продолжаем настройку Ubuntu.

В файле host (находится по адресу  /etc/host) мы должны прописать:

ВнутреннийИПАдресСервера1С ИмяСервера1С

10.10.1.12  MainServer1C

 

В корне создайте папку wwwroot (название по желанию), в ней создайте папку TestPub (это виртуальная папка, в которой будет храниться файл default.vrd)

 

Теперь идем по адресу

/opt/1c/v8.3/x86_64/

Нас интересует файл webinst. Можете его запустить – увидите какие параметры командной строки он использует:

root@vm88136:/opt/1C/v8.3/x86_64# ./webinst

 1C:Предприятие 8. Утилита публикации веб-клиента

     Публикация:

     webinst [-publish] websrv -wsdir VirtualDir -dir Dir -connstr connStr [-confPath confPath]

     Публикация на основе существующего vrd файла:

     webinst [-publish] websrv [-wsdir VirtualDir] -descriptor vrdPath -dir Dir [-connstr connStr] [-confPath confPath]

     Удаление публикации:

     webinst -delete websrv -wsdir VirtualDir [-dir Dir] [-connstr connStr] [-confPath confPath]

     Удаление публикации по существующему vrd файлу:

     webinst -delete websrv [-wsdir VirtualDir] -descriptor vrdPath [-dir Dir] [-connstr connStr] [-confPath confPath]

     Ключи:

         -publish: опубликовать, ключ по умолчанию

        -delete: удалить публикацию

        websrv

            -apache2: публикация Веб-клиента для Apache 2.0

            -apache22: публикация Веб-клиента для Apache 2.2

        -wsdir VirtualDir: виртуальный каталог

        -dir Dir: физический каталог, в который будет отображен виртуальный

        -descriptor vrdPath: путь к существующему vrd файлу

        -connstr connStr: строка соединения ИБ

        -confPath confPath: полный путь к конфигурационному файлу

 

Пример строки для публикации базы:

./webinst -apache22 -wsdir test -dir /wwwroot/TestPub -connstr «Srvr=10.7.12.108;Ref=test;» -confPath /etc/apache2/httpd.conf

 

Разберем мой случай:

«./webinst» — запуск на исполнение

«-apache22» — публикуем на апаче

«-wsdir test» — имя, по которому будет доступна ваша база из-вне, в данном случае адрес будет выглядеть http://ВашИПАдрес/test

«-dir /wwwroot/TestPub» — пусть к папке, где будет располагаться файл default.vrd

«-connstr «Srvr=10.7.12.108;Ref=test;» – строка подключения к информационной базе

«-confPath /etc/apache2/httpd.conf» — путь к конфигурационному файлу апача

 

Результатом будет «Publication successful»

Нюанс: бился с этой строкой долго. Судя по всему чувствительна к регистру и еще фиг к чему. Единственно что могу порекомендовать – вводить все параметры внимательно.

Нюанс: чуть ранее я упоминал, что с базами в файлом варианте у вас могут быть проблемы. Суть – вы должны расшарить папку базы для линукса. А это само по себе не простое действие. Да и не безопасное.

 

В результате этого в файле /etc/apache2/httpd.conf (конфигурационный файл апача) будут выполнены следующие изменения:

LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap22.so"



# 1c publication

Alias "/test" "/wwwroot/TestPub/"

<Directory "/wwwroot/TestPub/">

AllowOverride All

Options None

Order allow,deny

Allow from all

SetHandler 1c-application

ManagedApplicationDescriptor "/wwwroot/TestPub/default.vrd"

</Directory>

А также в папке  /wwwroot/TestPub/ мы видим файл default.vrd следующего содержания:

<?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="/test"
ib="Srvr=10.7.12.108;Ref=test;"/>

Перезапускаем апач и пробуем подключиться по адресу:

http://ВашВнешнийИПАдрес/test

 

Для использования веб-сервисов и хттп-сервисов и отладки 1С в файл default.vrd необходимо привести к виду:

<?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="/test"
ib="Srvr=10.7.12.108;Ref=test;">
<debug enable="true"
url="10.7.12.108"/>
<ws pointEnableCommon="false">
<point name="Exchange"
alias="exchange.1cws"
enable="false"/>
<point name="Exchange_2_0_1_6"
alias="exchange_2_0_1_6.1cws"
enable="false"/>
<point name="InterfaceVersion"
alias="InterfaceVersion.1cws"
enable="false"/>
<point name="DataTransfer"
alias="DataTransfer.1cws"
enable="true"/>
</ws>
<httpServices>
<service name="GetString"
rootUrl="main"
enable="true"/>
</httpServices>
</point>

Нюанс: в разделе

<debug enable="true"
url="10.7.12.108"/>

мы указываем, на каком компьютере искать предметы отладки. Так вот. Строка подключения конфигуратора (в котором будет ловить отладку) – должна быть тоже «srvr=10.7.12.108;ref=test;», т.е. подключения конфигуратора к базе должно быть тоже по ип.

Ну вот и все. Уверен у вас получится повторить этот эксперимент. А если нет – то гугл ответит на 90% ваших вопросов. А если и он не поможет – спрашивайте здесь)

59 Comments

  1. python.pm

    Каким хостингом пользовались?

    Хочется сначала на тестовом сервере опробовать.

    Reply
  2. spezc

    Флопс.ру

    Reply
  3. Evil Beaver

    Записал в блокнотик. Спасибо.

    Reply
  4. hazd

    был опыт настройки web сервиса, хотели с планшета 1с-ку запустить, теперь ясно где мы прокололись((

    Reply
  5. ronhard

    Насколько помню nginx это веб сервер, так же как и апач. Так что не удивительно, что он так же занимал 80 порт. За статью спасибо.

    Reply
  6. spezc

    (5) ronhard, так и есть. просто он был в списке предустановленных и я на это не обратил внимание (не знал что это). а так как я хотел именно на апаче, nginx был для меня лишним

    Reply
  7. Romany

    Запустил все по инструкции. Только столкнулся с тем, что имя базы было на русском, еще из двух слов)). Естественно, что ничего сразу не заработало. Решение такое — в месте команды публикации -«-connstr «Srvr=10.7.12.108;Ref=test;» – строка подключения к информационной базе надо написать так. «-connstr «Srvr=10.7.12.108;Ref=’Имя мой базы’;» – строка подключения к информационной базе. Все заработало.

    Reply
  8. spezc

    (7) Romany, спасибо за полезный комментарий)

    Reply
  9. serge_focus

    Спасибо большое за труды!

    Reply
  10. serge_focus

    Всем привет!

    Развернул похожую систему на ubuntu-14.04.1-server-i386.

    1С сервер 8.3.5.1336

    Работает отлично

    Хочу добавить несколько ньюансов

    для теста ставил 1с и «Апач» на одном сервере.

    1- Правельная настройка сетевых имен

    Начнем с файла /etc/hosts, для того чтобы 1с-ка правильно создала свои конфиги из него нужно убрать любое упоминание об IPv6 и правильно задать соотношение IP адреса и имени сервера.

    127.0.0.1 localhost

    192.168.15.3 ubsrv.mydomain.local your-web-server

    # The following lines are desirable for IPv6 capable hosts

    #::1 localhost ip6-localhost ip6-loopback

    #ff02::1 ip6-allnodes

    #ff02::2 ip6-allrouters

    Проверяем содержимое файла /etc/hostname после редактирования : your-web-server

    После этих действий нужно перезагрузить сервер или выполнить:

    /etc/init.d/hostname restart

    И выполнить 2 команды:

    hostname

    hostname -f


    Если всё правильно, система должна выдать одинаковые имена в обоих случаях: your-web-server

    ставим набор «джентельмена»

    пакеты

    apt-get install libt1-5 t1utils imagemagick ttf-mscorefonts-installer

    Дополнительн ищем на просторах нета

    dpkg -i ttf2pt1_3.4.4-1.4_i386.deb

    ставим сервер 1С

    tar zxf 8.3.5.1336_deb.tar.gz

    dpkg -i 1c-enterprise83-common_8.3.5-1336_i386.deb 1c-enterprise83-server_8.3.5-1336_i386.deb 1c-enterprise83-ws_8.3.5-1336_i386.deb



    даунгрейтим Апач до версии 2.2

    Создаем файл /etc/apt/preferences.d/apache22 с содержимым:

    Package: apache*

    Pin: release a=precise

    Pin-Priority: 500


    Создаем файл ubuntu1204.list в папке /etc/apt/sources.list.d/ubuntu1204.list с содержимым:

    deb http://ru.archive.ubuntu.com/ubuntu/ precise main

    Далее выполняем

    apt-get update

    apt-get dist-upgrade

    apt-get install apache2


    Публикуем базу как описано в статье

    /opt/1C/v8.3/i386/webinst -apache22 -wsdir test -dir /mnt/www/TestPub -connstr «Srvr= your-web-server;Ref=WebTest;» -confPath /etc/apache2/httpd.conf



    перезапускаем

    service apache2 restart

    и вуаля -все работает 😉

    Reply
  11. siyayushhijasinxral@mail.ru

    Подскажите пжлникак не пойму. Мы с сис админом настроили связку апач на линуксе — 1С на виндовс. Как по статье.

    Как я понял из статьи ничего публиковать из 1С на виндовс не нужно ибо файл с публикой defauld.vrd лежит на линуксе под ту часть 1С чтомыустанавливали отдельно под линукс. Там мы прописали

    <?xml version=»1.0″ encoding=»UTF-8″?>

    <point xmlns=»http://v8.1c.ru/8.3/virtual-resource-system»

    xmlns:xs=»http://www.w3.org/2001/XMLSchema»

    xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»

    base=»/cat»

    ib=»Srvr=’109.10.10.122:1641′; Ref=’DB_TE’; Usr=’***’; Pwd=’***’;»>

    все 1С-ка по ссылке открывается, профит.

    Теперь в базу что на 1Свиндовс дописал простенький веб-сервис HelloWorld, иду на линукс в наш файлик default.vrd дописываю далее к пред тексту

    <debug enable=»true»

    url=»109.10.10.122:1641″/>

    <ws pointEnableCommon=»false»>

    <point name=»HelloWorld»

    alias=»ws1.1cws»

    enable=»true»/>

    </ws>

    </point>

    все после этого и ссылка 1С не открывается и веб сервис не работает, что я делаю не так ?

    Кстати если из1С-виндовсе нажать на Администрирование — публикация на веб-сервере пишет webсервер не обнаружен

    Reply
  12. spezc

    приведите полносью текст файла врд.

    Кстати если из1С-виндовсе нажать на Администрирование — публикация на веб-сервере пишет webсервер не обнаружен

    все верно, ведь в том окружении где запущен конфигуратор (а именно виндус) — вебсервера нет — он установлен на соседнем сервере на линуксе.

    Reply
  13. spezc

    у вас порядок закрытия тегов нарушен

    <ws

    <point

    </ws>

    </point>
    Reply
  14. siyayushhijasinxral@mail.ru

    Спасибо, но все равно не пашет, пишет

    Error loading [http://109.10.10.122:1641/cat/ws/HelloWorld?wsdl]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected element: TAG_END

    И еще момент нужно ли апач после смены vrd файла рестартить ?

    Reply
  15. spezc

    (14) siyayushhijasinxral@mail.ru,

    да, перезапускать нужно.

    приведите текст файла врд

    Reply
  16. barsuk829

    Доброго времени суток всем! На днях столкнулся со следующей проблемой.

    У меня есть три сервера, на всех установлена Ubuntu 12.04 и соответственно по ним распределены СУБД PostgreSQL 9.3 от 1С, сервер 1С Предприятие 8.3.6 и Web сервер Apache 2.2. Схема похожа на описанную автором.

    Публикую на Apache web сервер информационную базу , ws и hs сервисы конфигурации по описанной методике.

    В результате база через web клиент работает превосходно, но ws и hs сервисы apache не видит!!!

    Что примечательно, при расположении сервера 1С и apache на одном сервере при абсолютно тех же настройках публикации все работает отлично!

    Если возникала похожая проблема, поделитесь решением! Заранее благодарен!

    Reply
  17. GregRusakov

    Есть интересная статья с пошаговой инструкцией по установке 1С 8.3 на Ubuntu.

    Может кому-то пригодится:

    http://документооборот.net/faq/1s-doc-postgre-sql-vps.html

    Reply
  18. oldcopy

    (17) GregRusakov, статья сумбурная и содержит кучу неточностей и недостатков. Видно, что автор плохо знает линукс. Много избыточных команд, а способ понижения версии apache вообще не выдерживает критики — это будет работать до первого обновления. Также есть вопросы по Postgres, сборка от 1С прибита гвоздями к libicu48 и с libicu52 работать не будет. Ну и рекомендации, если не заработало, то снесите все и установите заново — улыбают.

    Reply
  19. starik-2005

    А как интерфейс OData опубликовать?

    Reply
  20. andrey314

    (19) starik-2005,

    Присоединяюсь к вопросу. Хотелось бы узнать тоже.

    Reply
  21. starik-2005

    (20) andrey314, все просто:

    <httpServices>

    <service name=»HSWS»

    rootUrl=»HSWS»

    enable=»true»/>

    </httpServices>

    Дальше хост/база/hs/HSWS/параметр1/параметр2/параметр3?пар1=ххх?пар2=ууу?пар3=zzz…

    Reply
  22. NadyaGri

    (19) starik-2005,

    В файле default.vrd соответствует атрибуту enableStandardOData элемента point.

    укажите enableStandardOData=»true»

    Reply
  23. user635769_setiks

    Доброе время суток!

    Нужна помощь с публикацией базы данных на Windows server R2 2008 + Apache 2.2. 1С сервер крутится на другом серваке вместе с SQL. Поднимали отдельный сервер для публикации.

    Все сделано и запускается, но при аутентификации в окне 1С открытое через браузер появляется ошибка: МодульСеанса(65):Вам не разрешен доступ к программе через веб-сервер (имя сервера) Обратитесь к администратору.

    Буду признателен за помощь.

    Reply
  24. mar82

    (23) так закомментируйте эту строку и все 🙂 это же на уровне кода 1С сообщение

    Reply
  25. user635769_setiks

    Спасибо.

    Reply
  26. MstrSa

    публикую веб сервис, сделал все по инструкции, порт ничем не занят, апачь отвечает, а публикация не работает, ошибка:

    1C:Enterprise 8 application error:

    Ошибка установки соединения

    by reason:

    server_addr=tcp://192.168.1.10:8585 descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=1073 file=./src/DataExchangeTcpClientImpl.cpp

    Строка публикации http://192.168.1.10:8585/ws/web.1cws

    Reply
  27. tarassov

    На сайте «CentOS Wiki» есть аналогичная статья «Публикация базы данных 1С Предприятия на WEB сервере Apache»

    Читал кто-нибудь?

    По-моему там четко и кратко

    Reply
  28. spezc

    (27) дайте ссылку

    Reply
  29. tarassov

    (28)http://centos.name/?page/howto/v8.1c

    но там все-таки о rpm-based, а здесь о семействе debian

    Reply
  30. tarassov

    Спасибо автору, публикация Ильдара мне реально помогла.

    Долго искал у себя ошибку. И смог ее найти только когда стал по пунктам сверять свои настройки с приведенными в статье. Как оказалось, в файле default.vrd, в строке соединения (параметр «ib=…») поставил «:» вместо «;»

    Reply
  31. leov-001

    (26)

    Если порт сервера 1С не стандартный то напиши так ‘Server1Cv83:3541’

    ./webinst -apache24 -wsdir demo -dir /var/www/demo -connstr «Srvr=’Server1Cv83:3541′;Ref=’Demo_Base’;» -confPath /etc/apache2/apache2.conf

    Reply
  32. leov-001

    +(26) И в брендмауэре Виндовс открой соответствующие порты. Например 3540,3541,3560-3591

    Reply
  33. Maxis

    Подскажите, что делать в этом случае:

    apache2: Syntax error on line 238 of /etc/apache2/apache2.conf: API module structure ‘_1cws_module’ in file /opt/1C/v8.3/x86_64/wsapch2.so is garbled — expected signature 41503232 but saw 41503230 — perhaps this is not an Apache module DSO, or was compiled for a different Apache version?

    Action ‘configtest’ failed.

    Apache версии 2.2 — даунгрейдил с 2.4, публикация выполнилась успешно.

    Reply
  34. Maxis

    (33)

    Все, починил.

    Reply
  35. spezc

    (34) с вас 10 стартманей за ложный вызов)

    Reply
  36. Maxis

    (35) Столько нет. Но за публикацию проголосовал.

    Настроил все по инструкции, содержимое файлов проверил — похоже на то, что в публикации.

    Но при попытке открытия страницы 192.168.1.2/<имя_моей_публикации> получаю: Unhandled request!

    При этом 192.168.1.2:8080 открывается.

    Что еще посмотреть, чтобы заработало?

    Reply
  37. oldcopy

    Если у вас веб-сервер работает на 8080, то и базу нужно искать тоже там, а не на 80. Т.е. 192.168.1.2.:8080/<имя публикации>

    Reply
  38. honor

    Можно вопрос в тему: как узнать URL для перехода по нему к веб-сервису 1С, можно с примером, напрмиер вот данные для публикации, БД была опубликована, но что набрать в строке адреса, вот данные: 1СServ admin/admin имя БД 1cTorg?

    Reply
  39. starik-2005
  40. user830427

    (23) Если в настройках программы (Права доступа) стоит «Ограничивать доступ

    через веб сервер», то в карточке пользователя надо указать веб сервер в

    поле «Разрешенные веб серверы».

    Reply
  41. unoc_u34

    Доброго времени суток господа! Поскажите пожалуйста, в какую сторону копать, уже не знаю что делать. Выходить следующая ошибка: Infobase not found.

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

    Reply
  42. unoc_u34
    Reply
  43. spezc

    То что вы видите сообщение «Infobase not found» говорит о том, что до сервера вы достучались, попросили базу с именем «1с», но сервер 1С такую базу у себя в списке баз не нашел. Может быть она у вас по другому называется? Или вы перепутали ИП и на самом деле попадаете на тот сервер 1С где этой базы нет? Как вариант — попробуйте посмотреть лог сервера 1С, какие коннекты к серверу были и какие события.

    Reply
  44. unoc_u34

    (43)Добрый день Ильдар! Во первых спасибо, что ответили. Вы правильно подметили, база она не создана т.е. ее нету. Я конечно извиняюсь, я только только внекаю в 1С и я думал, что 1С будет управлять базой динамически, т.е. манипуляции (CREATE *, INSERT… т.д. и т.п.) будут управляться из прослойки 1С. Одним словом я новичок и если вам не трудно, подскажите пожалуйста, в какую сторону мне копать? Спасибо огромное за наводку. Кстати, хочу подметить, что я сервер поднимал по аналогичной схеме https://infostart.ru/public/303420/ и хочу подчеркнуть, что не было там упомянуто о том, что нужно создать базу для начало.

    Reply
  45. spezc

    (44) вообще к публикации на веб-сервере, особенно в случае когда сервер 1С на win, а веб-сервис на linux на ранних стадиях изучения 1С обычно не приступают)))

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

    Reply
  46. oldcopy

    (44) Непонятно, что вы вообще делаете и что хотите получить.

    База данных СУБД и информационная база 1С — разные сущности.

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

    Веб-сервер — это один из способов доступа к уже существующей информационной базе, аналогичный тонкому или толстому клиенту. Если ИБ не существует — то веб-клиент просто сообщит об этом, создавать новую базу он не умеет.

    И вообще, начинать с публикации базы на веб-сервере не самая лучшая идея для начинающего. Здесь еще хотелось бы кинуть камень в огород авторов такого рода инструкций, которые составляют их так, что складывается впечатление, что веб-сервер является неотъемлемой частью сервера 1С. На самом деле это просто еще один способ доступа к базе и далеко не самый лучший.

    Reply
  47. unoc_u34

    (46)Спасибо за емкий ответ. Я прошу прощения за примитивную формулировку вопроса. Андрей, не подскажите, с чего мне начинать изучать администрирования 1с и что читать? Спасибо за ответ

    Reply
  48. unoc_u34

    (45)Ильдар спасибо, что ответили. Расклад следующий: 2 сервер (центос и дебиан) на центосе установлен субд и сам 1с (ровным счетом так и есть) на втором установлен веб сервер и 1с сервер и в настройках виртуального сервера указан линк на центос —>> ib=»Srvr=111.111.111.111;Ref=1c;»/> (111 адрес сервера центрос). На уровне передачи данных правила для фейрвола прописаны и покеты без проблем бегают в обе стороны. Как Андрей подметил, информационная базу при установке не создается. Я просто не знаю с чего начинать, и в какую сторону копать…

    Reply
  49. oldcopy

    Почитайте материалы на моем сайте, начните с https://interface31.ru/tech_it/2012/01/server-1s-predpriyatie-chast-1—obshie-voprosy.html (материал хоть довольно старый, но принципиально с тех пор ничего не поменялось). Затем можете переходить к практическим реализациям, про это у нас тоже довольно много материалов: https://interface31.ru/tech_it/1s-predprijatie-8x/

    Reply
  50. oldcopy

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

    Еще замечание, с чем связан «зоопарк» применяемых ОС? Хотя и CentOS и Debian — Linuх, приемы администрирования в этих семействах различны, как и используемые системные инструменты. Если вы хотите профессионально работать с Linux — выберите для себя какое-то одно семейство и работайте с ним. В философии UNIX есть один очень хороший принцип: каждая программа должна делать что-то одно, но делать это хорошо.

    Reply
  51. unoc_u34

    (49)Андрей огромное спасибо за сслыки, очень презнателен я вам. Я обязатеьно гляну, найду время и почитаю ОБЯЗАТЕЛЬНО.

    Тут я тему закрою так как, пробему уже решили.

    Reply
  52. aleksandr_lukin

    Позволю себе сделать некоторые уточнения.

    1. mc — Midnight Commander — аналог far manager

    2. Сервер apache, в случае отсутствия, устанавливается командой «apt-get install apache2». Так как зачастую он не предустановлен. Тестил на платформе 8.3.10.2667 и apache2.4 — даунгрейд не потребовался.

    3. Чтобы установить deb-пакет не нужно его распаковывать. Достаточно воспользоваться командой «dpkg -i имя_пакета.deb». А то уж совсем как-то не по-человечески это.

    4. Файл hosts правил, но смысла не уловил, так как в конфигах все равно обращение по ip сделано. А обычно смысл такой, что используется сетевое имя машины, а по файлу hosts происходит сопоставление этого имени с ip.

    5. Ну и для нормальной реализации на продакшене я бы дописал настройку ssl для безопасного подключения к базе.

    Reply
  53. user608357_elpst

    Доброго времени суток.

    Если я правильно понял из статьи, то такая связка работает, если сервер 1С и веб-сервер находятся в одной сети.

    А возможно ли опубликовать базу на удаленном хостинге (есть в аренде хостинг на timeweb.com)?

    Reply
  54. oldcopy

    (54) Если база клиент-серверная — то можно, вам также потребуется VPN между хостингом и локальной сетью. Другой вопрос — как все это будет работать. Веб-сервер — это однопоточный клиент для сервера 1С, т.е. все запросы клиентов ставятся в одну очередь, также следует учесть качество канала между сервером 1С и хостингом. В зависимости от многих условий результат может оказаться различным.

    Хотя у нас есть вполне успешно работающие в тонком клиенте через VPN заказчики. Полет вполне нормальный.

    Но я бы сделал по другому, веб-сервер развернул бы в локальной сети, а на хостинге поставил бы NGINX и проксировал бы через него запросы на Apache.

    Reply
  55. user608357_elpst

    (55) Нам нужно опубликовать для поднятия HTTP-сервисов, поэтому ограничения в один поток не должно повлиять на работу.

    Спасибо за помощь!

    Reply
  56. ZevS

    Блиин помогите. все перелопатил. милион раз. Но так и не получилось все сделать чтобы работало.. Если устанавливаю апач2.2. публикую естессно через /opt/1C/v8.3/i386/webinst -apache22 — то появляется на месте базы голая непонятная рамка с менюшками. А базы нет.

    если же ставлю апач 2.4. и публикую webinst -apache24 — то выдает ошибку о краше wsap24.so

    apache2: Syntax error on line 238 of /etc/apache2/apache2.conf: API module structure ‘_1cws_module’ in file /opt/1C/v8.3/x86_64/wsap24.so is garbled — expected signature 41503232 but saw 41503234 — perhaps this is not an Apache module DSO, or was compiled for a different Apache version?

    Ну что такое. .че за. сколько видео смотрел.. теже команды все четко и у народа базу видно. А у меня после публикации — хер.

    Reply
  57. oldcopy

    (57) Выполните:

    dpkg -l | grep apache2

    apt policy apache2

    результат сюда.

    Reply
  58. oldcopy

    (59) Не вводите людей в заблуждение. apt-get update обновляет список пакетов в репозиториях, а apt-get upgrade обновляет сами пакеты и выполнять их нужно именно последовательно. Подробнее про работу с пакетным менеджером смотрите здесь: https://interface31.ru/tech_it/2019/09/linux-nachinayushhim-chast-5-upravlenie-paketami.html

    Reply
  59. Healer

    (60) Вы правы, это я неправильно понял, а не автор и посоветовавший ему админ 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *