Алексей алексеев добро пожаловать в мой уютненький бложек. Выполнение публикации Apache и IIS Публикуем нашу базу на веб сервере

Для начала скажу, что я не гуру ни в Apache, ни в 1С, ни в IIS. Тем не менее, окунуться пришлось, так как передо мной встала простая задача — локальная сеть плюс несколько баз 1С:8.3 плюс несколько пользователей. И, естественно, защита от возможных сбоев …и минимальный бюджет.

Не буду писать про попытку, в общем удачную, использования 1С совместно с sql-сервером postgres. Снимаю шляпу перед этой СУБД, но я от этого пути отказался.

Выбор пал на использование файловых версий баз и публикацию их на веб-сервере. 1С работает с Apache и IIS. Про достоинства Apachе можно не рассказывать — у всех на слуху. В отношении 1С можно добавить лишь то, что публикация баз происходит на Apache без дополнительных настроек. Повозиться пришлось лишь с дистрибутивом этого популярного веб-сервера, который грамотно пропишется в установленных программах ОС Windows. Да, забыл упомянуть, что всё разворачивается на этих ОС. Проблема состоит в том, что 1С не видит Apache, если сервер установлен простым копированием. Баловался созданием кустарных установщиков Apache для того, чтобы версию 2.4 поставить — не помогло. Ну не видит 1С-ка веб-сервер и всё тут. Тем не менее, подходящий дистрибутив версии 2.2 был найден.

Всё пошло как по маслу. До начала реальной работы нескольких пользователей с несколькими базами. Периодически у всех в сети появлялась надпись «Сеанс отсутствует или удалён» с предложением перезагрузить базу, либо выйти. Программа при этом, что логично, прекращала работу у всех пользователей сразу. Работа в таком режиме продолжалась. Потерь данных не было, но терпение моё и сотрудников не было безгранично. Попытки найти решение на просторах интернета не привели ни к чему, кроме усугубления ситуации при изменении параметров работы Apache (ThreadsPerChild; MaxRequestsPerChild; TimeOut).

Тогда я решил пробовать перейти с Apache на IIS. При этом, IIS поднимался на платформе обычной настольной Win7x64 из состава штатной поставки операционки. По настройкам IIS под нужды веб-сервиса 1С в сети информации много. Например вот . Сначала всё шло неплохо, но…

Через непродолжительное время опять произошло падение с той же самой ошибкой.

Тогда я попробовал создать несколько пулов приложений и распределить веб-приложения (базы) между ними. В результате w3wp.exe, рабочий процесс IIS, был запущен столько раз, сколько пулов приложений было задействовано при загрузке баз данных. При этом именем пользователя каждого запущенного процесса стало имя пула приложений IIS. Нагрузка была распределена.

Что могу сказать? Сутки работы проходят без сбоев. Заметно увеличилось потребление оперативной памяти. Но раньше оно, возможно, тоже было бы большим. Просто процессы и httpd сервера Apache, и w3wp сервера IIS вылетали до нужного разрастания. По достижении некоторой критической массы.

Имеется windows-сервер c 1С 8.3 (БД - MSSQL).
Задача - настроить публикацию базы на линуксовом web-сервере.
Тонкости - модуль 1С для апача работает только с 2.0 и 2.2, а текущая версия в большинстве дистрибутивов - 2.4+
Пишется больше для себя, чтобы не забыть. Ну и мало ли, вдруг пригодится еще кому - не придется бегать по форумам в поисках нужных команд.

Железо - дал гигабайт оперативки, одно ядро и 20 гигабайт диска. Увеличить никогда не поздно.
ОС: Debian Stable, привык я к нему.

Ставлю минимум, включая ssh-сервер, но не включая web. К этому еще вернемся.

После установки базовая настройка по вкусу, я обычно ставлю локаль utf8, ставлю sudo, mc и vim, остальное по потребностям.
Дальше надо поставить apache 2.2. Причем сделать это правильным способом, а не просто скачав deb-пакет. :)

