Apache на Linux и 1C на Windows 2008

1. spezc 783 15.09.14 17:01 Сейчас в теме
Добрый день.

Есть сервер №1 на убунту 12 с апачем, смотрит в инет, имеет внешний статический ИП.
Есть сервер №2 на windows 2008 с 1с, (условно) без выхода в инет, в одной подсети с сервером №1

Вопрос. Каким образом опубликовать базу 1С (с сервера №2) на Apache сервера №1?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
7. drim87 16.09.14 10:08 Сейчас в теме
НУ как всю...
На данный момент платформа 8.3 для линукса делится на 2 части: Клиентская (графическая оболочка) и сервер. В 8.2. только сервер.
Сервер в любом случае ставится. В его состав входят пакеты:
1c-enterprise83-common_8.3.4-496_amd64.deb
1c-enterprise83-common-nls_8.3.4-496_amd64.deb
1c-enterprise83-server_8.3.4-496_amd64.deb
1c-enterprise83-server-nls_8.3.4-496_amd64.deb
1c-enterprise83-ws_8.3.4-496_amd64.deb
1c-enterprise83-ws-nls_8.3.4-496_amd64.deb
Это пример 64 сервера для дебиан систем. Убунту, если что на ядре дебиана работает.

Вот этот пакет -1c-enterprise83-ws_8.3.4-496_amd64.deb как раз и есть компоненты веб сервера 1с.
При его установке у вас в каталоге куда установится платформа появится утилита webinst вот через нее и будете публиковать.

Если у вас все "хорошо" то при публикации у вас все автоматически опубликуется. В конфиг апача добавится публикация 1с базы и необходимые муодули и файлик default.vrd запишется. А вот если версия апача не подойдет, то публикация пройдет а вот апач работать не будет т.к. будет ругаться на модуль wsap22.so, который добавляется в его конфиг при публикации. 1с работает с апачем версий 2.0 и 2.2...2.4. уже не будет работать


Если у вас убунту 12.04 с предустановленым апачем то в теории там может быть и апач 2.2.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. bzmax 15.09.14 17:29 Сейчас в теме
Начнем с того что сайт на апаче у тебя создан или нет?
Если создан и к апачу прикручена библиотека wsap22.so
а директивы сайта настроены на запуск дескриптора 1c-application при входе.

То в папку сайта достаточно записать файл 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="/Точка-входа"
ib="Srvr="Сервер-БД";Ref="Имя-бд-на-сервере";"
enableStandardOData="true"
temp="Путь-к-папке-для-временных-вычислений"
pubdst="Путь-к-дистрибутиву-тонкого-клиента-для-автообновления"
allowexecutescheduledjobs="">
<ws>
<point name="Exchange"
alias="exchange.1cws"
enable="true"/>
<point name="Exchange_2_0_1_6"
alias="exchange_2_0_1_6.1cws"
enable="true"/>
<point name="InterfaceVersion"
alias="InterfaceVersion.1cws"
enable="true"/>
<point name="ManagedApplication_1_0_0_1"
alias="ManagedApplication_1_0_0_1.1cws"
enable="true"/>
<point name="MessageExchange"
alias="messageexchange.1cws"
enable="true"/>
<point name="MessageExchange_2_0_1_6"
alias="messageexchange_2_0_1_6.1cws"
enable="true"/>
<point name="MobileService"
alias="mobile.1cws"
enable="true"/>
<point name="RemoteAdministrationOfExchange"
alias="RemoteAdministrationOfExchange.1cws"
enable="true"/>
<point name="RemoteAdministrationOfExchange_2_0_1_6"
alias="RemoteAdministrationOfExchange_2_0_1_6.1cws"
enable="true"/>
<point name="RemoteAdministrationOfExchange_2_1_6_1"
alias="RemoteAdministrationOfExchange_2_1_6_1.1cws"
enable="true"/>
<point name="RemoteControl"
alias="RemoteControl.1cws"
enable="true"/>
<point name="SiteExchange"
alias="ExchangeWithSites.1cws"
enable="true"/>
</ws>

</point>


Все что в разделе WS - необходимо что бы к базе можно было как к сервису подключаться. И список ws-ссылок зависит от того какие есть в БД (здесь я написал самые распространенные)
5. spezc 783 16.09.14 07:44 Сейчас в теме
(2) bzmax, а что значит "создан сайт"? я развернул убунту с предустановленным апачем на виртуальном сервере. соответственно сразу появилась возможность попасть на "it works" по внешнему ип 185.22.60.206

