Решение вопроса:
Такое сообщение можно получить в случае если кластер сервера 1с Предприятие расположен на ОС Семейства Linux.
Для решение этой проблемы нужно выполнить команду в терминале
Для Ubuntu, Debian, Mint Linux
sudo apt install liblcms2-utils
Для CentOS, Fedora
yum install lcms2
Эта информация оказалась полезной?
Как можно улучшить этот ответ?
Предыдущий вопрос
Следующий вопрос
elite128 Заглянувший Сообщений: 602 |
1С:Предприятие 8.3 (8.3.6.2014) на части клиентов падает клиент с ошибкой moxel.dll Принтеры удалял, антивирус отключал — не помогает, похоже ошибка |
Добрый день ! Данный вопрос решается в рамках линии консультации продукта. Для его оперативного решения следует обратиться на линию технической поддержки пользователей по адресу crm@rarus.ru, обязательно указав в письме: |
|
Подтверждаю аналогичное поведение без явных причин у одного из пользователей клиента. |
|
Добрый день ! Данный вопрос решается в рамках линии консультации продукта. Для его оперативного решения следует обратиться на линию технической поддержки пользователей по адресу crm@rarus.ru, обязательно указав в письме: |
|
elite128 Заглянувший Сообщений: 602 |
1С переставляли (с удалением и чисткой всех следов), драйвера тоже обновляли, падает только при включенном модуле CRM |
Переслал вопрос в отдел системной разработки защиты. |
|
Можете привести текст/скриншот ошибки? |
|
Юрий Железняков Заглянувший Сообщений: 323 |
#8
10.06.2015 16:45:30
Возможно, проблема не с защитой, а с какими-либо табличными формами, которые должны открываться только при включенном функционале CRM. Скриншот не всегда удается сделать, т.к. программа аварийно завершает работу с указанием сбойного модуля moxel.dll. |
||
ну хотя бы примерно сориентируйте, в какой момент и в каком месте падает? Изменено: Алексей Полубенский — 10.06.2015 21:41:00 |
|
#10
11.06.2015 09:24:00 В настоящий момент клиент, у которого эта проблема возникала, перевел рабочее место сотрудника, у которого была такая проблема, из локального запуска в тонком клиенте на терминальный доступ, где запуск проходит нормально. Предоставлять проблемный компьютер клиент пока не готов в связи с высоким сезоном. Аварийное завершение происходит при запуске программы после выбора пользователя и ввода пароля, когда, возможно, происходит инициализация форм, разрешенных только CRM.. Подобное поведение наблюдалось ранее (давно, не в CRM) при работе драйверов некоторых видеокарт и принтеров. Но в данном случае вылезло после обновления на последний релиз. Изменено: Юрий Железняков — 11.06.2015 09:26:45 |
|
elite128 Заглянувший Сообщений: 602 |
#11
11.06.2015 09:27:42 могу показать сегодня на удаленке |
elite128 Заглянувший Сообщений: 602 |
#12
11.06.2015 11:23:05 скрин Прикрепленные файлы |
#13
11.06.2015 12:12:08 |
|
#14
11.06.2015 14:13:13 Сегодня вышел новый релиз УТиВСК2, на нем не пробовали еще? |
|
#15
11.06.2015 14:17:41 Получается — вылетает в тот момент, когда открывается Календарь CRM? В нем идет обращение к системе защиты. |
|
#16
11.06.2015 14:39:56 Скачал 2.0.12, будем тестировать. Кстати, поправьте, пожалуйста, в описании обновления «Исправлена ошибка сознания Поручения на основании События.» Изменено: Юрий Железняков — 11.06.2015 14:54:43 |
|
#17
11.06.2015 15:18:59 База серверная или файловая? |
|
#18
11.06.2015 15:20:21 Спасибо, но ошибку в описании уже не исправить. Думаю, не критично ) |
|
#19
11.06.2015 15:22:57 Алексей Полубенский, Да, кстати, ещё момент. Для работы требуется версия сервера Софтфона 3.0.3.193 http://update.rarus.ru/update/product.asp?id=508 ни здесь ее нет. http://rarus.ru/1c-crm/cti/ |
|
Юрий Железняков Заглянувший Сообщений: 323 |
#20
11.06.2015 15:35:12
Серверная. |
||
Алексей Полубенский Посетитель Сообщений: 1577 |
#21
11.06.2015 15:42:18
похоже не обновили еще… Мне какую версию сказали, такую я и указал )) вот ссылки на скачку: https://dl.dropboxusercontent.com/u/27567856/Setup3.exe Панель: https://dl.dropboxusercontent.com/u/27567856/SetupClient3.exe работать должно и более старыми релизами сервера. |
||
Алексей Полубенский Посетитель Сообщений: 1577 |
#22
11.06.2015 15:44:19
тогда вряд ли проблема в защите, ведь она запускается и работает на сервере. |
||
elite128 Заглянувший Сообщений: 602 |
#23
11.06.2015 16:22:24 |
elite128 Заглянувший Сообщений: 602 |
#24
11.06.2015 16:35:20 падает на календаре |
Алексей Полубенский Посетитель Сообщений: 1577 |
#25
15.06.2015 12:26:31 Имеете ввиду что падает только при запуске? а если Календарь открыть потом — уже нет ошибки? хотя форма та же самая…. |
Делюсь решением.
Для установки берём серверный дистрибутив 8(или 9)-й платформы с последними обновлениями, т.е. серверный стартер-кит с http://nightly.altlinux.org/p8/release/alt-p8-server-20181212-x86_64.iso или более поздний.
Этот дистрибутив можно бесплатно использовать в коммерческих целях.
Загружаемся.
Подготовка диска: Выберите профиль: Вручную.
Создать раздел.
Создаем swap-раздел. Если хотите, и место на дисках позволяет, можете создать раздел размером в два размера оперативной памяти. Лично я создал маленький раздел 2048 Мб. Тип раздела Linux swap.
Создать раздел.
Создаем корневой раздел. Тип раздела Linux. Отдаем ему всё остальное место. Файловая система ext4. Опции монтирования relatime.
Замечание: большое место будет занимать папка /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/ — там будут логи 1С. Если у вас недостаток места на дисках, то логи можно удалять вручную или настроить в Конфигураторе 1С «Регистрировать только ошибки», при этом логи будут гораздо меньшего размера. Можно вообще создать для /home отдельный раздел.
Даем имя и IP-адрес серверу 1С, указываем адреса своего DNS-сервера и шлюза. Не забываем на своем DNS-сервере создать прямую и обратную записи о сервере 1С.
Создаем пароль root-а. Создаем пользователя. В дальнейшем будем на сервер 1С заходить по ssh этим пользователем, а затем брать привилегии root-а командой «su -«
ОС установлена.
Заходим на сервер 1С через putty. Редактировать конфигурационные файлы будем по F4 в Midnight Commander (mc). Для полного просмотра коммандной строки, mc удобно скрывать по Ctrl+O.
Убеждаемся что брэндмауэр открыт: iptables -L -v -n : видим всё ACCEPT
Если у вас в сети прокси-сервер, то в /root/.bash_profile добавьте:
http_proxy=»http://IP-прокси:порт»
export http_proxy
и перезайдите в ОС
Обновляем ОС:
apt-get update
update-kernel -t std-def
apt-get dist-upgrade
Настраиваем синхронизацию времени.
В /etc/ntpd.conf поставим свои или общедоступные серверы времени:
server 192.168.0.х
server 192.168.0.у
или
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
Удаляем файл /etc/localtime и делаем новый, как ссылку на файл временной зоны:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В /etc/hosts запишем имя и IP-адрес сервера 1С:
127.0.0.1 server1C.moj_domen.local server1C
192.168.0.X server1C.moj_domen.local server1C
Проверяем интернационализацию:
cat /etc/sysconfig/i18n
должно быть так:
LANG=ru_RU.UTF-8
SUPPORTED=ru_RU.UTF-8
Согласно https://its.1c.ru/db/v8313doc#bookmark:cs:TI000000016
для использования некоторых возможностей сервера 1С8.3.13 и 1С8.3.14, работающего под управлением ОС Linux, может потребоваться наличие следующих библиотек:
— FreeType (в ОС уже есть libfreetype)
— Libgsf (надо ставить libgsf)
— Glib (в ОС уже есть glib2)
— unixOdbc (надо ставить unixOdbc)
— Kerberos (в ОС уже есть libkrb5)
— GSS-API Kerberos — непонятно, что за библиотека
— Microsoft Core Fonts (надо ставить fonts-ttf-ms)
— Бибиотека ImageMagick уже не нужна. При работе в ОС Linux, система использует библиотеку ImageMagick, входящую в состав дистрибутива платформы 1С а не в состав ОС, как было на 1с8.3.12.
— Для печати штрих-кодов надо в 1С взять КомпонентаПечатиШтрихкода.zip и оттуда lib1CBarCodLin64_8_4_1_1.so скопировать в /opt/1C/v8.3/x86_64.
ldd lib1CBarCodLin64_8_4_1_1.so говорит, что для него нужна libpng12.
— Начиная с версии 1с 8.3.19, на сервере нужен пакет liblcms2, иначе при попытке входа в базу у клиента будет ошибка «Ошибка загрузки компоненты moxel»
apt-get install libgsf unixODBC fonts-ttf-ms libpng12 liblcms2
Если нужно, устанавливаем менеджер лицензий для аппаратного ключа сервера 1С:
apt-get install i586-haspd
service haspd start
Проверка состояния: service haspd status
Устанавливаем postgresql 10-й версии. С ним работает платформа 1С8.3.13 и выше.
apt-get install postgresql10-1C postgresql10-1C-contrib postgresql10-1C-server
Создаём файлы базы данных и стартуем:
service postgresql initdb
service postgresql start
Автозагрузка: chkconfig postgresql on
Настройки авторизации в postgres находятся в файле /var/lib/pgsql/data/pg_hba.conf. Изначально стоит:
host all all 0.0.0.0/0 trust
т.е. во все базы с любого адреса можно входить без пароля, так и останется. Будем использовать парольную защиту из 1С, а не из postgres.
Кажется, для чего-то все-таки нужно задать пароль для пользователя postgres, хотя работаем без проверки пароля:
psql -U postgres -d template1 -c «ALTER USER postgres PASSWORD ‘пароль’»
Настройка Postgres:
Вносим изменения в файл /var/lib/pgsql/data/postgresql.conf
Пусть у нас в сервере 32Гб оперативной памяти. Считаем что postgres использует 16Гб, а остальное — 1С и ОС. В дальнейших рассчётах под RAM имеется в виду именно память остающаяся на postgres.
Учитывая советы:
— Фирмы 1С: https://its.1c.ru/db/metod8dev#content:5866:hdoc
— Алексея Васильева с онлайн утилитой pgtune: http://pgtune.leopard.in.ua/ (выбираем DB Type: Data warehouses)
— Некоторые пояснения этих настроек есть на https://postgrespro.ru/docs/postgrespro/10/config-one-c и http://www.gilev.ru/postgresql/
max_connections = 1000
1С советует разрешить на сервере 500-1000 подключений, т.к. 1С сама может их много открывать (независимо от числа пользователей?)
shared_buffers = 4GB
1С советует RAM/4
temp_buffers = 256MB
Такое постоянное значение советует 1С
work_mem = 64MB
1С советует от 32MB до 128MB, возьмем среднее
maintenance_work_mem = 2GB
1С советует от 256MB до 4GB, возьмём 2GB, как советует pgtune
effective_cache_size = 12GB
1С советует RAM — shared_buffers, т.е. 16-4=12GB, то же советует и pgtune
effective_io_concurrency = если база данных на HDD — 2, если на SDD — 100
Это число запросов, которое может одновременно обслужить дисковая система. Для HDD это число шпинделей. У 1С совет 1 для одного HDD и 2 и больше для RAID. У pgtune есть настройка для SDD, которая даёт 200. Лично я ставлю 100.
random_page_cost = для HDD — 1.7, для SDD — 1.2
1С советует 1.5-2.0 для HDD, 1.1-1.3 для SSD
autovacuum = on
Явно включим автовакуум и не будем выключать, как советует 1С
autovacuum_max_workers = 4
1С советует ядер_ЦПУ/4..2 но не меньше 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
Верхние 4 пункта так советует 1С
synchronous_commit = off
По уверению 1С значительно увеличивает производительность
checkpoint_segments не настраиваем, параметр был до 9.5 версии PgSQL
checkpoint_completion_target = 0.9
1С говорит от 0.5 до 0.9, pgtune говорит 0.9
max_wal_size = 4GB
min_wal_size = 2GB
1С говорит min_wal_size от 512MB до 4GB, max_wal_size = 2 * min_wal_size, параметры появились в PgSQL9.5
ssl = off
Явно выключим шифрование, как советует 1С
fsync = off
Т.к. у меня дисковый кеш с батарейкой и 2 БП + 2 ИБП на сервере, то выключу, хоть 1С и не советует
commit_delay = 1000
commit_siblings = 5
row_security = off
Верхние 3 пункта так советует 1С
max_files_per_process = 1000
Явно укажем, как советует 1С. Максимальное количество открытых файлов на один процесс PostreSQL. Если PostgreSQL упирается в этот лимит, он начинает открывать/закрывать файлы, что может сказываться на производительности. Лично у меня на уже работающем сервере 30 процессов postmaster. Команда lsof -u postgres | wc -l даёт 13000, т.е. на один процесс примерно 433 файла. Значит для моего случая 1000 хватит.
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
Верхние 3 пункта так советует 1С
plantuner.fix_empty_table = ‘on’
online_analyze.table_type = ‘temporary’
online_analyze.verbose = off
Верхние 3 пункта так советует 1С для расширений plantuner и online_analyze. 1-й из них пункт просто добавляем.
shared_preload_libraries = ‘online_analyze, plantuner’
Явно включим эти расширения
Из pgtune следующие 5 параметров не будем настраивать, т.к. их нет в рекомендациях 1С:
wal_buffers = 16MB
default_statistics_target = 500
max_worker_processes = 8
max_parallel_workers_per_gather = 4
max_parallel_workers = 8
после этого service postgresql restart
Устанавливаем х64 сервер 1c8.3.13.1809. Или х32, если у вас такой.
Скачиваем с сайта 1С «Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем», распаковываем. Все файлы .rpm в одной папке. Установка:
apt-get install *.rpm
service srv1cv83 start
Если у вас в сети прокси-сервер, то чтобы 1С подключалась к интернет (для сдачи отчетности), пользователю usr1cv8 надо добавить в .bash_profile:
http_proxy=»http://IP-прокси:порт»
export http_proxy
В принципе, уже можно работать с 1С.
Дополнение 1: перенос данных
Спойлер
Данные postgres лежат в /var/lib/pgsql/data. Желающие могут перенести их в другое место, например на SSD-диск. У меня SSD-диск монтируется в /var/ssd.
1. /etc/init.d/postgresql stop
2. Путь к базе прописан в переменной PGDATA в скрипте /etc/init.d/postgresql. Меняем путь на /var/ssd/data
3. Переносим папку /var/lib/pgsql/data в /var/ssd/data. /var/lib/pgsql остается на месте.
4. /etc/init.d/postgresql start
Дополнение 2: резервное копирование
Спойлер
Организуем резервное копирование баз данных на сетевой ресурс. В моем случае сетевой ресурс — это общая папка на сервере Windows 2003. Для получения доступа к сетям Майкрософт поставим cifs-utils:
apt-get install cifs-utils
Пароль на доступ к общей папке будем хранить в файле sambacreds:
touch /etc/sambacreds
в нём 2 строки:
username=имя
password=пароль
Оставим на него права только root-у:
chmod 600 /etc/sambacreds
Создадим в /mnt/ папку arh, к которой будем подключать общую папку Windows.
В /etc/fstab укажем:
//IP_сервера_Windows/общая_папка /mnt/arh cifs credentials=/etc/sambacreds 0 0
Создадим папку, где будут лежать скрипты для резервирования /etc/bat_ar/ и в ней скрипт sohran.sh с таким содержимым:
#!/bin/bash
pg_dump -U postgres -Fc -Z1 baza > $1/baza.arhiv
-Fc (—format=c) — выходной формат custom, только такой формат делает сжатие.
-Z, —compress=0-9 — уровень сжатия при архивации. Мне важно, чтобы быстрее сделался резерв, а не степень сжатия. При увеличении сжатия размер становится немного меньше, а время тратится значительно больше.
Расширение .arhiv — произвольное
baza — название базы в postgres-е
В /etc/cron.d/ создадим файл pg_dump с таким содержимым:
59 0 * * * root /bin/mount -a
0 1 * * 2 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv1
0 1 * * 3 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv2
0 1 * * 4 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv3
0 1 * * 5 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv4
0 1 * * 6 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv5
В конце обязательно Enter
Т.е. в 1 час ночи, со вторника по субботу запускается архивация. За каждый будний день архив кладётся в свою папку arhivХ. Папки arhivХ должны существовать в общей папке на сервере Windows.
В логах /var/log/syslog/messages видно, что архивация запускается:
Jul 9 01:00:02 server1C crond[27284]: (root) CMD (/etc/bat_ar/sohran.sh /mnt/arh/arhiv5)
mount -a — это чтобы сетевой ресурс уже наверняка был бы подключен, т.к. бывает, что после пропадания и возобновления питания, сервер Windows загружается позже чем server1C и тогда подключение в fstab не срабатывает.
Дополнение3: соображения по 1С
Спойлер
Папка сервера 1С: /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/
reg_1541/ — тут лежат ID баз, в т.ч. уже удалённых. В файле 1CV8Clst.lst видно, к какой базе какой ID относится, а каких ID в этом файле нет, они лишние. Лишние можно удалить. В ID каждой базы:
1Cv8FTxt — полнотекстовый поиск
1Cv8Log — логи журнала регистраций. Если он разросся, логи можно удалить. В Конфигураторе можно журнал Сократить. Там же можно настроить не собирать лишние сведения, а только Регистрировать ошибки.
/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С
Платформа 1С обновляется простой процедурой скачивания rpm пакетов с сайта 1С, далее необходимо зайти в каталог с ними и выполнить команды:
service srv1cv83 stop
apt-get install *.rpm
service srv1cv83 start
Проверить версию платформы 1С можно командой: rpm -qa | grep 1C_Enterprise
Дополнение4: работа с 1С по http (https), т.е. через веб-клиент
Спойлер
Установим веб-сервер апач:
apt-get install apache2
chkconfig httpd2 on
service httpd2 start
Создадим папку /var/www/1c_base/
У нас на сервере 1с есть база с названием roznica. Чтобы работать с ней через веб-клиент, сделаем следующее:
1) создадим подпапку roznica в /var/www/1c_base/
2) создадим для этой базы отдельный конфиг апача в /etc/httpd2/conf/sites-available/:
touch /etc/httpd2/conf/sites-available/roznica.conf
командой a2ensite сделаем ссылку на только что созданный конфиг в /etc/httpd2/conf/sites-enabled:
a2ensite roznica
3) опубликуем базу roznica на веб-сервере с помощью webinst:
/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir roznica -dir /var/www/1c_base/roznica -connstr «Srvr=server1C.moj_domen.local;Ref=roznica;» -confpath /etc/httpd2/conf/sites-available/roznica.conf
В ответ будет: sh: httpd: команда не найдена (т.к. webinst ищет httpd а не httpd2, но это не критично) и Публикация выполнена
В результате запуска webinst появится файл /var/www/1c_base/roznica/default.vrd и заполнится файл /etc/httpd2/conf/sites-available/roznica.conf. В нём будет следующее:
LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap22.so»
# 1c publication
Alias «/roznica» «/var/www/1c_base/roznica/»
<Directory «/var/www/1c_base/roznica/»>
AllowOverride All
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor «/var/www/1c_base/roznica/default.vrd»
</Directory>
4) перезапустим апач: service httpd2 restart
5) Файл default.vrd имеет права 640. Надо дать доступ на чтение всем:
chmod 644 /var/www/1c_base/roznica/default.vrd
После этого база roznica доступна в обозревателе по адресу:
http://server1C.moj_domen.local/roznica
Если мы хотим работать с 1с не только из локальной сети, но и из интернета, то канал связи надо шифровать, т.е. работать по https а не по http. Для этого нужен сертификат. Можно использовать только сертификат веб-сервера. Канал будет шифрованным. Но чтобы быть уверенными, что к базе 1с из интернета смогут подключиться только нужные нам пользователи, надо вместе с сертификатом веб-сервера использовать и сертификаты клиентов.
Создадим сертификаты с помощью EasyRSA2 из состава OpenVPN: установим на клиентский ПК с Windows программу OpenVPN, но не всю, а только EasyRSA2. И установим не на диск C: а в любое другое место.
— для начала редактируем EasyRSA2vars.bat. Параметры страны, почты и т.д. заполняем любыми данными, какими хотим. Значения CN пока оставляем как есть:
set KEY_COUNTRY=RU
set KEY_PROVINCE=.
set KEY_CITY=Gorod
set KEY_ORG=Organizacija
set KEY_EMAIL=info@organizacija.com
set KEY_CN=changeme
set KEY_NAME=.
set KEY_OU=.
set PKCS11_MODULE_PATH=neznaju
set PKCS11_PIN=krutojparol
— затем в build-ca.bat и build-key-pkcs12.bat убираем параметр -nodes.
— идем в командную строку и запускаем последовательно нижеуказанные команды:
vars
clean-all
vars
build-ca (это мы создаём Центр Сертификации, с паролем на его закрытый ключ)
vars
build-key-server server1C.domain.ru (это мы создаём сертификат веб-сервера, без пароля на закрытый ключ)
vars
build-key-pkcs12 1c-user (это мы создаём сертификат клиента, с паролем на его закрытый ключ)
При этом придумываем и вводим имена CN (Common Name):
CN для Центра Сертификации (CA) — 1c-ca
CN для веб-сервера — тут ставим DNS-имя нашего веб-сервера, как он будет виден из интернета, когда мы пробросим на него порт 443 (https) — server1C.domain.ru
CN для клиента — 1c-user
На запрос параметров set KEY_COUNTRY и всех ниже, нажимаем Enter, кроме CN.
При соответствующих запросах придумываем пароли:
Enter PEM pass phrase: — это будет пароль на файл закрытого ключа .key
Enter Export Password: — это будет пароль на файл 1c-user.p12. Этот пароль мы дадим пользователю вместе с файлом 1c-user.p12
На вопрос A challenge password []: нажимаем Enter.
Сертификаты готовы.
Настроим веб-сервер на использование https:
установим пакет ssl:
apt-get install apache2-mod_ssl
включим модуль ssl:
a2enmod ssl
включим порт 443:
a2enport https
В /etc/httpd2/conf/ssl.key/ положим файл server1C.domain.ru.key
В /etc/httpd2/conf/ssl.srt/ положим файлы ca.crt и server1C.domain.ru.crt
права на все эти файлы поставим 600
Для работы с базой roznica и по http и по https, в файле /etc/httpd2/conf/sites-available/roznica.conf сделаем изменения:
директиву LoadModule… вынесем в начало файла, всё то идет дальше (это будет секция HTTP) обрамим тегами <VirtualHost server1C:80> … </VirtualHost>, сдублируем эту секцию ещё раз ниже, но тег сделаем <VirtualHost server1C:443> и после этого тега вставим строки:
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/httpd2/conf/ssl.crt/server1C.domain.ru.crt
SSLCertificateKeyFile /etc/httpd2/conf/ssl.key/server1C.domain.ru.key
SSLCACertificateFile /etc/httpd2/conf/ssl.crt/ca.crt
#можно отзывать сертификаты:
#SSLCARevocationFile /etc/httpd2/conf/ca.crl
#можно включать проверку сертификата клиента:
SSLVerifyClient require
…
Это будет секция HTTPS
Перезапустим апач: service httpd2 restart
Теперь мы пробросим 443 порт снаружи на свой веб-сервер и попробуем войти по https из интернета:
https://server1C.domain.ru/roznica
или, если проброшен нестандартный порт 12345:
https://server1C.domain.ru:12345/roznica
Если мы не включили проверку сертификата клиента «SSLVerifyClient require», то канал будет шифроваться и 1с будет работать.
Если же мы включили проверку сертификата клиента «SSLVerifyClient require», то при попытке входа по https без клиентского сертификата будет выдана ошибка: «Ваш сертификат отклонен сайтом server1C.domain.ru или не был выдан.» Нужно вначале импортировать себе клиентский сертификат 1c-user.p12.
В обоих случаях обозреватель будет сообщать, что сертификат сервера не правильный. Происходит это от того, что сертификаты мы сделали себе сами (самоподписанные сертификаты) и наш обозреватель ничего о них не знает.
Я совсем зелёный 1С-программист. Недавно вступил в должность. От прошлого админа мне в наследство остался свежеустановленый терминальный сервер (Win2003server, Citrix Metaframe Presentation Server) с 1С на борту. Проблема в том, что периодически у юзеров отваливается сеанс, а в event-логах появляется сообщение «Ошибка приложения 1cv7s.exe, версия 7.70.0.23, модуль Moxel.dll, версия 7.70.0.23, адрес 0x0003cc7a». Так же иногда ругается на библиотеку mfc42. Помогите, а то помру.
Проверь, ломаная 1С или нет. Почему помрешь?
(воровато озираясь) Ну дык я ей того, sabel’кой яичко снёс А помру потому, что у меня некоторые внешние филиалы, из-за постояных багов на протяжении последней недели, находятся на грани истерики и скоро приедут в центральный офис… ко мне… убивать :((
Вот интересно, а главврачом в больнице могут назначить «человека с улицы»?
Ну вот, добивайте меня. До меня во многом хуже было, кстати.
427, ни первый нах! ЫЫЫЫЫ
Windows & 1C — MustDIE сноси их нах… разноси по всем тачкам линух… пускай консоль изучают… а ты быстро снасилуй учетную прогу… желательно тоже консольную… и через полгода будет тебе счастие
да, парень, вляпался ты… по самое не хочу… Ибо ошибка Moxel.dll просто так не лечится…
Сервер перезагружал? 1С переустанавливал?
skunk, ага, сейчас только директора зомбировать закончу…
Фокусник, издеваешься? Последний нештатный ребут вызвал в фирме массовый падёж скота. У некоторых даже климакс преждевременно наступил, по моему
Разумеется штатно перезагружай. Пользователей в терминале сколько? Уж час-то выделить можно на благое дело
427 — лечится всё… Первое, установи 1С (SQL) по новой, желательно саблей ей не чикать ничего, найди способ лечения лицензионных проблем (лучший способ преобрести лицензии через франчайзи (вместе с ключами защиты)), если есть проблеммы с ошибками — пробуй последний релиз Саурона — он устраняет ошибки под 23 релиз SQL — просто пальчики оближеш, только не пользуйся функциями удаления защиты — это незаконно, зато сможеш устранить некоторые ошибки Удачи…
Фокусник, в среднем 15 соединений в еденицу времени. Думаешь поможет?
Mnemonik, рад бы SQL’ную версию поднять, но с этим траблы есть. Не судьба.
Какие траблы? Дело не в том как она работает (SQL или DBF), а в комплекте установки — а так работайсебе в файловом вариантне но из под SQL версии — не это важно!
продвигаешь франчайзи?
Фокусник, получил. Спасибо
Mnemonik, хммм… И тебе спасибо.
vS: Нет — притворяюсь добропорядочным 12345: Ну зачем так прямо — кто захочет тот найдет или спросит где найти!
Тэги:
Комментарии доступны только авторизированным пользователям
7
ответов
Там рядом компоненты лежат их надо установить
Evgeny Morozov
Там рядом компоненты лежат их надо установить
«Технология внешних компонент» которое на releases.1c именуется?
Evgeny Morozov
В дистрибутиве обычно
Что из этого «В дистрибутиве» является необходимым для moxel?
Alex Tkachuk
Что из этого «В дистрибутиве» является необходимым…
Не не рядом с дистрибутивом будет папочка в ней лежат компоненты которые требует дистрибутив. А в меню только внутренние компоненты.
Может быть от дистра Linux зависит? Какой дистр и версия?
Иван
Может быть от дистра Linux зависит? Какой дистр и …
CentOS 8, 4.18.0-240.1.1.el8_3.x86_64 у сервера
Содержание
- Ошибка соединения с рабочим процессом. Ошибка загрузки компоненты moxel
- падает клиент с ошибкой moxel.dll
- Ошибка в модуле moxel.dll, 1С-ка вылетает, помогите!
- Типичный Админ
- Настройка сервера 1С 8.3.20 на CentOS 9
- Этап 1. Установка ОС и общая подготовка.
- Этап 2. Сборка PostgreSQL и установка 1C.
- Этап 3. Установка HASP, решение проблем, настройка вэб-доступа.
- Этап 4. Настройка прозрачной авторизации пользователей через kerberos.
- Этап 5. Настройка резервного копирования баз.
Попал в аналогичную ситуацию с платформой 8.3.19 на сервере с Oracle Linux. Решение из этой темы не помогло. Поставил gtk3 безрезультатно.
Решил об этом написать сюда, потому что эта страница гуглится легко, а правильное решение в моей ситуации выгуглить оказалось сложнее. Надеюсь, что помогу тем, кто столкнётся с такой же проблемой.
Попал в аналогичную ситуацию с платформой 8.3.19 на сервере с Oracle Linux. Решение из этой темы не помогло. Поставил gtk3 безрезультатно.
Решил об этом написать сюда, потому что эта страница гуглится легко, а правильное решение в моей ситуации выгуглить оказалось сложнее. Надеюсь, что помогу тем, кто столкнётся с такой же проблемой.
(7)
Помогло именно это решение. После обновления на сервере CentOS платформы с версии 8.3.18. на 8.3.19. при попытке войти в опубликованную на web-сервере базу стало появляться сообщение о отсутствии компоненты moxel.
По Вашей ссылке прочитал:
— Начиная с версии 1с 8.3.19, на сервере нужен пакет liblcms2, иначе при попытке входа в базу у клиента будет ошибка «Ошибка загрузки компоненты moxel»
После установки на CentOS lcms2 ( yum install lcms2 ) все заработало. Благодаря Вашему ответу сэкономил много времени. Большое спасибо.
(7) У меня и 8.3.18.1741 потребовала установить lcms2.
Без неё выдавало ошибку «error loading component moxel»
На windows server + postgres была такая же ошибка на 8.3.19.1417, по совету 1с поставил 8.3.20.1674 и проблема исчезла.
Сейчас столкнулся с такой же ситуацией на другом сервере (windows) и 8.3.20.1710. Пока не решил
Сервеная платформа : 1C Предприятие x86-64 (8.3.18.1957) Платформа
Сервер на Ubuntu 14.04.1
Такая же ошибка
«Ошибка соединения с рабочим процессом. Ошибка загрузки компоненты moxel».
В итоге что ставить, не совсем пойму:
sudo apt-get update
apt-get install liblcms2-2:i386
sudo apt-get update
sudo apt-get install liblcms2-dev
sudo apt-get update
sudo apt-get install libgtk-3-dev
При этом, до этого стояла платформа 8.3.18.1902 — таковой проблемы не наблюдалось.
Спасибо
Источник
падает клиент с ошибкой moxel.dll
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
1С:Предприятие 8.3 (8.3.6.2014)
Управление торговлей и взаимоотношениями с клиентами (CRM), редакция 2.0 (2.0.11.5)
на части клиентов падает клиент с ошибкой moxel.dll
у одного пользователя вылечилось отключением и включением CRM, у другого неполучается, клиент запускается только при отключенном модуле CRM или в веб-интерфейсе
Принтеры удалял, антивирус отключал — не помогает, похоже ошибка
Данный вопрос решается в рамках линии консультации продукта. Для его оперативного решения следует обратиться на линию технической поддержки пользователей по адресу crm@rarus.ru, обязательно указав в письме:
— регистрационный номер ПП 1C:CRM;
— название организации, на которую оформлен продукт;
— ссылку на ветку форума,
— скриншот ошибки,
— порядок действий для воспроизведения.
Данный вопрос решается в рамках линии консультации продукта. Для его оперативного решения следует обратиться на линию технической поддержки пользователей по адресу crm@rarus.ru, обязательно указав в письме:
— регистрационный номер ПП 1C:CRM;
— название организации, на которую оформлен продукт;
— ссылку на ветку форума,
— скриншот ошибки,
— порядок действий для воспроизведения.
Цитата |
---|
Алексей Полубенский пишет: Переслал вопрос в отдел системной разработки защиты. |
В настоящий момент клиент, у которого эта проблема возникала, перевел рабочее место сотрудника, у которого была такая проблема, из локального запуска в тонком клиенте на терминальный доступ, где запуск проходит нормально. Предоставлять проблемный компьютер клиент пока не готов в связи с высоким сезоном.
Аварийное завершение происходит при запуске программы после выбора пользователя и ввода пароля, когда, возможно, происходит инициализация форм, разрешенных только CRM..
Подобное поведение наблюдалось ранее (давно, не в CRM) при работе драйверов некоторых видеокарт и принтеров. Но в данном случае вылезло после обновления на последний релиз.
Источник
Ошибка в модуле moxel.dll, 1С-ка вылетает, помогите!
Началось пару дней назад, до этого года три не слуху не духу. Ни чего не обновляли, конфа рарус «Управление автотранспортом». Версия конфы древняя 2009, соответсвенно и платформа тоже, т.к. если обновить платформу на более свежую, почему то начинаются тормоза, диспетчера жаловаться начинают, то виснет при отмене проведения, то еще что..
Винда пишет такое:
———————————————————————-
Имя сбойного приложения: 1cv8.exe, версия: 8.2.18.104, метка времени: 0x51c1b653
Имя сбойного модуля: moxel.dll, версия: 8.2.18.104, метка времени: 0x51c1af13
Код исключения: 0xc0000005
Смещение ошибки: 0x000cf994
Идентификатор сбойного процесса: 0x484
Время запуска сбойного приложения: 0x01d01fee37f3e108
Путь сбойного приложения: C:Program Files (x86)1cv828.2.18.104bin1cv8.exe
Путь сбойного модуля: C:Program Files (x86)1cv828.2.18.104binmoxel.dll
Идентификатор отчета: 07a1b026-8be5-11e4-93fa-08606eedb4b8
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:
———————————————————————
Может было к кого?
(1) вот этого пока не знаю, смотрю счас по логам, ошибка тянется уже как пол года, с периодичностью в 2 недели или реже, по разному и обратил внимания, что не только moxel.dll, но и был сбой в модулях wbase82.dll, backbas.dll.
Возможно при печати, ибо недавно была проблема с принтером и сис. админ, что то там наладил, но эта ошибка тянется как я уже писал с июня месяца, как сервак поставили. Принтер подключен по сети к терминалке от клиентского компа.
Короче говоря, это терминальный сервер на WIn 2012, с лицензией и всем подобным.
Источник
Типичный Админ
Настройка сервера 1С 8.3.20 на CentOS 9
Вообще, про настройку сервера 1С на Линуксе я уже писал:
Но та статья уже весьма устарела. Та ещё про версию 8.2. А здесь я хочу попробовать настроить сервер 1С на свежей платформе 8.3.20.1674, установленной на свежую CentOS 9. На момент написания статьи это самые свежие версии ОС и 1С. PostgreSQL будет версии 13.4-6.1C — это тоже самая свежая версия, доступная на портале 1С на момент написания статьи.
Этап 1. Установка ОС и общая подготовка.
Начну с установки CentOS. Скачиваю образ с оф.сайта:
Перехожу к установке. На первом шаге выбираю язык:
На следующем шаге предлагается обозначить разные параметры и источники:
Начну по порядку. Меню «Клавиатура» не трогаю , там всё и так нормально. «Источник установки» тоже не трогаю . Захожу в меню «Место установки» , там указываю диск, на который будет ставиться система и выбираю собственное разбиение, затем жму «Готово» :
Мне открывается следующее окно. Там, я удаляю все имеющиеся разделы, если таковые есть. Просто выделяю раздел и жму на кнопку с минусом:
Затем выбираю «Стандартный раздел» и жму «создать автоматически»:
И установщик по умолчанию предлагает разбиение диска вот такое:
Меня так не устраивает. Отдельный раздел под /home мне не нужен, удаляю его. Потом увеличиваю размер корневого раздела. В итоге имею такие разделы:
Жму «Готово», затем «Применить изменения».
Вообще, если по уму, то PostgreSQL надо ставить отдельный диск (либо дисковый массив). А также, у 1С есть такая штука, как журнал регистрации, который, по умолчанию, находится в домашней директории системного пользователя 1С (в Линуксе это usr1cv8). Так вот под журнал регистрации желательно тоже выделить отдельный диск. Я обычно под весь домашний каталог пользователя usr1cv8 выделяю. Но сейчас сервер тестовый, поэтому всё будет на одном диске находиться.
После разметки диска, установщик меня возвращает в основное меню. Там «Языковую поддержку» я не трогаю. Перехожу в «Выбор программ». Там выбираю Minimal Install и ставлю крыж Standard, затем жму «Готово»:
После чего меня снова возвращает в основное меню. На очереди у меня KDUMP — его отключаю. Для диагностики и анализа причин сбоев ядра разработчиками компании RedHat был разработан специализированный инструмент — kdump. Можно и не отключать конечно. Но я отключу.
Следующим будет «Дата и время» — там всё понятно. «Имя сети и узла» — там прописываю сетевое имя сервера и статический IP-адрес:
DNS-сервером указал контроллер домена Active Directory. После применения всех настроек снова возвращаюсь в основное меню. «Securuty Profile» не трогаю . Осталось только задать «Пароль root» . Там ставлю галку, чтобы можно было рутом заходить по SSH:
Вообще, доступ по SSH для рута не рекомендуется открывать. Рекомендуется по SSH заходить обычным бесправным пользователем, а уже потом повышать его до рута командой «su». Но для тестовой настройки можно и так.
После задания всех параметров, станет активной кнопка «Начать установку». Жму её.
Когда установка закончится, установщик попросит перезагрузить сервер.
Подключаюсь к серверу через SSH по заданному IP-адресу при установке. Сразу ставлю компоненты для комфортной работы:
Не забываю про webmin:
Возможно, кстати, что Вэбмин и не пригодится, но я его всегда ставлю.
После этого, нужно обновить систему:
Когда обновление завершится, то перезагружать систему не спешу. Сразу же надо отключить SELinux. Нахожу файл /etc/selinux/config и в нём заменяю строчку:
Также, выполняю команду:
И вот после этого перезагружаю систему.
Этап 2. Сборка PostgreSQL и установка 1C.
Начну с PostgreSQL. На портале 1С выложены уже готовые rpm-пакеты для установки. Насколько я понимаю, эти пакеты собраны универсально под все rpm-дистрибутивы Линукса. Можно попробовать поставить их. Но, как и в статье про настройку сервера 1С 8.2, я пойду путём сборки пакетов из src.rpm. На портале 1С скачиваю вот этот архив с патчем:
Загружаю этот файл на сервер через Webmin:
В этом архиве меня интересует файл postgresql13-1c-13.4-6.el7.src.rpm . Извлекаю его куда-нибудь, например в каталог /home/distrib. Затем устанавливаю все (почти все) необходимые пакеты для сборки:
Для сборки ещё не хватает пакета pgdg-srpm-macros. Но проблема в том, что его нет в репозитории. Его я скачаю и установлю со стороннего ресурса:
Перезагружу сервер на всякий случай. Слишком много пакетов установилось по зависимостям, возможна их некорректная работа. После этого пробую запустить сборку PosgreSQL:
Оговорюсь, что данную команду выполнял, находясь в каталоге с файлом postgresql13-1c-13.4-6.el7.src.rpm. На моё удивление, сборка прошла с первого раза. Помню, сколько ошибок словил при сборке postgresql-9.0.3-3.1C под Fedora 16, когда настраивал сервер 1С 8.2.
Итак, в каталоге /root/rpmbuild/RPMS/x86_64 наблюдаю следующий список файлов:
postgresql13-1c-13.4-6.el9.x86_64.rpm
postgresql13-1c-contrib-13.4-6.el9.x86_64.rpm
postgresql13-1c-contrib-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-debugsource-13.4-6.el9.x86_64.rpm
postgresql13-1c-devel-13.4-6.el9.x86_64.rpm
postgresql13-1c-devel-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-docs-13.4-6.el9.x86_64.rpm
postgresql13-1c-libs-13.4-6.el9.x86_64.rpm
postgresql13-1c-libs-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-llvmjit-13.4-6.el9.x86_64.rpm
postgresql13-1c-llvmjit-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-plperl-13.4-6.el9.x86_64.rpm
postgresql13-1c-plperl-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-plpython3-13.4-6.el9.x86_64.rpm
postgresql13-1c-plpython3-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-pltcl-13.4-6.el9.x86_64.rpm
postgresql13-1c-pltcl-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-server-13.4-6.el9.x86_64.rpm
postgresql13-1c-server-debuginfo-13.4-6.el9.x86_64.rpm
postgresql13-1c-test-13.4-6.el9.x86_64.rpm
postgresql13-1c-test-debuginfo-13.4-6.el9.x86_64.rpm
Копирую их куда-нибудь в отдельное место. И, находясь в этом месте, даю команду:
PostgreSQL установил. Теперь мне надо сделать так, чтобы база PostgreSQL создалась в нужном мне каталоге. Пусть это будет /postgresql. Создам его и назначу права:
По уму, к этому каталогу должен быть примонтирован отдельный диск. Далее нахожу файл /usr/lib/systemd/system/postgresql-13.service. В нём меня интересует строка:
Её надо заменить на:
Далее выполняю команду инициализации новой базы данных:
Должно выйти сообщение:
А в каталоге /postgresql появятся файлы базы данных:
Теперь мне надо оптимизировать PostgreSQL под свой сервер. В моём случае, это AMD FX 8350 с 16gb ОЗУ и SSD диском. Использую рекомендации, написанные в ИТС:
Надо заметить, в этой статье, судя по всему, подразумевается, что PostgreSQL стоит на выделенном сервере. У меня же на одной машине и PostgreSQL и 1С. Поэтому я буду немного отклоняться от значений, описанных по ссылке выше, в сторону меньших, чтобы для 1С тоже оставались ресурсы. Нахожу файл /postgresql/postgresql.conf. Ниже приведу только те параметры, которые я изменил:
Закончив редактировать конфиг пробую запустить демона PostgreSQL:
И смотрю, что там в логе /var/log/messages :
Всё в порядке, PostgreSQL запустился.
Сразу установлю пароль на пользователя postgres:
Что ж, теперь надо установить 1С. Перехожу на портал и скачиваю свежую платформу:
У меня скачался файл server64_8_3_20_1674.tar.gz. Переношу его на сервер и распаковываю его содержимое в какой-нибудь каталог. Среди распакованных есть исполняемый файл setup-full-8.3.20.1674-x86_64.run. Пробую его запустить. Предлагается выбрать язык:
Мой язык 16-ый из этого списка. Далее мне предлагается выбрать компоненты. Мне нужен только сервер и модуль расширения web-сервера:
Ну и дожидаюсь окончания установки:
Установилась 1С в каталог /opt/1cv8. Также наблюдаю каталог системного пользователя 1С /home/usr1cv8. По уму, к этому каталогу должен быть примонтирован отдельный диск, т.к. внутри будет журнал регистрации 1С. В каталоге /opt/1cv8/x86_64/8.3.20.1674 нахожу скрипт srv1cv83. Его надо скопировать в каталог /etc/rc.d/init.d. Затем пробую стартануть демона:
И получаю ошибку:
При этом 1С-овские процессы запустились, в системном мониторе отображается множество процессов /opt/1cv8/x86_64/8.3.20.1674/rmngr. Хорошо, пробую остановить демона:
Получаю вот такой ответ:
И процессы /opt/1cv8/x86_64/8.3.20.1674/rmngr никуда, при этом, не деваются. А решение данной проблемы очень простое: в файл /etc/hosts надо добавить запись:
И перезагрузить сервер. После этого демон srv1cv83 будет стартовать и останавливаться нормально.
Ещё, в каталоге /opt/1cv8/x86_64/8.3.20.1674 есть файл srv1cv83.conf. Его надо скопировать в каталог /etc/sysconfig, переименовав в просто «srv1cv83». Вобщем, надо чтобы имена файлов совпадали — скрипта /etc/rc.d/init.d/ srv1cv83 и конфига /etc/sysconfig/srv1cv83.
Перед тем, как подключиться к серверу 1С откуда-либо, надо для него создать DNS-запись. Напомню, что у меня в сети есть контроллер домен AD.
Помимо этого, не забываю, что на CentOS включен фаервол под названием Firewalld. Для начала открываю порт 10000, чтобы к CentOS можно было подключиться через Webmin:
Затем уже через Webmin захожу и прописываю в Firewalld все необходимые порты, которые надо открыть:
Далее, нахожу файл /postgresql/pg_hba.conf . В нём нахожу строчку:
Это для того, чтобы можно было подключаться к PostgreSQL через сокет, а не через сетевой стек. Не забываю перезапустить PostgreSQL после этого:
И не забываю PostgreSQL и 1С поставить в автозапуск:
Теперь пробую с какой-нибудь клиентской машины подключиться через консоль:
Ввожу имя сервера 1С «1c-serv.local.typical-admin.ru»:
Всё, подключиться получилось:
Теперь пробую создать базу:
Обращаю внимание, что вместо адреса сервера PostgreSQL я ввёл путь к каталогу с сокетом PostgreSQL, поскольку сервер приложений 1С и PostgreSQL находятся на одной машине. Жму ОК, и тут получаю ошибку: « Ошибка соединения с рабочим процессом. Ошибка загрузки компоненты: moxel ». Эта проблема решается установкой пакета lcms2 :
После этого база успешно создастся.
Этап 3. Установка HASP, решение проблем, настройка вэб-доступа.
Пробую зайти в созданную базу и получаю пред упреждение об отсутствии лицензии.
Значит надо поставить HASP-драйвер и вставить ключи. Скачиваю пакеты с сайта https://download.etersoft.ru/ :
Потом ставлю сперва пакет, который потребуется по зависимостям:
И уже потом ставлю скачанные два пакета HASP-драйверов:
Получаю вот такой лог об успешной установке:
Чтобы система корректно увидела ключ, надо перезагрузить сервер, но пока не буду это делать. Сразу же подправлю конфиг /etc/haspd/hasplm.conf . Добавлю в него строчку:
Именно в этой строчке перечисляются сети и хосты, которые смогут видеть HASP-ключ. Также, нужно помнить про фаервол:
Пробую зайти в созданную базу и получаю предупреждение:
« На сервере отсутствуют шрифты из состава Microsoft Core»
И вроде как р ешение тут:
Но… Если попробовать установить зависимости, указанные на этом сайте, то ждёт разочарование:
В репозиториях CentOS 9 (да и в CentOS пакета xorg-x11-font-utils нет. Да и вообще, его нет для этих систем. Я не нашёл. Пришлось выкручиваться путём пересборки этого пакета из src.rpm от CentOS 7. А тот, в свою очередь, для сборки потребовал ещё несколько пакетов, среди которых опять был один отсутствующий в CentOS — его уже пришлось пересобирать из src.rpm от Федоры. Все эти процессы сборки я описывать не буду, а просто выложу готовые недостающие пакеты для CentOS 9:
Туда же положил и сам пакет msttcore-fonts-installer-2.6-1.noarch.rpm, чтобы всё в одном месте было. Итого, потребуется скачать файлы: l ibXfont-1.5.4-10.el9.x86_64.rpm , xorg-x11-font-utils-7.5-21.el9.x86_64.rpm и msttcore-fonts-installer-2.6-1.noarch.rpm . Ставлю сначала зависимости, имеющиеся в репозиториях:
Затем устанавливаю три скачанных файла:
Пакет msttcore-fonts-installer-2.6-1.noarch.rpm, на самом деле, просто подгружает шрифты со стороннего ресурса и кладёт их в каталог /usr/share/fonts/msttcore . Т.е. теоретически, их можно было и вручную откуда-нибудь скачать и положить в этот каталог. Предупреждение о шрифтах после этого не выходит.
Но, во избежание дальнейших подобных проблем, сразу посмотрю, какие ещё системные компоненты могут потребоваться для 1С. На оф.сайте есть табличка:
Там вижу, что требуется: ImageMagick, Fontconfig, FreeType, Libgsf, Glib, UnixOdbc и Kerberos .
Что касается ImageMagick , то по его установке на CentOS 9 у меня есть отдельная заметка:
Устанавливаю ImageMagick по своей же инструкции. С остальными пакетами проще, они есть в репозиториях. Причём некоторые уже наверняка стоят. Но если что-то отсутствует, то эта команда исправит:
Ну и после этого, пожалуй, стоит перезагрузить сервер.
Теперь надо попробовать дать вэб-доступ какой-нибудь базе 1с. Для начала, ставлю apache:
И, на всякий случай, если система сама не включила его в автозагрузку, выполняю команду:
Далее, надо определиться, где будет располагаться файл веб-интерфейса. Для каждой базы надо делать свой такой каталог. Файл вэб-интерфайса к моей базе будет располагаться вот тут:
Затем перехожу в каталог /opt/1cv8/x86_64/8.3.20.1674 и, находясь в нём, выполняю команду:
-wsdir – имя алиаса, используемого на веб-сервере для соединения с базой. В последствии будет обращение к ней в браузере http://адрес.сервера/mytest
-dir – директория где будет располагаться файл web-интерфейса 1с (файл default.vrd)
-connStr – строка соединения с базой 1С предприятия, в которой Srvr – адрес сервера 1С предприятия, а Ref – имя базы.
-confPath – расположение конфигурационного файла web-сервера apache
Не забыть исправить права доступа к файлу default.vrd:
и открыть 80-ый порт на Firewalld:
Затем, стартую апач:
А потом пробую зайти по адресу:
http://1c-serv.local.typical-admin.ru/mytest
Где, в моём случае, 1c-serv.local.typical-admin.ru — это адрес сервера 1C предприятие, а mytest — это вышеописанный алиас в апаче. Доступ есть, всё хорошо:
Однако, это не совсем правильный доступ. Правильный доступ будет через SSL-сертификат. Но про настройку вэб-доступа через доверенный сертификат я хочу написать в отдельной статье или заметке, потому что там гораздо больше информации о получении самого сертификата. Частично я эту тему уже затрагивал в статье по настройке Zimbra 9:
Этап 4. Настройка прозрачной авторизации пользователей через kerberos.
Внимание! Я думал, что на этом этапе у меня где-то ошибка, потому что kerberos авторизация работать никак не хотела.
Путём продолжительного общения с оф.поддержкой выяснилось, что 1С официально не поддерживает CentOS 9, поэтому ничем помочь не могут.
Официально 1С поддерживает лишь CentOS 7, на которой kerberos авторизация работать должна. У меня на CentOS 7 работает один сервер 1С в продакшене. Но платформа на нём стоит 8.3.16.1814. На нём я решил проверить, работает ли kerberos-авторизация.
Оказалось, что да, работает. Поэтому данный этап проверен на CentOS 7 с 1C 8.3.16.1814. Позже, я пробовал поставить 1С 8.3.16.1814 на CentOS 9 и настроить всё точно также, как на CentOS 7. Но на CentOS 9 всё равно не заработало.
Поскольку у меня есть Active Directory, то почему бы не настроить авторизацию пользователей 1C через неё? Тем более, что 1C это поддерживает. В линуксе это делается через kerberos.
Сперва-наперво, на контроллере домена надо создать keytab-файл и пользователя, с которым он будет ассоциироваться. Пользователь – это самый обычный пользователь без каких-либо особых привилегий. Называться он будет usr1cv83, и пароль у него будет pas1cv83.
Напомню, что у меня контроллер домена на Windows server 2019. После того как создал пользователя, открываю виндовую командную строчку и делаю вот такую команду:
где параметр /crypto ALL позволяет использовать любой тип шифрования
параметр /princ usr1cv8/1c-serv.local.typical-admin.ru@LOCAL.TYPICAL-ADMIN.RU – это имя службы, с которой будет ассоциирован виндовый пользователь usr1cv83.
параметр /out C:distribusr1cv8.keytab – название keytab-файла и путь, куда его положить.
Командную строку, при этом, надо запустить с повышенными привилегиями администратора. Так у меня выглядит отработка команды:
Итак, после выполнения этой команды появится файл C:distribusr1cv8.keytab, который надо скопировать на линуховый сервер 1С в каталог /opt/1C/v8.3/x86_64. В этом каталоге 1С ищет его по умолчанию. И важно: файл должен называться usr1cv8.keytab, а никак иначе.
Если требуется, чтобы файл лежал в другом каталоге, то надо в конфиге /etc/sysconfig/srv1cv83 подправить параметр:
Где /opt/1cv8/x86_64 — это место расположения файла usr1cv8.keytab. И не забыть перезапустить демон srv1cv83 после этого.
Затем, если этого ещё не сделано, необходимо на сервере 1С установить пакет krb5-workstation:
Потом надо отредактировать конфиг /etc/krb5.conf. Приведу лишь те строчки, которые редактировал и добавлял:
Далее, надо поправить доступ к файлу usr1cv8.keytab:
Следующий шаг, который не указан в документации 1С, но который оказался очень важным. Требуется, чтобы имя сервера 1С было полным FQDN-именем, под которым он записан в домене Active Directory. И если это не так, то надо переименовать сервер. В моём случае оно было так, но вот команда, если что:
Затем надо обратить внимание на файл /etc/hosts. У меня там есть запись:
Из-за которой керберос авторизация работать не будет. Эту запись надо исправить, убрав из неё короткое имя:
Вот теперь тестирую корректность keytab-файла:
Вывод должен быть такой:
Теперь указываю керберосу, что надо использовать данный keytab-файл:
команда должна отработать без вывода каких-либо сообщений – это означает, что всё хорошо. Затем смотрю полученный билет:
вывод должен быть примерно таким:
Собственно, на этом всё. Осталось проверить, работает ли прозрачная авторизация на практике. Важным моментом является то, что в её свойствах аутентификации надо выставить крыж «выбирать автоматически»:
Далее, в свойствах пользователя 1С, надо сопоставить его с пользователем AD. Прописываться он должен вот в таком формате:
Этап 5. Настройка резервного копирования баз.
Резервное копирование я буду проводить средствами PostgreSQL. Для этого создам файлик:
Это будет довольно простой скрипт, наполняю файл таким содержимым:
/home/dumps — это локальный каталог на сервер для выгрузки дампов баз.
/home/backup — это каталог с примонтированным сетевым диском, на который и будут складываться ежедневные ночные бэкапы баз.
Сохраняю и делаю файл исполняемым:
Затем в файл /etc/crontab добавляю строчку:
Это значит, что скрипт, делающий резервные копии баз, будет запускаться каждый день в 2 часа ночи.
Если же мне потом понадобится восстановить базу из бэкапа, то действия мои будут следующие:
— Для начала, копирую бэкап в какой-нибудь локальный каталог на сервер 1С. Пусть это будет файл testbase1_04.02.22.psql.bz2.
— Затем я распаковываю этот файл командой:
И получаю тем самым файл testbase1_04.02.22.psql — это дамп базы.
— Далее, я становлюсь пользователем postgres:
И выполняю команду:
чтобы начать работать с базами через консольный клиент PostgreSQL.
— После этого мне надо сначала удалить ту базу, бэкап которой я хочу восстановить:
— Потом заново создаю пустую базу с таким же именем:
— Далее выхожу из консольного клиента:
и выхожу из пользователя postgres:
— И теперь мне надо залить дамп testbase1_04.02.22.psql в базу testbase1. Делается это вот такой командой:
Донаты принимаются на кошельки :
Yoomoney:
4100118091867315
BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna
ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F
Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV
USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F
USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV
LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo
Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7
XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr
TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY
Источник
Делюсь решением.
Для установки берём серверный дистрибутив 8(или 9)-й платформы с последними обновлениями, т.е. серверный стартер-кит с http://nightly.altlinux.org/p8/release/alt-p8-server-20181212-x86_64.iso или более поздний.
Этот дистрибутив можно бесплатно использовать в коммерческих целях.
Загружаемся.
Подготовка диска: Выберите профиль: Вручную.
Создать раздел.
Создаем swap-раздел. Если хотите, и место на дисках позволяет, можете создать раздел размером в два размера оперативной памяти. Лично я создал маленький раздел 2048 Мб. Тип раздела Linux swap.
Создать раздел.
Создаем корневой раздел. Тип раздела Linux. Отдаем ему всё остальное место. Файловая система ext4. Опции монтирования relatime.
Замечание: большое место будет занимать папка /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/ — там будут логи 1С. Если у вас недостаток места на дисках, то логи можно удалять вручную или настроить в Конфигураторе 1С «Регистрировать только ошибки», при этом логи будут гораздо меньшего размера. Можно вообще создать для /home отдельный раздел.
Даем имя и IP-адрес серверу 1С, указываем адреса своего DNS-сервера и шлюза. Не забываем на своем DNS-сервере создать прямую и обратную записи о сервере 1С.
Создаем пароль root-а. Создаем пользователя. В дальнейшем будем на сервер 1С заходить по ssh этим пользователем, а затем брать привилегии root-а командой «su -«
ОС установлена.
Заходим на сервер 1С через putty. Редактировать конфигурационные файлы будем по F4 в Midnight Commander (mc). Для полного просмотра коммандной строки, mc удобно скрывать по Ctrl+O.
Убеждаемся что брэндмауэр открыт: iptables -L -v -n : видим всё ACCEPT
Если у вас в сети прокси-сервер, то в /root/.bash_profile добавьте:
http_proxy=»http://IP-прокси:порт»
export http_proxy
и перезайдите в ОС
Обновляем ОС:
apt-get update
update-kernel -t std-def
apt-get dist-upgrade
Настраиваем синхронизацию времени.
В /etc/ntpd.conf поставим свои или общедоступные серверы времени:
server 192.168.0.х
server 192.168.0.у
или
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
Удаляем файл /etc/localtime и делаем новый, как ссылку на файл временной зоны:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В /etc/hosts запишем имя и IP-адрес сервера 1С:
127.0.0.1 server1C.moj_domen.local server1C
192.168.0.X server1C.moj_domen.local server1C
Проверяем интернационализацию:
cat /etc/sysconfig/i18n
должно быть так:
LANG=ru_RU.UTF-8
SUPPORTED=ru_RU.UTF-8
Согласно https://its.1c.ru/db/v8313doc#bookmark:cs:TI000000016
для использования некоторых возможностей сервера 1С8.3.13 и 1С8.3.14, работающего под управлением ОС Linux, может потребоваться наличие следующих библиотек:
— FreeType (в ОС уже есть libfreetype)
— Libgsf (надо ставить libgsf)
— Glib (в ОС уже есть glib2)
— unixOdbc (надо ставить unixOdbc)
— Kerberos (в ОС уже есть libkrb5)
— GSS-API Kerberos — непонятно, что за библиотека
— Microsoft Core Fonts (надо ставить fonts-ttf-ms)
— Бибиотека ImageMagick уже не нужна. При работе в ОС Linux, система использует библиотеку ImageMagick, входящую в состав дистрибутива платформы 1С а не в состав ОС, как было на 1с8.3.12.
— Для печати штрих-кодов надо в 1С взять КомпонентаПечатиШтрихкода.zip и оттуда lib1CBarCodLin64_8_4_1_1.so скопировать в /opt/1C/v8.3/x86_64.
ldd lib1CBarCodLin64_8_4_1_1.so говорит, что для него нужна libpng12.
— Начиная с версии 1с 8.3.19, на сервере нужен пакет liblcms2, иначе при попытке входа в базу у клиента будет ошибка «Ошибка загрузки компоненты moxel»
apt-get install libgsf unixODBC fonts-ttf-ms libpng12 liblcms2
Если нужно, устанавливаем менеджер лицензий для аппаратного ключа сервера 1С:
apt-get install i586-haspd
service haspd start
Проверка состояния: service haspd status
Устанавливаем postgresql 10-й версии. С ним работает платформа 1С8.3.13 и выше.
apt-get install postgresql10-1C postgresql10-1C-contrib postgresql10-1C-server
Создаём файлы базы данных и стартуем:
service postgresql initdb
service postgresql start
Автозагрузка: chkconfig postgresql on
Настройки авторизации в postgres находятся в файле /var/lib/pgsql/data/pg_hba.conf. Изначально стоит:
host all all 0.0.0.0/0 trust
т.е. во все базы с любого адреса можно входить без пароля, так и останется. Будем использовать парольную защиту из 1С, а не из postgres.
Кажется, для чего-то все-таки нужно задать пароль для пользователя postgres, хотя работаем без проверки пароля:
psql -U postgres -d template1 -c «ALTER USER postgres PASSWORD ‘пароль’»
Настройка Postgres:
Вносим изменения в файл /var/lib/pgsql/data/postgresql.conf
Пусть у нас в сервере 32Гб оперативной памяти. Считаем что postgres использует 16Гб, а остальное — 1С и ОС. В дальнейших рассчётах под RAM имеется в виду именно память остающаяся на postgres.
Учитывая советы:
— Фирмы 1С: https://its.1c.ru/db/metod8dev#content:5866:hdoc
— Алексея Васильева с онлайн утилитой pgtune: http://pgtune.leopard.in.ua/ (выбираем DB Type: Data warehouses)
— Некоторые пояснения этих настроек есть на https://postgrespro.ru/docs/postgrespro/10/config-one-c и http://www.gilev.ru/postgresql/
max_connections = 1000
1С советует разрешить на сервере 500-1000 подключений, т.к. 1С сама может их много открывать (независимо от числа пользователей?)
shared_buffers = 4GB
1С советует RAM/4
temp_buffers = 256MB
Такое постоянное значение советует 1С
work_mem = 64MB
1С советует от 32MB до 128MB, возьмем среднее
maintenance_work_mem = 2GB
1С советует от 256MB до 4GB, возьмём 2GB, как советует pgtune
effective_cache_size = 12GB
1С советует RAM — shared_buffers, т.е. 16-4=12GB, то же советует и pgtune
effective_io_concurrency = если база данных на HDD — 2, если на SDD — 100
Это число запросов, которое может одновременно обслужить дисковая система. Для HDD это число шпинделей. У 1С совет 1 для одного HDD и 2 и больше для RAID. У pgtune есть настройка для SDD, которая даёт 200. Лично я ставлю 100.
random_page_cost = для HDD — 1.7, для SDD — 1.2
1С советует 1.5-2.0 для HDD, 1.1-1.3 для SSD
autovacuum = on
Явно включим автовакуум и не будем выключать, как советует 1С
autovacuum_max_workers = 4
1С советует ядер_ЦПУ/4..2 но не меньше 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
Верхние 4 пункта так советует 1С
synchronous_commit = off
По уверению 1С значительно увеличивает производительность
checkpoint_segments не настраиваем, параметр был до 9.5 версии PgSQL
checkpoint_completion_target = 0.9
1С говорит от 0.5 до 0.9, pgtune говорит 0.9
max_wal_size = 4GB
min_wal_size = 2GB
1С говорит min_wal_size от 512MB до 4GB, max_wal_size = 2 * min_wal_size, параметры появились в PgSQL9.5
ssl = off
Явно выключим шифрование, как советует 1С
fsync = off
Т.к. у меня дисковый кеш с батарейкой и 2 БП + 2 ИБП на сервере, то выключу, хоть 1С и не советует
commit_delay = 1000
commit_siblings = 5
row_security = off
Верхние 3 пункта так советует 1С
max_files_per_process = 1000
Явно укажем, как советует 1С. Максимальное количество открытых файлов на один процесс PostreSQL. Если PostgreSQL упирается в этот лимит, он начинает открывать/закрывать файлы, что может сказываться на производительности. Лично у меня на уже работающем сервере 30 процессов postmaster. Команда lsof -u postgres | wc -l даёт 13000, т.е. на один процесс примерно 433 файла. Значит для моего случая 1000 хватит.
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
Верхние 3 пункта так советует 1С
plantuner.fix_empty_table = ‘on’
online_analyze.table_type = ‘temporary’
online_analyze.verbose = off
Верхние 3 пункта так советует 1С для расширений plantuner и online_analyze. 1-й из них пункт просто добавляем.
shared_preload_libraries = ‘online_analyze, plantuner’
Явно включим эти расширения
Из pgtune следующие 5 параметров не будем настраивать, т.к. их нет в рекомендациях 1С:
wal_buffers = 16MB
default_statistics_target = 500
max_worker_processes = 8
max_parallel_workers_per_gather = 4
max_parallel_workers = 8
после этого service postgresql restart
Устанавливаем х64 сервер 1c8.3.13.1809. Или х32, если у вас такой.
Скачиваем с сайта 1С «Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем», распаковываем. Все файлы .rpm в одной папке. Установка:
apt-get install *.rpm
service srv1cv83 start
Если у вас в сети прокси-сервер, то чтобы 1С подключалась к интернет (для сдачи отчетности), пользователю usr1cv8 надо добавить в .bash_profile:
http_proxy=»http://IP-прокси:порт»
export http_proxy
В принципе, уже можно работать с 1С.
Дополнение 1: перенос данных
Спойлер
Данные postgres лежат в /var/lib/pgsql/data. Желающие могут перенести их в другое место, например на SSD-диск. У меня SSD-диск монтируется в /var/ssd.
1. /etc/init.d/postgresql stop
2. Путь к базе прописан в переменной PGDATA в скрипте /etc/init.d/postgresql. Меняем путь на /var/ssd/data
3. Переносим папку /var/lib/pgsql/data в /var/ssd/data. /var/lib/pgsql остается на месте.
4. /etc/init.d/postgresql start
Дополнение 2: резервное копирование
Спойлер
Организуем резервное копирование баз данных на сетевой ресурс. В моем случае сетевой ресурс — это общая папка на сервере Windows 2003. Для получения доступа к сетям Майкрософт поставим cifs-utils:
apt-get install cifs-utils
Пароль на доступ к общей папке будем хранить в файле sambacreds:
touch /etc/sambacreds
в нём 2 строки:
username=имя
password=пароль
Оставим на него права только root-у:
chmod 600 /etc/sambacreds
Создадим в /mnt/ папку arh, к которой будем подключать общую папку Windows.
В /etc/fstab укажем:
//IP_сервера_Windows/общая_папка /mnt/arh cifs credentials=/etc/sambacreds 0 0
Создадим папку, где будут лежать скрипты для резервирования /etc/bat_ar/ и в ней скрипт sohran.sh с таким содержимым:
#!/bin/bash
pg_dump -U postgres -Fc -Z1 baza > $1/baza.arhiv
-Fc (—format=c) — выходной формат custom, только такой формат делает сжатие.
-Z, —compress=0-9 — уровень сжатия при архивации. Мне важно, чтобы быстрее сделался резерв, а не степень сжатия. При увеличении сжатия размер становится немного меньше, а время тратится значительно больше.
Расширение .arhiv — произвольное
baza — название базы в postgres-е
В /etc/cron.d/ создадим файл pg_dump с таким содержимым:
59 0 * * * root /bin/mount -a
0 1 * * 2 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv1
0 1 * * 3 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv2
0 1 * * 4 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv3
0 1 * * 5 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv4
0 1 * * 6 root /etc/bat_ar/sohran.sh /mnt/arh/arhiv5
В конце обязательно Enter
Т.е. в 1 час ночи, со вторника по субботу запускается архивация. За каждый будний день архив кладётся в свою папку arhivХ. Папки arhivХ должны существовать в общей папке на сервере Windows.
В логах /var/log/syslog/messages видно, что архивация запускается:
Jul 9 01:00:02 server1C crond[27284]: (root) CMD (/etc/bat_ar/sohran.sh /mnt/arh/arhiv5)
mount -a — это чтобы сетевой ресурс уже наверняка был бы подключен, т.к. бывает, что после пропадания и возобновления питания, сервер Windows загружается позже чем server1C и тогда подключение в fstab не срабатывает.
Дополнение3: соображения по 1С
Спойлер
Папка сервера 1С: /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/
reg_1541/ — тут лежат ID баз, в т.ч. уже удалённых. В файле 1CV8Clst.lst видно, к какой базе какой ID относится, а каких ID в этом файле нет, они лишние. Лишние можно удалить. В ID каждой базы:
1Cv8FTxt — полнотекстовый поиск
1Cv8Log — логи журнала регистраций. Если он разросся, логи можно удалить. В Конфигураторе можно журнал Сократить. Там же можно настроить не собирать лишние сведения, а только Регистрировать ошибки.
/etc/sysconfig/srv1cv83 — файл конфигурации сервера 1С
Платформа 1С обновляется простой процедурой скачивания rpm пакетов с сайта 1С, далее необходимо зайти в каталог с ними и выполнить команды:
service srv1cv83 stop
apt-get install *.rpm
service srv1cv83 start
Проверить версию платформы 1С можно командой: rpm -qa | grep 1C_Enterprise
Дополнение4: работа с 1С по http (https), т.е. через веб-клиент
Спойлер
Установим веб-сервер апач:
apt-get install apache2
chkconfig httpd2 on
service httpd2 start
Создадим папку /var/www/1c_base/
У нас на сервере 1с есть база с названием roznica. Чтобы работать с ней через веб-клиент, сделаем следующее:
1) создадим подпапку roznica в /var/www/1c_base/
2) создадим для этой базы отдельный конфиг апача в /etc/httpd2/conf/sites-available/:
touch /etc/httpd2/conf/sites-available/roznica.conf
командой a2ensite сделаем ссылку на только что созданный конфиг в /etc/httpd2/conf/sites-enabled:
a2ensite roznica
3) опубликуем базу roznica на веб-сервере с помощью webinst:
/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir roznica -dir /var/www/1c_base/roznica -connstr «Srvr=server1C.moj_domen.local;Ref=roznica;» -confpath /etc/httpd2/conf/sites-available/roznica.conf
В ответ будет: sh: httpd: команда не найдена (т.к. webinst ищет httpd а не httpd2, но это не критично) и Публикация выполнена
В результате запуска webinst появится файл /var/www/1c_base/roznica/default.vrd и заполнится файл /etc/httpd2/conf/sites-available/roznica.conf. В нём будет следующее:
LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap22.so»
# 1c publication
Alias «/roznica» «/var/www/1c_base/roznica/»
<Directory «/var/www/1c_base/roznica/»>
AllowOverride All
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor «/var/www/1c_base/roznica/default.vrd»
</Directory>
4) перезапустим апач: service httpd2 restart
5) Файл default.vrd имеет права 640. Надо дать доступ на чтение всем:
chmod 644 /var/www/1c_base/roznica/default.vrd
После этого база roznica доступна в обозревателе по адресу:
http://server1C.moj_domen.local/roznica
Если мы хотим работать с 1с не только из локальной сети, но и из интернета, то канал связи надо шифровать, т.е. работать по https а не по http. Для этого нужен сертификат. Можно использовать только сертификат веб-сервера. Канал будет шифрованным. Но чтобы быть уверенными, что к базе 1с из интернета смогут подключиться только нужные нам пользователи, надо вместе с сертификатом веб-сервера использовать и сертификаты клиентов.
Создадим сертификаты с помощью EasyRSA2 из состава OpenVPN: установим на клиентский ПК с Windows программу OpenVPN, но не всю, а только EasyRSA2. И установим не на диск C: а в любое другое место.
— для начала редактируем EasyRSA2vars.bat. Параметры страны, почты и т.д. заполняем любыми данными, какими хотим. Значения CN пока оставляем как есть:
set KEY_COUNTRY=RU
set KEY_PROVINCE=.
set KEY_CITY=Gorod
set KEY_ORG=Organizacija
set KEY_EMAIL=info@organizacija.com
set KEY_CN=changeme
set KEY_NAME=.
set KEY_OU=.
set PKCS11_MODULE_PATH=neznaju
set PKCS11_PIN=krutojparol
— затем в build-ca.bat и build-key-pkcs12.bat убираем параметр -nodes.
— идем в командную строку и запускаем последовательно нижеуказанные команды:
vars
clean-all
vars
build-ca (это мы создаём Центр Сертификации, с паролем на его закрытый ключ)
vars
build-key-server server1C.domain.ru (это мы создаём сертификат веб-сервера, без пароля на закрытый ключ)
vars
build-key-pkcs12 1c-user (это мы создаём сертификат клиента, с паролем на его закрытый ключ)
При этом придумываем и вводим имена CN (Common Name):
CN для Центра Сертификации (CA) — 1c-ca
CN для веб-сервера — тут ставим DNS-имя нашего веб-сервера, как он будет виден из интернета, когда мы пробросим на него порт 443 (https) — server1C.domain.ru
CN для клиента — 1c-user
На запрос параметров set KEY_COUNTRY и всех ниже, нажимаем Enter, кроме CN.
При соответствующих запросах придумываем пароли:
Enter PEM pass phrase: — это будет пароль на файл закрытого ключа .key
Enter Export Password: — это будет пароль на файл 1c-user.p12. Этот пароль мы дадим пользователю вместе с файлом 1c-user.p12
На вопрос A challenge password []: нажимаем Enter.
Сертификаты готовы.
Настроим веб-сервер на использование https:
установим пакет ssl:
apt-get install apache2-mod_ssl
включим модуль ssl:
a2enmod ssl
включим порт 443:
a2enport https
В /etc/httpd2/conf/ssl.key/ положим файл server1C.domain.ru.key
В /etc/httpd2/conf/ssl.srt/ положим файлы ca.crt и server1C.domain.ru.crt
права на все эти файлы поставим 600
Для работы с базой roznica и по http и по https, в файле /etc/httpd2/conf/sites-available/roznica.conf сделаем изменения:
директиву LoadModule… вынесем в начало файла, всё то идет дальше (это будет секция HTTP) обрамим тегами <VirtualHost server1C:80> … </VirtualHost>, сдублируем эту секцию ещё раз ниже, но тег сделаем <VirtualHost server1C:443> и после этого тега вставим строки:
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/httpd2/conf/ssl.crt/server1C.domain.ru.crt
SSLCertificateKeyFile /etc/httpd2/conf/ssl.key/server1C.domain.ru.key
SSLCACertificateFile /etc/httpd2/conf/ssl.crt/ca.crt
#можно отзывать сертификаты:
#SSLCARevocationFile /etc/httpd2/conf/ca.crl
#можно включать проверку сертификата клиента:
SSLVerifyClient require
…
Это будет секция HTTPS
Перезапустим апач: service httpd2 restart
Теперь мы пробросим 443 порт снаружи на свой веб-сервер и попробуем войти по https из интернета:
https://server1C.domain.ru/roznica
или, если проброшен нестандартный порт 12345:
https://server1C.domain.ru:12345/roznica
Если мы не включили проверку сертификата клиента «SSLVerifyClient require», то канал будет шифроваться и 1с будет работать.
Если же мы включили проверку сертификата клиента «SSLVerifyClient require», то при попытке входа по https без клиентского сертификата будет выдана ошибка: «Ваш сертификат отклонен сайтом server1C.domain.ru или не был выдан.» Нужно вначале импортировать себе клиентский сертификат 1c-user.p12.
В обоих случаях обозреватель будет сообщать, что сертификат сервера не правильный. Происходит это от того, что сертификаты мы сделали себе сами (самоподписанные сертификаты) и наш обозреватель ничего о них не знает.