Сперва добавляем в /etc/apt/sources.list строчки со ссылкой на предыдущую версию дистрибутива.
deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
Можно, конечно, написать oldstable - в настоящий момент тоже будет правильно. Но только в настоящий, потому рано или поздно выйдет новая стабильная версия и в oldstable и тогда вместо apache 2.2 там будет 2.4. Хотя, надеюсь, к тому времени 1С обновится и заработает с более новыми версиями апача. Но кто их знает? :)
Где mirror.yandex.ru - там пишется имя вашего любимого сервера с репозиторием.

Потом обновляем индексы - apt-get update - и смотрим, что у нас тут есть по apache командой apt-cache showpkg apache2
Там много всего выводится, но нас интересует только начало вывода:
Package: apache2 Versions: 2.4.10-10+deb8u3 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: 2.4.10-10+deb8u1 (/var/lib/apt/lists/security.debian.org_dists_stable_updates_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: 2.2.22-13+deb7u6 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages MD5: Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-en MD5: Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-ru MD5:

Видим, что кроме 2.4.10 имеется версия 2.2.22-13+deb7u6 - то, что нужно.
Ставим: apt-get install apache2=2.2.22-13+deb7u6
Или, точнее: apt-get install apache2=2.2.22-13+deb7u6 apache2-mpm-worker=2.2.22-13+deb7u6 apache2.2-common=2.2.22-13+deb7u6 apache2.2-bin=2.2.22-13+deb7u6 , а остальные зависимости уже подтянутся автоматом.

После этого ставим апачей на холд, чтобы не обновить случайно.

Apt-mark hold apache2 apache2-mpm-worker apache2.2-common apache2.2-bin apache2 помечен как зафиксированный. apache2-mpm-worker помечен как зафиксированный. apache2.2-common помечен как зафиксированный. apache2.2-bin помечен как зафиксированный.
Можно запустить service apache2 start и стукнуть телнетом на 80 порт для проверки, если лень браузер запускать.

telnet localhost 80
Trying::1... Connected to localhost. Escape character is "^]". 1 501 Method Not Implemented

Method Not Implemented

1 to /index.html not supported.


Apache/2.2.22 (Debian) Server at 1cweb Port 80
Connection closed by foreign host.

Ругается - значит работает.

Теперь ставим 1С.
Нужны только веб-сервисы 1С (пакет 1c-enterprise83-ws ). И 1c-enterprise83-common , который в зависимостях прописан. И 1c-enterprise83-server , который в зависимостях не прописан, но без него утилита публикации пишет «Ошибка сегментирования».
В принципе, необходим только модуль для апача wsap22.so из пакета 1c-enterprise83-ws , а всё остальное можно через текстовый редактор сделать. Но я человек ленивый и лучше потрачу несколько мегабайт на 1С, чем буду руками вбивать строчки в конфиги. :)

Дальше надо создать папку для хранения настроек опубликованных БД 1С. Можно в дереве вебсервера, но я лучше отдельно сделаю, прямо в корне, /1с.
После этого из папки с установленными файлами 1С (/opt/1C/v8.3/i386 ) запускаем утилиту публикации webinst со следующими параметрами (публикую нашу тестовую базу):
./webinst -apache22 -wsdir testlitupp -dir /1c/testlitupp -connstr "Srvr=10.0.0.4;Ref=testlitupp;" -confPath /etc/apache2/apache2.conf Публикация выполнена