(4) точно не скажу, но думаю сервер. установку производил сам хостинг виртуального сервера.
База сейчас файловая, но планируется перевод на sql.

платформа 8.3.5.1119.

Как я себе представлял схему. база располагается на сервере №2 на 2008 винде, с сервером приложений, с мс скуль. публикация этой базы на соседнем апаче позволила бы работать пользователям через инет.

в принципе ничего не мешает развернуть апач на виндовском серваке, но по соображениям "безопасности" решил разнести. считаю, что если один сервер на убунту общается с интернетом и на нем будет только апач - то в случае "гипотетической атаки" - виндовский сервер не пострадает.

я правильно понимаю, что я должен накатить на убунту "модули расширения веб-сервера? чтобы апач, имея файлик default.vrd - мог подключаться к 1с?


З.Ы. версия апача 2.2.22
3. bzmax 15.09.14 17:30 Сейчас в теме
От блин! все форматирование сбилось :(
4. drim87 15.09.14 20:39 Сейчас в теме
Уточни пару моментов.
Убунту desktop или server
База файловая или на субд.
И версию платформы на всякий случай. тут если убуту дектопняая а платформа 8.3. то вплне мождно поставить клиентскую часть и публиковать через нее.

На самом деле есть темы и на форуме и публикации на сайте на данную тему. Я на данный момент посоветую проверить версию апача потмоу, что сейчас на убунту с репозиториев скачивается 2.4. а 1с работает с версией до 2.2. и если с репозитория у тебя качается именно 2.4, то придется апач собирать из исходников и публикацию в его конфиг делать ручками и файл публикации 1с default.vrd создавать ручками т.к. собраный из исходников апач 1с никак не хочет видеть и я не знаю как это решить:D
6. spezc 783 16.09.14 08:09 Сейчас в теме
читаю мануалы по линуксу и 1С - получается на убунту нужно накатить всю 1с полностью? нет такого понятия как "отдельная компонента доступа к веб-серверу"?
7. drim87 16.09.14 10:08 Сейчас в теме
НУ как всю...
На данный момент платформа 8.3 для линукса делится на 2 части: Клиентская (графическая оболочка) и сервер. В 8.2. только сервер.
Сервер в любом случае ставится. В его состав входят пакеты:
1c-enterprise83-common_8.3.4-496_amd64.deb
1c-enterprise83-common-nls_8.3.4-496_amd64.deb
1c-enterprise83-server_8.3.4-496_amd64.deb
1c-enterprise83-server-nls_8.3.4-496_amd64.deb
1c-enterprise83-ws_8.3.4-496_amd64.deb
1c-enterprise83-ws-nls_8.3.4-496_amd64.deb
Это пример 64 сервера для дебиан систем. Убунту, если что на ядре дебиана работает.

Вот этот пакет -1c-enterprise83-ws_8.3.4-496_amd64.deb как раз и есть компоненты веб сервера 1с.
При его установке у вас в каталоге куда установится платформа появится утилита webinst вот через нее и будете публиковать.

Если у вас все "хорошо" то при публикации у вас все автоматически опубликуется. В конфиг апача добавится публикация 1с базы и необходимые муодули и файлик default.vrd запишется. А вот если версия апача не подойдет, то публикация пройдет а вот апач работать не будет т.к. будет ругаться на модуль wsap22.so, который добавляется в его конфиг при публикации. 1с работает с апачем версий 2.0 и 2.2...2.4. уже не будет работать


Если у вас убунту 12.04 с предустановленым апачем то в теории там может быть и апач 2.2.
8. spezc 783 16.09.14 11:17 Сейчас в теме
я установил эти 6 файлов. нашел в папке с 1С утилиту 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: полный путь к конфигурационному файлу Apache


но перерыв примеры, не могу осилить, какие папки мне нужно создать, и какой путь прописать у webinst.

сейчс у меня такие данные:
на линуксе, в папке /opt/1c/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="File="C:\Base\Test";"
		enableStandardOData="true">
	<ws>
		<point name="DataTransfer"
				alias="DataTransfer.1cws"
				enable="true"/>
	</ws>
</point>
Показать


Сама база лежит на сервере с виндой в папке "C:\Base\Test".

как я понимаю, мне нужно еще создать на линуксе папку для "-wsdir VirtualDir: виртуальный каталог", папку для "-dir Dir: физический каталог, в который будет отображен виртуальный".
и в самом файле default.vrd поменять путь к папке "C:\Base\Test" (ведь она у меня лежит на другом сервере), фактически расшарить ее для сервера линукс?
9. spezc 783 16.09.14 11:19 Сейчас в теме
блин совсем запутался как тут с манями и вознаграждениями рулить. отдал заявленную награду и назначить еще одну награду, в итоге все сложилось... непонятно короче...
10. bzmax 16.09.14 11:28 Сейчас в теме
nls - то зачем накатывать? Бубунта и так прекрасно с русским ладит.

Достаточно установить три пакета
1c-enterprise83-common_версия.deb
1c-enterprise83-server_версия.deb
1c-enterprise83-ws_версия.deb

После установки отключить автозапуск демона(службы) srv1cv83 т.к. сервер у тебя планируется на винде, а бубунта нужна только для публикации подключений к серверу. Запуск службы сервера в данном случае на бубунте не нужен. Но пакет 1c-enterprise83-server_версия.deb должен быть установлен т.к. без него ws компонента не будет работать.

И самый немаловажный момент. Публикация файловой базы - плохая затея. Нормально сможет работать только один человек. При входе второго будут жуткие тормоза, а то и краш соединения.
11. spezc 783 16.09.14 11:34 Сейчас в теме
(10) bzmax, публикация файловой - временная мера (до того как грамотно установлю скуль и сервер приложений)
12. bzmax 16.09.14 12:04 Сейчас в теме
тогда давай ка опиши полностью вводные.

1) Бубунта - версия, разрядность
2) Апач - версия
3) Винда - версия разрядность.
4) имя сайта с которого вход в 1с базу(ы) , пример (http://bases.mydomen.ru)
5) Место расположения базы (если файловая, то абсолютное место не C:\каталог1, а \\server\каталог1)
6) Какая нужна публикация , только вход в базу или(и) достуб к веб-сервисам конфигурации.
7) Конфигурация 1С (релиз)

