Вводные данные:
- Система Debian 11
- 1С версия 8.3.17.2256
- Apache версия 2.4.52
1. Подготовка системы.
На свежеустановленной системе для начала правим репозитории.
1 |
apt edit-sources |
1 2 3 4 5 6 7 8 9 10 |
#Debian 11 (Bullseye) deb http://deb.debian.org/debian bullseye main contrib non-free deb-src http://deb.debian.org/debian bullseye main contrib non-free deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb http://deb.debian.org/debian bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free |
1 |
apt update |
Ставим необходимые пакеты для работы 1С веб сервера
1 |
apt install curl sudo imagemagick unixodbc ttf-mscorefonts-installer gnupg make libc6-i386 pigz -y |
Теперь нужно подготовить locale для нашей системы
1 |
dpkg-reconfigure locales |
Нам нужно выбрать ru_RU.UTF-8 UTF-8. Так же убедитесь на всякий случай, что en_US.UTF-8 тоже выбрана. По умолчанию выбираем ее же — ru_RU.UTF-8 UTF-8 и перезапускаем систему.
Все готово для установки 1С и Apache
2. Установка 1С компонентов для веб сервера
Скачиваем с сайта https://releases.1c.ru/ архив с deb пакетами 1С сервера и передаем на наш сервер. Можно воспользоваться WinSCP если используете Windows, для Linux можно воспользоваться scp
1 |
scp deb64_8_3_17_2256.tar.gz user@10.21.2.167:/home/user |
Где:
deb64_8_3_17_2256.tar.gz — 1С архив
user@10.21.2.167 — Пользователь и адрес сервера куда передаем
:/home/user — Директория назначения
Архив лучше распаковать в отдельную директория
1 2 3 4 |
mkdir 1c-server mv deb64_8_3_17_2256.tar.gz 1c-server/ cd 1c-server/ tar xzvf deb64_8_3_17_2256.tar.gz |
Проверяем файлы которые распаковали
1 |
ls |
1 2 3 |
1c-enterprise83-common_8.3.17-2256_amd64.deb 1c-enterprise83-server_8.3.17-2256_amd64.deb 1c-enterprise83-ws-nls_8.3.17-2256_amd64.deb 1c-enterprise83-common-nls_8.3.17-2256_amd64.deb 1c-enterprise83-server-nls_8.3.17-2256_amd64.deb deb64_8_3_17_2256.tar.gz 1c-enterprise83-crs_8.3.17-2256_amd64.deb 1c-enterprise83-ws_8.3.17-2256_amd64.deb license-tools |
Для установки 1С компонентов с поддержкой русского языка вам нужны пакеты в названии которых не встречается nsl
Ставим 1С сервер и компоненты веб сервера. Сам сервер 1С выключаем
1 |
dpkg -i 1c-enterprise83-common_8.3.17-2256_amd64.deb 1c-enterprise83-server_8.3.17-2256_amd64.deb 1c-enterprise83-ws_8.3.17-2256_amd64.deb |
1 |
systemctl disable srv1cv83.service |
3. Установка Apache
Ну тут все тривиально и просто, сначала ставим apache
1 |
apt install apache2 apache2-utils -y |
Компания 1С рекомендует использовать модуль мультипроцессной обработки worker, поэтому следует выяснить с каким модулем работает ваш сервер, для этого выполним
1 |
apachectl -V | grep -i mpm |
Если это prefork или event, то их следует отключить
1 |
a2dismod mpm_prefork |
или
1 |
a2dismod mpm_event |
Теперь запускаем модуль и перезапускаем Apache
1 |
a2enmod mpm_worker |
1 |
service apache2 restart |
4. Настройка только для файловых баз
Для корректной работы с файловыми базами следует ограничить Apache одним рабочим процессом, в противном случае вы можете столкнуться с ошибкой Объект заблокирован. Чтобы избежать этого, откроем /etc/apache2/mods-available/mpm_worker.conf и установим следующие значения:
1 |
nano /etc/apache2/mods-available/mpm_worker.conf |
1 2 3 |
StartServers 1 MinSpareThreads 1 MaxSpareThreads 1 |
5. Лицензирование 1С Веб клиента
Рассмотрим несколько вариантов:
- У нас есть аппаратный ключ на 5 пользователей, сервера 1с у нас нет, а ключ надо как — то раздать, то вариант тут только один. Создаем директорию на нашем веб сервере.
1 |
mkdir /opt/1C/v8.3/x86_64/conf |
и добавляем файл со следующим содержимым
1 |
nano /opt/1cv8/x86_64/conf/nethasp.ini |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[NH_COMMON] NH_IPX = Disabled NH_NETBIOS = Disabled NH_TCPIP = Enabled [NH_IPX] [NH_NETBIOS] [NH_TCPIP] NH_SERVER_ADDR = тут ip адрес компа с ключом NH_PORT_NUMBER = 475 NH_TCPIP_METHOD = UDP NH_USE_BROADCAST = Disabled |
Теперь веб сервер будет спокойно отдавать лицензии пользователям 1с веб клиента так и тонком клиенте.
- Программные многопользовательские лицензии. Сама 1с заявляет и рекомендует, что можно активировать многопользовательскую лицензию на компьютер где установлен веб модуль 1с и он сам будет раздавать лицензии.
- Вариант с сервером 1с можно не рассматривать т.к. он сам раздает лицензии.
6. Публикация файловой базы
Для публикации файловой базы 1с на нужна сама база (не файл выгрузки базы), создаем каталог где будет храниться база
1 |
mkdir -p /opt/bases/buh |
Переносим туда базу и выставляем права доступа
1 |
chown -R www-data:www-data /opt/bases/ |
Теперь переходим в каталог где установлена 1с
1 |
cd /opt/1C/v8.3/x86_64/ |
и публикуем нашу базу
1 |
./webinst -publish -apache24 -wsdir buh -dir /var/www/buh -connstr "File=/opt/bases/buh;" -confpath /etc/apache2/apache2.conf |
Где:
- -publish — опубликовать базу (для удаления delete)
- -wsdir buh — наименование базы (будет добавлено в http:\\serverip\buh
- -dir /var/www/buh — путь публикации
- -connstr «File=/opt/bases/buh;» — путь до базы данных
- -confpath /etc/apache2/apache2.conf — расположения конфига Apache
После этого рестартуем Apache
1 |
systemctl restart apache2.service |
Открываем в браузере http://serverip/buh и проверяем работу нашей базы
7. Публикация серверной базы
Для публикации серверной базы 1с на нужны реквизиты для подключения к 1с серверу
1c-server.angald.local — это наш 1с сервер
buh — наименование базы
Переходим в каталог где установлена 1с
1 |
cd /opt/1C/v8.3/x86_64/ |
и публикуем нашу базу
1 |
./webinst -publish -apache24 -wsdir buh -dir /var/www/buh -connstr "Srvr=server-1c.angald.local;Ref=buh;" -confpath /etc/apache2/apache2.conf |
Где:
- -publish — опубликовать базу (для удаления delete)
- -wsdir buh — наименование базы (будет добавлено в http:\\serverip\buh
- -dir /var/www/buh — путь публикации
- -connstr «Srvr=server-1c.angald.local;Ref=buh;» — строка подключения к 1с серверу
- -confpath /etc/apache2/apache2.conf — расположения конфига Apache
После этого рестартуем Apache
1 |
systemctl restart apache2.service |
Открываем в браузере http://serverip/buh и проверяем работу нашей базы
8. Установка пароля на наш веб сервер
Добавим немного безопасности нашему серверу, например есть базы данных у которых нет паролей, да вы скажете что можно создать пользователей с паролями, но пользователи как правило сложнее паролей типа (12345, qwerty) не запомнят, а публиковать в публичной сети не защищенную базу данных сомнительное удовольствие.
Все нужное мы уже установили еще в начальных шагах нам нужно создать только файл с паролями и добавить файл .htaccess в директорию где опубликована база.
Создаем файл с паролями
1 |
htpasswd -c /etc/apache2/.htpasswd mariyapetrovna |
Обращу внимание что параметр -c указанный в команде создает новый файл с паролями, если нужно добавить пользователя не затирая предыдущего, не указывайте его.
Добавляем файл .htaccess
1 |
nano /var/www/buh/.htaccess |
1 2 3 4 |
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user |
Перезапускаем наш веб сервер и пробуем зайти с нашим паролем.
9. Настройка 1С клиента для аутентификации на веб сервере
Что бы каждый раз не вводить пароль доступа к веб серверу, можно прописать пароль в настройках базы:
Где:
/WSN — тут прописывается имя пользователя для доступа к веб серверу
/WSP — здесь соответственно пароль
Статья иногда пополняется или правится т.к. фирма 1с исправляет ошибки да и бывает добавляет новые, как в платформе 8.3.17 пароль приходилось прописывать в двух местах, в строке подключения и то что мы делали выше. Для тех кому интересно в строке подключения прописываем в таком формате
1 |
http://mariyapetrovna:superpassword@example.ru/buh |
Где:
mariyapetrovna:superpassword — логин и пароль
example.ru/buh — путь до нашей базы
Также можете отправить эту строку пользователю и он перейдя по ней сразу попадет в 1с через браузер не вводя никакие пароли.
Использованы материалы: https://interface31.ru/