Apache22 - наша версия вебсервера
-wsdir testlitupp - папка на вебсервере, в которой будет доступна опубликованная база (http://вашсервер/testlitupp)
-dir /1c/testlitupp - папка, в которой будет храниться файл default.vrd с настройками публикации
-connstr «Srvr=10.0.0.4;Ref=testlitupp;» - ip сервера 1С и имя публикуемой базы данных
-confPath /etc/apache2/apache2.conf - путь к конфигу apache

Если было написано «Публикация выполнена», значит всё прошло удачно. Если пишет «Ошибка сегментирования», то вы, скорее всего, забыли поставить 1c-enterprise83-server .
По результатам имеем файл default.vrd

И несколько новых строк в файле конфигурации веб-сервера:

LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap22.so" # 1c publication Alias "/testlitupp" "/1c/testlitupp/" AllowOverride All Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor "/1c/testlitupp/default.vrd"
Перезапускаем апач (service apache2 restart) и идём смотреть, что там опубликовалось.
Опубликовалось, просит пароль.

И впускает в базу.

Работает. Дополнительные настройки публикации делаются через редактирование vrd-файлов (к примеру, включение отладки), а допиливанием интерфейса веб-клиента должны заниматься ваши программисты 1С.
Если будете дописывать опции, к примеру, с подключением сервисов руками, то не забудьте удалить в файле default.vrd последний слэш в строчке «base="/testlitupp" ib="Srvr=10.0.0.4;Ref=testlitupp;"/ >», я с этим долго возился. Если не удалить и что-то дописать после, то вылетает «ошибка 500» без дополнительной информации.
Какая будет нагрузка на вебсервер - я ещё не знаю, у нас это пока в тестовом режиме работает и хватает выделенных ресурсов. Но добавить памяти или ядер по мере увеличения потребностей проблем не составит.

В целом, в других дистрибутивах linux всё делается аналогично, различия только в способах установки старой версии apache.

С выходом платформы 1С 8.2 появилась возможность использовать в работе с 1С веб-сервер для взаимодействия вашей базы со всемирной сетью. В дальнейшем, по мере выхода 8.3 и ее новых релизов, возможности интеграции все более расширялись. Уже сейчас для связи с интернет, другими информационными системами и предоставления доступа в базу через браузер, можно использовать веб-клиент, интерфейс ODATA, разрабатывать web-сервисы, http-сервисы.

В этой статье мы рассмотрим как установить веб-сервер Apache и опубликовать на нем вашу информационную базу всего лишь за одну минуту! Для этого мы разработали для вас простую обработку с двумя кнопками.

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

Для чего рядовому пользователю публикация 1С на веб-сервере

В рамках данного материала не будем рассматривать все плюсы и удобства публикации базы на веб-сервере. Остановимся на том, что очень часто просят сделать у нас клиенты - доступ в 1С через браузер . Вы сможете работать с 1С из любой точки мира без установки платформы. Также преимуществом работы в браузере является то, что вы можете зайти в вашу программу через мобильное устройство: планшет, смартфон, под управлением любой операционной системой: iOS, android и т.д. Достаточно настроить такой вариант удаленного доступа, открыть браузер и указать стоку подключения. Самое главное, если вы публикуете базу 1С на сервере для удаленного доступа - подумайте о безопасности! Помимо установки пароля и прочих мер безопасности, рекомендуется использовать VPN для доступа к сети, в которой расположена база. Но это тема отдельной статьи и не очень опытному специалисту лучше обратиться к .

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

Как это работает

Для организации доступа в 1С через браузер необходимо:

  • Любая конфигурация, разработанная на управляемых формах
  • Установить и настроить веб-сервер
  • Опубликовать БД на веб-сервере

1С поддерживает два веб-сервера:

  • Apache

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

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

Короткая инструкция для знакомых с внешними обработками:

  1. Делаем копию (backup) ИБ. Обработка абсолютна безопасна. Но это никогда не повредит. Читаем как это сделать .
  2. Скачиваете обработку - файл
  3. под администратором (администратор компьютера) . Не путаем с запуском конфигурации 1С под пользователем, обладающим полными (административными) правами
  4. В командном меню Файл - Открыть. Выбираем файл УстановкаВебСервера.epf/SetupWebServer.epf (версия может отличаться)
  5. На форме заполняем желаемое имя для публикации на веб-сервере. При старте автоматически заполняется из заголовка системы.
  6. При выходе в интернет через прокси-сервер, указываем параметры прокси
  7. Подтверждаем загрузка веб-сервера apache из интернета
  8. Ждем некоторое непродолжительное время
  9. Веб-север скачен и установлен, база опубликована и настроена - можно открывать по кнопке. Также, можно добавить адрес в избранное в браузере

Если у вас остались вопросы или не все понятно из короткой инструкции читаем подробную с картинками

  • Скачиваете обработку - файл

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

  • Входите в 1С, выполнив запуск платформы под администратором (администратор компьютера)

Открываем платформу (список ИБ) с правами локального администратора компьютера/сервера. Правой кнопкой мыши на ярлыке запуска, выбираем пункт "запуск от имени администратора". Это необходимо т.к. происходит запуск службы apache.

  • В командном меню Файл - Открыть. Выбираем УстановкаВебСервера.epf (версия может отличаться)

В любой конфигурации на управляемых формах открываем обработку, нажав в верхнем левом углу "Файл-Открыть". Выбираем наш файл, скаченный на 1 шаге.

  • На форме заполняем желаемое имя базы для публикации. При старте, автоматически заполняется из заголовка системы.

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

Если в процессе выполнения появляется сообщение о том, что не установлены модули расширения, читайте как это установить .

  • При выходе в интернет через прокси-сервер указываем параметры прокси

  • Нажимаем на кнопку "Выполнить"

После нажатия на кнопку появляется вот окно, как на изображении ниже. Нажимаем "Согласен".

  • База опубликована на веб-сервере и настроена - можно открывать по кнопке. Добавить адрес в избранное в браузере

  • Работать с 1С в браузере удобно и не требуется установка платформы

После выполнения обработки у вас будет запущен веб-сервер Apache. Увидеть, что он запущен, остановить и перезапустить можно в системном трее (правый нижний угол).

Кликнув правой кнопкой мыши по значку вы сможете запустить монитор веб-сервера (apache service monitor).

Проверить, что веб-сервер работает нормально можно вписав строку localhost в любой браузер на компьютере, на котором установлен apache. Если все в порядке вы должны увидеть надпись - It works!

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

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

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

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

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

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

Apache – полнофункциональный, расширяемый веб-сервер с открытым кодом, удовлетворяющий практически все потребности современных веб-разработок. Apache является кроссплатформенным, т.е. поддерживает множество операционных систем – Microsoft Windows, Linux, BSD, Mac OS, Novell NetWare, BeOS. Основные его функции: поддержка http-протокола, возможность подключения внешних модулей, использование СУБД для проверки подлинности пользователей и обработка файлов конфигурации.



Рис.1 Функции Apache

До того как произойдет настройка Apache для 1С и сама публикация на веб сервере Apache базы 1С, его необходимо скачать. Бинарных сборок для Windows сейчас нет, а значит, скачиваем для примера более раннюю версию – 2.2.25, воспользовавшись поиском.



Рис.2

Запускаем скаченный файл и следуем за установкой.


Рис.3


Рис.4


Рис.5

Далее мы указываем информацию о нашем сервере. Если сервер в локальной сети, а у предприятия нет своего домена, указываем любую информацию, и имя сервера – Localhost, что означает, что сервер будет работать на локальном компьютере. В следующем поле заполняем адрес электронной почты, на который будут приходить ответы сервера (у нас произвольный, для примера).

Выбираем одну из двух настроек: Apache будет запускаться автоматически или вручную, только для текущего пользователя. Оставим рекомендуемые настройки.


Рис.6

Для совместного применения с программой 1С достаточно рекомендуемой установки конфигурации Apache.


Рис.7


Рис.8


Рис.9


Рис.10

После окончания установки сервер начинает работать автоматически. Внизу на панели появится значок программы.


Рис.11

Самый простой способ проверки работы нашего веб-сервера – открыть любой браузер и указать в адресной строке – http://localhost .

В окне у нас должно появиться сообщение «It works!».


Рис.12

(локальный хост) – это компьютер в компьютерных сетях, стандартное, официально зарезервированное доменное имя для частных IP-адресов. Напомним, что при установке Apache мы указали его в поле «Server Name».



Рис.13

Второй способ определения работоспособности нашего веб-сервера – по IP адресу.

Определим IP-адрес нашего ПК в «локалке». Щелкнув в левом углу на значке «Сеть», перейдем в меню «Центр управления сетями и общим доступом».


Рис.14

В открывшемся окне выбираем пункт «Беспроводное сетевое соединение», т.е. нашу сеть, и в появившемся окне нажимаем кнопку «Сведения». Там мы видим IP-адрес нашего компьютера в сети. В нашем случае – 192.168.0.102.



Рис.15

Для проверки работы веб-сервера открываем любой браузер и вводим – htpp://192.168.0.102. Если мы снова видим в окне браузера надпись «It works!», все работает.


Рис.16

При открытии с другого ПК в «локалке» должен быть такой же результат.

Открываем 1С:Предприятие в конфигураторе от администратора и загружаем нужную информационную базу.


Рис.17

В «Администрировании» выбираем необходимую нам функцию.


Рис.18

Если появляется окно:


Рис.19

… необходимо установить модули расширения веб-сервиса.

Для этого зайдем в «Панель управления-Программы и компоненты», найдем «1С:Предприятие» и нажмем «Изменить».


Рис.20

Выбираем «Модули расширения веб-сервиса» и нажимаем «Далее», пока не дойдем до «Готово».



Рис.21



Рис.23

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

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

Несмотря на кажущуюся простоту, настройка веб-доступа к файловым базам несколько сложнее, чем к серверным, это связано с тем, что необходимо правильно установить права доступа для всех участников данной схемы. Официальная документация довольно скупо освещает этот вопрос, поэтому ниже мы уделим ему повышенное внимание:

После выполнения публикации необходимо предоставить пользователю, от лица которого запускается Apache, права на каталог исполняемых файлов (/opt/1C/v8.3/i386/ для 32-разрядной версии или /opt/1C/v8.3/x86_64/ для 64-разрядной версии) конкретной версии системы «1C:Предприятие» (чтение и выполнение). В случае файлового варианта информационной базы необходимо дать права на модификацию каталога информационной базы пользователю, от лица которого работает веб-сервер.

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

Начнем с платформы, она размещается в /opt/1C и имеет владельцем usr1cv8:grp1cv8 , такой формат записи является общеупотребительным в Linux и обозначает связку пользователь:группа . Если быть точным, то веб-серверу требуется доступ на чтение и выполнение к единственному файлу платформы - библиотеке wsap24.so (для Apache 2.4).

Гораздо интереснее с информационной базой, изначально ее владельцем является локальный пользователь user:user , который является также членом одноименной персональной группы. По умолчанию он имеет все необходимые права доступа к базе (чтение и запись). Аналогичные права также должен иметь веб-сервер, который работает от имени www-data:www-data .

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

Поэтому самое время вспомнить, что в Linux права устанавливаются для пользователя , группы и остальных , права по умолчанию, в зависимости от системы, несколько отличаются. За их назначение отвечает такой параметр как umask , грубо говоря, это маска, которую надо вычесть из полных прав, чтобы получить права, применяющиеся по умолчанию. В Ubuntu umask равен 002 , а в Debian 022 , следовательно, набор стандартных прав в Ubuntu/Debian будет 775/755 для папок и 664/644 для файлов.

Набор 775/664 дает права чтения/записи как владельцу, так и группе, а 755/644 - только владельцу. Таким образом в Ubuntu набор прав по умолчанию полностью подходит для наших целей, а в Debian потребуется изменить umask на 002 .

Что касается прав, то потребуется взаимное включение пользователя и веб-сервера в персональные группы друг друга, а также веб-сервера в группу владельца бинарных файлов 1С. Теория понятна, перейдем к практике.

Установка модуля расширения веб-сервера

Будем считать, что у вас уже установлена платформа согласно нашему руководству . В таком случае нам понадобятся пакеты 1c-enterprise83-ws и 1c-enterprise83-ws-nls из поставки сервера. Обратите внимание, что версия и разрядность данных пакетов должна совпадать с версией и разрядностью установленной платформы.

Скопируем указанные пакеты в произвольную папку и установим их командой:

Dpkg -i 1c*.deb

Обратите внимание, что данная команда установит все пакеты из текущего расположения по маске 1с*, поэтому будьте внимательны и убедитесь, что в ней нет ничего лишнего.

Затем установим нужного владельца для платформы:

Chown -R usr1cv8:grp1cv8 /opt/1C

на этом установка модуля веб-сервера окончена.

Установка Apache 2.4

Начиная с платформы 8.3.8 добавлена поддержка актуальной версии Apache 2.4, теперь нет необходимости понижать версию пакета, если вы используете более раннюю версию платформы, то вам потребуется понизить Apache до версии 2.2, как это сделать описано в нашей статье .

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

Конечно, можно вручную настроить все красиво, но это потребует повышенных затрат на администрирование при добавлении новых баз, поэтому более разумным решением будет выделение для 1С собственного экземпляра Apache.

Его установка производится одной единственной командой:

Apt-get install apache2

никакой дополнительной настройки пакет не требует.

Настройка необходимых прав доступа

Если вы используете Debian , то прежде всего следует изменить umask системы на 002, для этого откройте файл /etc/pam.d/common-session и добавьте в его конец строку:

Session optional pam_umask.so umask=0002

Затем включим пользователя веб-сервера в группы 1С и текущего пользователя системы:

Usermod -a -G grp1cv8 www-data
usermod -a -G user www-data

Также включим текущего пользователя в группу веб-сервера:

Usermod -a -G www-data user

где вместо user следует использовать имя текущего пользователя.

После чего нужно установить права на папки с информационными базами, допустим они находятся в /opt/1C_bases :

Chmod -R u=rw,g=rw,o=r,a+X /opt/1C_bases

Закончив с установкой прав следует перезагрузить сервер.

Публикация информационной базы

Публикацию базы можно выполнить двумя путями: через Конфигуратор и при помощи командной строки. Ниже мы рассмотрим оба способа.

Перед публикацией создадим директорию для нее в рабочем каталоге веб сервера, по умолчанию это /var/www , мы будем публиковать Бухгалтерию 3.0 поэтому назовем директорию acc30 :

Mkdir /var/www/acc30

Запустим 1С:Предприятие с повышенными правами, для этого в терминале от имени суперпользователя выполните для 32-разрядной системы:

/opt/1C/v8.3/i386/1cestart

для 64-разрядной:

/opt/1C/v8.3/x86_64 /1cestart

Откроется стандартное окно запуска 1С из которого откроем в Конфигураторе нужную нам базу. Затем перейдем в Администрирование - Публикация на веб-сервере и заполним небольшую форму:

В поле Имя указываем желаемый алиас информационной базы, его вы будете набирать в адресной строке браузера для доступа к данной базе, поэтому не следует делать его длинным или неудобочитаемым. Веб-сервер - здесь все понятно, в нашем случае Apache 2.4 и, наконец, Каталог - здесь следует указать директорию публикации, которую мы создали несколько ранее, не следует путать ее с рабочим каталогом ИБ. Если вы не используете интерфейс OData и Web-сервисы, то публиковать их не нужно.

Заполнив все необходимые поля нажмите кнопку Опубликовать , затем согласитесь с предложением перезапустить веб-сервер.

Для публикации из командной строки следует перейти в директорию с бинарными файлами 1С, в 32-разрядной системе выполните:

Cd /opt/1C/v8.3/i386/

в 64-разрядной:

Cd /opt/1C/v8.3/x86_64/

После чего запустите утилиту webinst со следующими параметрами:

./webinst -publish -apache24 -wsdir acc30 -dir /var/www/acc30/ -connstr "File=""/opt/1C_bases/acc30/"";" -confpath /etc/apache2/apache2.conf

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

  • publish - указывает необходимое действие, в данном случае публикацию, может быть опущен, так как это действие по умолчанию.
  • apache24 - задает тип веб-сервера, для Apache 2.2 следует указывать apache22.
  • wsdir - имя алиаса публикации, по которому к базе следует обращаться из браузера.
  • dir - путь публикации, созданная нами директория в рабочем каталоге веб-сервера
  • connstr - строка соединения, состоит из трех частей, каждая из которых взята в кавычки: "File=" - указывает что база файловая, "/opt/1C_bases/acc30/" - путь к каталогу ИБ, ";" - служебный символ.
  • confpath - путь к конфигурационному файлу веб-сервера.

Chown -R www-data:www-data /var/www

Теперь можем попробовать запустить базу, обратившись к ней в браузере по имени хоста или IP-адресу, добавив через слеш нужный алиас, на локальной машине можно набрать http://127.0.0.1/acc30 .

Несколько слов о производительности

По-хорошему здесь должен был быть завершающий абзац статьи с заключением и пожеланиями, но наш материал был бы неполным без темы производительности данного решения. Так как веб доступ в файловом режиме обычно используют небольшие предприятия, то в роли веб-сервера чаще всего используется обычный офисный ПК. В его роли мы использовали виртуальную машину, которой выделили два ядра от Core i5-4670 и 4 ГБ оперативной памяти, что соответствует неплохой офисной машине.

Если по процессорным или дисковым ресурсам вопросов не возникло, то вот расход оперативной памяти нас не порадовал. Ниже показана система сразу после загрузки:

Затем мы запустили два экземпляра базы (один в веб-клиенте, другой в тонком) локально и два экземпляра по сети:

Как видим, свободная память в системе закончилась, и она ушла в своп, а если немного поработать в базах, то быстро закончится и файл подкачки. При этом, кроме 1С, на данном ПК больше ничего не запущено, что для обычной офисной машины не характерно. Эмпирическим путем мы выяснили, что на каждый сеанс работы с такими конфигурациями, как Бухгалтерия предприятия 3.0 требуется иметь 1 ГБ оперативной памяти.

Хорошо, закрываем все сеансы, но что это?

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

Теперь модель работы веб-сервисов соответствует FastCGI-приложению, которое запускается один раз и продолжает оставаться запущенным даже при завершении сеансов работы с ним. Процитируем разработчиков 1С:

Сеансы в пуле хранятся в разрезе типа сервиса, наименования сервиса, пользователя/пароля, значений разделителей и безопасного режима. Причём в пуле может быть несколько сеансов с одинаковыми значениями перечисленных реквизитов.

При вызове платформа проверяет, есть ли простаивающий сеанс с подходящим сочетанием этих реквизитов. Если такой сеанс есть, то он выделяется для обработки вызова. Если такого сеанса нет, то создается новый сеанс и выделяется для обработки.

Сеанс автоматически завершается по истечении периода бездействия (ВремяЖизниСеанса).

Что из этого следует? А то, что если вы одновременно запустите 4 сеанса работы с веб-сервером, то по их завершении рабочие процессы Apache продолжат работу в ожидании новых подключений, а если их не будет, то по окончании времени жизни сеанса , которое по умолчанию составляет 20 минут, будут завершены.

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

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

  • Теги:

Please enable JavaScript to view the