после этого разберем полный сценарий публикации в твоем случае.
13. drim87 16.09.14 12:29 Сейчас в теме
sudo /opt/1C/v8.3/x86_64/webinst -publish -apache22 -wsdir nemepublish -dir '/var/www/test' -connstr 'File="путь к файлу бд"'

nemepublish - имя публикации бд. Пример http://localhost/nemepublish
После параметра -dir указывается виртуальный каталог, туда сохранится default.vrd
Ну и параметр File= путь к базе. Вот тут нужно правда поискать как правильно указать путь к файлу находящемуся на виндовой машине. С этим могут быть проблемы.

Автозапуск сервера предприятия можно отключить командой sudo update-rc.d srv1cv83 disable
Остановить sudo /etc/init.d/srv1cv83 stop
14. spezc 783 16.09.14 13:06 Сейчас в теме
1) Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-33-generic x86_64)
2) 2.2.22
3) Windows Server 2008 R2 Datacenter
4) base.ildarcheg.ru/test (где в base.ildarcheg.ru будет зашит ип моего убунтосервера)
5) расположена на вын 20008, расшаривание еще предстоит, пока думаю как (нужно чтобы линукс цеплялся к этой папке по сети)
6) и база и веб-сервисы (а потом еще и хттп сервисы)
7) самописка
15. bzmax 16.09.14 13:13 Сейчас в теме
5) расположена на вын 20008, расшаривание еще предстоит, пока думаю как (нужно чтобы линукс цеплялся к этой папке по сети)


Что значит расшаривание предстоит? а как ты web сервис бубунты будешь к своей базе (которая на винде) цеплять?
Веб сервис на одном компе, база на другом. Пусть хоть в файловом, но доступ то к ней из сети должен быть(!) хотя бы такой \\сервер\шара_с_базой
16. drim87 16.09.14 15:43 Сейчас в теме
Убуту десктопная у тебя. Поставь Клиентскую часть и публикуй через нее.
Название пакета 1c-enterprise83-client_8.3.4-496_amd64.deb
Для работы графической оболочки нужны пакеты:
image-magick
unixodbc
libgsf-bin
t1utils
msttcorefonts
Для первой установки так проще будет, чем с консольными параметрами ковыряться. Спокойно зайдешь в конфигуратор и опубликуешь базу. Останется создать каталог для default.vrd и права дать на этот каталог.
17. spezc 783 16.09.14 16:37 Сейчас в теме
я правильно понимаю, что установив клиента, я смогу подключиться к базе на виндовском сервере (файловой или скульной) и опубликовать на местный убунтовский апач?

1. устанавливаю через консоль клиентскую чать
2. ставлю графическую оболочку
3. подключаюсь к базе - публикую

а могли бы еще подсказать, как подключиться к убунте с ГУИ удаленно? сейчас я цепляюсь через ssр (putty)
18. bzmax 16.09.14 16:49 Сейчас в теме
(17) spezc,
тут два варианта.
1) Установка x11vnc, тогда сможешь подключаться по VNC.
2) Настроить перенаправление X11 поверх ssh, тогда набрав в консоли ssh имя программы(с графикой) она запуститься в графическом окне.

П.С.
Но это только в твоем случае т.к. Убунта десктопная. У серверной графики нет.
Удаленное администрирование серверной уунты только через консоль ssh.
19. bzmax 16.09.14 16:54 Сейчас в теме
(17) spezc,
1. устанавливаю через консоль клиентскую чать
2. ставлю графическую оболочку
3. подключаюсь к базе - публикую

Перед тем как публиковать нужно настроить апач на виртуальный домен base.ildarcheg.ru и в настройках добавить алиас к подпапке /test
если этого не сделать, то при подключении к своему веб-серверу будешь попадать в корневую папку и несмотря на все настроенные публикации
веб-сервер будет выдавать всегда одно и то-же:

It works!


This is the default web page for this server.

The web server software is running but no content has been added, yet.
20. drim87 16.09.14 22:48 Сейчас в теме
bzmax уже на все ответил, единственное что про настройку апача на доменое имя сайта. Возможно это и не надо т.к. ip хостинга сайта и ip на "месте" где сервер могут отличаться. Там же для доменного имени а-запись содержит ip хостинга где хранится сайт. В этом случае придется лезть в панель управления доменным именем или писатьт заявку тем кто этим занимается например тем у кого приобретали и добавлять субдомен и к этому субдомену прикручивать ip адрес для сервера в организации и в конфиге апача использовать уже его. Или вообще получать другое доменное имя (3го уровня можно получить бесплатно) или использовать ip.
Но это я уже далеко залез, нужно сначала с публикацией решить все.
23. bzmax 17.09.14 23:31 Сейчас в теме
(20) drim87,
может для тестирования и не нужно виртуальные сайты в апаче делать, но уж если делать то сразу правильно.
Как известно по умолчанию апач работает только с корневой папкой "www", а если надо несколько сайтов на одном сервере (на одном IP) тут уж без виртуализации сайтов никак не обойтись. Т.к. вход на разные сайты с одного имени но в разные подпапки как то "некрасивенько" :)
24. drim87 18.09.14 08:10 Сейчас в теме
(23) bzmax, ну так это если несколько сайтов ) а в данном случае их нет считай. Алиаса добавится при публикации автоматически. Там добавляется алиаса с указанием для нее каталога. Так что все ок )
21. spezc 783 17.09.14 17:27 Сейчас в теме
Ура!!! Взлетело!
В итоге пришлось развернуть еще один виндовский сервер и с него опубликовать базу на апаче другого виндовского сервера - только для того, чтобы понять как вообще работает публикация (принцип). Как оказалось этого понимания мне сильно не хватало. Так же на главном сервере перевел базы на скуль, чтобы не заморачиваться с расшариванием папки.

В итоге что сделал:
1. заново развернул сервер на убунту с предустановленным апачем
2. установил 3 пакета 1С - коммон, сервер, вс.
3. с помощью webinst через командную строку на убунте опубликовал базу на апаче убунты, которая была расположена на виндовском сервере.
были еще отдельные нюансы - но это решалось при помощи гугла.

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

З.Ы. предстоит еще проверить работу веб-сервисов и хттп-сервисов.

Думаю по окончании экспериментов поделюсь опытом, выложу свою статью, на предмет того, как это реализовать.

Еще раз большое спасибо всем кто помогал!
bzmax; AllexSoft; +2 Ответить
22. bzmax 17.09.14 23:25 Сейчас в теме
(21) spezc,
Молодца :)

Но на будущее, если понял принцип публикации. Все таки рекомендую вручную писать *.vrd файлы т.к. надеятся на скрипты webinst ненадежно (можно в один символ ошибиться в параметрах).

Да и апач настривать ручками то-же хороший плюс в копилку.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот