1с на сервере отсутствуют шрифты
Вообще, про настройку сервера 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. Затем устанавливаю все (почти все) необходимые пакеты для сборки:
dnf -y install bison clang-devel e2fsprogs-devel flex krb5-devel libicu-devel libselinux-devel libuuid-devel libxml2-devel libxslt-devel llvm-devel openldap-devel openssl-devel pam-devel perl-generators python3-devel readline-devel systemd-devel tcl-devel zlib-devel rpm-build
Для сборки ещё не хватает пакета 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 наблюдаю следующий список файлов:
Копирую их куда-нибудь в отдельное место. И, находясь в этом месте, даю команду:
rpm -ivh postgresql13-1c-13.4-6.el9.x86_64.rpm postgresql13-1c-contrib-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-llvmjit-13.4-6.el9.x86_64.rpm postgresql13-1c-plperl-13.4-6.el9.x86_64.rpm postgresql13-1c-plpython3-13.4-6.el9.x86_64.rpm postgresql13-1c-pltcl-13.4-6.el9.x86_64.rpm postgresql13-1c-server-13.4-6.el9.x86_64.rpm postgresql13-1c-test-13.4-6.el9.x86_64.rpm postgresql13-1c-devel-13.4-6.el9.x86_64.rpm
PostgreSQL установил. Теперь мне надо сделать так, чтобы база PostgreSQL создалась в нужном мне каталоге. Пусть это будет /postgresql . Создам его и назначу права:
По уму, к этому каталогу должен быть примонтирован отдельный диск. Далее нахожу файл /usr/lib/systemd/system/postgresql-13.service . В нём меня интересует строка:
Её надо заменить на:
Далее выполняю команду инициализации новой базы данных:
А в каталоге /postgresql появятся файлы базы данных:
ls -l
итого 52
drwx------ 5 postgres postgres 41 янв 30 03:03 base
drwx------ 2 postgres postgres 4096 янв 30 03:03 global
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_commit_ts
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_dynshmem
-rw------- 1 postgres postgres 4548 янв 30 03:03 pg_hba.conf
-rw------- 1 postgres postgres 1636 янв 30 03:03 pg_ident.conf
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_log
drwx------ 4 postgres postgres 68 янв 30 03:03 pg_logical
drwx------ 4 postgres postgres 36 янв 30 03:03 pg_multixact
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_notify
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_replslot
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_serial
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_snapshots
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_stat
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_stat_tmp
drwx------ 2 postgres postgres 18 янв 30 03:03 pg_subtrans
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_tblspc
drwx------ 2 postgres postgres 6 янв 30 03:03 pg_twophase
-rw------- 1 postgres postgres 3 янв 30 03:03 PG_VERSION
drwx------ 3 postgres postgres 60 янв 30 03:03 pg_wal
drwx------ 2 postgres postgres 18 янв 30 03:03 pg_xact
-rw------- 1 postgres postgres 88 янв 30 03:03 postgresql.auto.conf
-rw------- 1 postgres postgres 28134 янв 30 03:03 postgresql.conf
Теперь мне надо оптимизировать PostgreSQL под свой сервер. В моём случае, это AMD FX 8350 с 16gb ОЗУ и SSD диском. Использую рекомендации, написанные в ИТС:
Надо заметить, в этой статье, судя по всему, подразумевается, что PostgreSQL стоит на выделенном сервере. У меня же на одной машине и PostgreSQL и 1С. Поэтому я буду немного отклоняться от значений, описанных по ссылке выше, в сторону меньших, чтобы для 1С тоже оставались ресурсы. Нахожу файл /postgresql/postgresql.conf . Ниже приведу только те параметры, которые я изменил:
Закончив редактировать конфиг пробую запустить демона PostgreSQL:
И смотрю, что там в логе /var/log/messages :
Всё в порядке, PostgreSQL запустился.
Сразу установлю пароль на пользователя postgres:
Что ж, теперь надо установить 1С. Перехожу на портал и скачиваю свежую платформу:
После установки сервера 1С на Linux у пользователей могут возникнуть проблемы при попытке подключиться к нему. Данные проблемы могут быть связаны как с настройками на сервер или клиентском компьютере, так и с настройками сетевой инфраструктуры. Рассмотри наиболее часто встречающиеся ошибки и методику поиска и исправления причин этих ошибок.
Оглавление:
Этот хост неизвестен / No such host is known
Пример полного текста ошибки:
Ошибки соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://sony2 descr=11001(0x00002AF9):
Этот хост неизвестен
line=1068 file=src\DataExchangeCommon.cpp
Ошибка при выполнении операции с информационной базой.
server_addr=tcp://1s-on-1c-1 descr=11001(0x00002AF9): No such host is known line=1068 file=src\DataExchangeCommon.cpp
Описание:
Ошибка может возникать как при работе с консолью администрирования 1С:Предприятия(добавление сервера, создание базы…), так и при запуске информационной базы.
Такая ошибка характерна, когда компьютер пользователя не обладает информацией о соответствии ip-адреса dns-имени сервера.
Решение:
Настроить DNS-адресацию или прописать адреса в файл hosts.
О том, как и почему это надо сделать — можно почитать тут Настройка DNS-адресации на сервере 1С.
В случае, если кажется, что все имена прописаны верно, необходимо:
1. Проверить еще раз. Скорее всего, где-то ошибка.
2. Сравнить, как хост прописан на самом сервере и на компьютере пользователя. Имена должны быть одинаковыми.
Часто ошибка связана с тем, указан в имени доменный суфикс или нет.
3. Проверить в консоли администрирования 1С: Предприятия — как у вас собран кластер 1С:Предприятия.
- Возможно, у вас в консоли сервера отображаются не по DNS-имени, а по IP-адресам.
- Возможно, клиент не сможет сопоставить IP-адрес DNS-имя(в случае, если сервер 1С находится в другой сети, и вы подключаетесь к кластеру напрямую).
Не правильно:
Правильно:
Необходимо удалить кластер. И собрать из консоли администрирования его заново.
Ошибки соединения с сервером 1С / рабочим процессом 1С
Описанные далее ошибки могут возникать как при работе в консоле администрирования 1С, так и при запуске информационной базы.
Методика по решению всех приведенных далее ошибок — описана в конце этого подраздела ошибок соединения с сервером / рабочим процессом.
Попытка установить соединение была безуспешной
Пример полного текста ошибки:
Ошибка соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://son1c:1541 descr=192.168.0.101:1541:
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Сервер 1С:Предпрятия не обнаружен
Пример полного текста ошибки:
Сервер 1С:Предприятия не обнаружен
Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно.
Ошибка установки соединения
Пример полного текста ошибки:
Ошибка установки соединения
Выполняется ожидание возможности запуска.
При появлении возможности, запуск будет выполнен автоматически.
Методика устранения ошибок соединения с сервером 1С
В данном случае необходимо понимать, что:
- Либо процессов нет;
- Либо не удается «увидеть» процессы в связи с отсутствием доступа;
- Либо происходит обращение по другому адресу.
1. Сначала проверим есть ли на сервере 1С в запущенные рабочие процессы rphost.
Подскажите, в каком направлении копать, чтобы уберечь глаза сотрудников от этой пакости?
Виндусовые шрифты не пытались переустановить?
По внешнему виду похоже, что происходит автоподбор из доступных системных шрифтов взамен тех, которые указаны в 1С
А в 1С указаны все-таки виндусовые.
И не забудь потом заморозить пакет, а то опять начнется.
apt-mark hold ttf-mscorefonts-installer
(1) (2) ttf-mscorefonts-installer установлен. Перепроверил, все ли шрифты он устанавливает без ошибок. Похоже что какого то шрифта нет в этом пакете.
(4) А ты так проверял?
sudo apt-get install -reinstall ttf-mscorefonts-installer
В процессе работы будет ругаться на недостающий.
(10) В том то и дело что html, но html на WebKit перевели с 8.3.14 но на Windows, на Linux как оно было так и осталось на WebKit`е.
Вот спрашивается зачем так 1С делать? И mscorefonts и то условно легально можно на Linux использовать, а Tahoma нет.
(16) Судя по качеству работы платформы под linux, 1с сожалеет о внедрении кроссплатформености и таким образом пытается избавиться от малопопулярной системы.
(18) А может и не стоит искать злой умысел там, где всегда найдетсяместо простой человеческой глупости =)
(18) Это точно, кто-то не подумал про чужие лицензии.
Можно было бы и в /etc/fonts/fonts.conf подмену сделать. Что-то мне Tahoma на Linux не нравится.
(19) глупость в том. что 1С хочет и должна работать даже там, где устанавливают сверхпараноидальные требования к безопасности. У таких Заказчиков (из числа некоторых госучреждений) установлен только линукс. И 1С им для госучреждений идет.
(21) Каковы бы ни были мотивы, я вижу боль и страдание конечных пользователей от "прекрасно" проделаной работы 1с
(21) ох если бы это было так
помню переписывался с поддержкой 1С по поводу тонкостей блокировки учеток при авторизации через домен. совершенно бесполезная переписка была
и 'линукс - там настоящая безопасность' -- ну неее. настоящая безопасность в головах админов, а не в типе ОС
(25) а причем тут реальность? Я же не оцениваю качество безопасности, а прокомментировал только один из мотивов решения о необходимости разрабатывать платформу и для линукс тоже.
И на макОсь зачем-то разрабатывают. И даже на мобильники.
(27) это у 1С-ки кривые шрифты. У них так ничего и не поменялось. Во всех остальных прогах в линухе со шрифтами проблем нет.
Теперь он вроде как есть.
Но прежде чем он появился, впороли в релизах кучку ошибок, которых на предыдущих релизах тонкого клиента не было.
Да тебе кроме дрочилова на винде ничего не нужно.
Ты во все ветки, где только линукс поминают приходишь и нудишь, что это все никому не нужно
(36) Потому что он кривой и на декстоп не годен.
Простой пример - в выходные поставил минт свежий. И консолька тупо не запускается.
(37) ну не знаю как ты умудрился
Я вот сколько раз именно линукс-минт ставил и все всегда было нормально.
Был однажды только один ноут старый как какахи мамонта, так он не то что там с консолью, там в принципе ничего не запустилось. На ноуте от хьюлета, на котором стояла винда хр хом версия вшитая через уефи.
(39) Элементарно. Вставил флешку, дальше,дальше, ребут.
А потом решил по привычке сделать apt update, а не графикой. А консоль не запускается
А что образ какой взял? Может самый самый, который в ночных сборках раздается?
Из всех вариантов линукс-минт меня устраивает именно МАТЭ
18.3 - есть комп дома именно с ней. МАТЕ 64 бит.
на нем еще и учебная версия 1С-ки последняя развернута линуксовая.
Есть на нем Ремина для работы с рдп и с впн я на нем что-то дособирал под l2tp, но пользуюсь этим не часто
- везде специально для работы с 1С на рдп-серверах заказчика и под возможными виндусовыми впн (их винда-версия оказывается критична) поставлена виртуал-бокс с виндой7стартер. Размер диска в виртуал бокс 28 гб.
Ну и внутри бокса само собой нет особых проблем.
Так вот на всех этих именно с консолью и шрифтами проблем нет.
Есть проблемы в путанице на разные релизы питона, с которым мне пришлось разбираться, чтоб установить на нем реалтаймовую программу для разработки и выполнения экспериментов по когнитивному восприятию. Но это от 1С совсем в другую сторону :-)
При настройке сервера 1С на Linux часто можно столкнуться с тем что после успешной установки и запуска службы сервера, работа с сервером тем не менее не возможна. Выражается это в том что ни пользователи, ни администратор в консоли не могут подключиться к серверу 1С.
Это может быть связано как сетевыми настройками, так и с тем, что рабочие процессы сервера либо не стартуют, либо сразу после старта могут завершать свою работу по тем или иным причинам.
Рассмотрим наиболее часто встречающиеся причины проблем с запуском/работой сервера 1С на Linux.
Оглавление
Обращаем ваше внимание, что на практике часто может встречаться так называемый «каскад» ошибок.
В этом случае – присутствует сочетание нескольких ошибок и симптоматика поведения системы может отличаться от описанной.
Rphost не запускается/сразу падает, а через некоторое время – падает ragent.
Запустим сервер 1С:Предприятия:
Видим, что rphost отсутствует:
Через непродолжительное время опять проверим статус:
Видим, что остался только rmngr:
При попытке остановить сервер:
Это говорит о том что после старта службы 1С сервера, какие-то из его процессов были завершены, и не работают на момент остановки службы.
Решение:
Проверим разрешение имен на сервере 1С – подробное описание читайте тут Установка сервера 1С Предприятие 8.3 на Linux.
В данном случае нас интересует разрешение имен именно нашего сервера, а не клиентского компьютера и не сервера/ов СУБД.
Если нашли несоответствия – исправляем.
После чего удалим «болтающиеся» процессы rmngr командой KILL. Определить их номер PID можно также с помощью команды ps –fU usr1cv8.
После чего убедимся, что процесса больше нет в списке.
И запустим сервер 1С:Предприятия:
Видим все необходимые процессы:
Не запускается сервер 1С. Нет запущенных процессов rphost, rmngr, ragent. Error: service failed to start!
Фактически это означает что сервер 1С:Предприятия не запустился.
Описание:
Запускаем сервер 1С Предприятия:
Система сообщает нам, что служба не была запущена:
При проверке статуса службы 1С сервера командой :
Проверяем работу, выводим список процессов запущенных от имени пользователя 1С сервера:
Видим, что в списке запущенных процессов нет ни ragent, ни rmngr, ни rphost.
Решение:
1. Проверить разрешение DNS-имени.
2. Проверить настройку прав доступа
1. Проверим включена ли система разграничения прав доступа SELinux. Возможно, он работает, а для 1С сервера не задана политика доступа. В этом случае из-за ограничений доступа служба 1С сервера не сможет работать. Вводим команду:
2. Если видим результат:
значит SELinux работает. Либо настраиваем политику доступа для 1С сервера, либо отключаем SELinux.
3. Отключаем SELinux командой:
4. Отредактируем файл настроек чтобы SELinux не запускался при перезапуске системы:
меняем параметр SELINUX:
5. Запускаем север 1С и проверяем его работу.
3. Проверить права на каталоги сервера 1С
В ситуациях, когда установка осуществлялась с ручным созданием/корректированием/копированием каталогов, возможны ситуации, когда некорректно были установлены права на папки сервера 1С:Предприятия.
Проверим права на каталог /home/usr1cv8 командой:
Права на каталог должны быть у пользователя сервера 1С usr1cv8:
Так же следует проверить права на каталоги внутри /home/usr1cv8/, например
Права на каталог должны также быть у пользователя сервера 1С usr1cv8, видим что это не так, скорее всего мы копировали эту папку под пользователем root:
Для исправления этой проблемы установим права на каталог/home/usr1cv8/ и все его содержимое для пользователя и группы usr1cv8:grp1cv8:
Далее, как обычно, запустим и проверим работу сервера 1С:Предприятия.
Ragent не запускается/ практически сразу падает.
После старта сервера 1С нет работающего процесса ragent, хотя процесс rmngr и rphost могут работать.
Описание:
Запускаем сервер 1С:Предприятия:
Видим, что ragent и, возможно, rphost не запущены. Попытки подключиться к серверу 1С оказываются неудачными.
Решение:
Пересоздаем конфигурацию кластера. Это можно сделать, удалив соответствующие файлы – при запуске они будут созданы заново.
1. Остановим сервер 1С:Предприятия.
2. Удалим конфигурационные файлы кластера.
Если будет присутствовать еще файл 1CV8Clsto.lst, то его также удаляем.
А лучше удалить содержимое каталога полностью:
При этом, если это сервер 1с устанавливался с настройками отличными от типовых, то путь к файлу реестра кластера будет, соответственно, отличаться.
Например, если вы устанавливали второй экземпляр сервера, то могли установить его в каталог:
Описание и расположение служебных файлов на диске можно посмотреть на ИТС в разделе «Расположение служебных файлов».
Остановим «висящие» процессы сервера 1С. Смотрим PID запущенных процессов rmngr (и возможно rphost) командой
3. Удалим «болтающиеся» процессы rmngr (и возможно rphost) командой KILL. Определить их номер PID можно также с помощью команды ps –fU usr1cv8. Например если PID=17042:
После чего убедимся, что процесса больше нет в списке.
4. Запускаем сервер 1С:Предприятия:
Система сообщает, что запуск прошел успешно:
5. Не верим системе на слово. Проверяем работу:
Видим все необходимые процессы:
Процесс rphost запускается и падает через некоторое время.
Пример полного текста ошибки:
Сервер 1С:Предприятия не обнаружен
Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно.
Описание ошибки:
После выполнения команды.
После запуска все процессы работают, что можно увидеть командой:
Но, через некоторое время процесс rphost падает, что можно увидеть при повторной проверке:
Решение:
Часто это случается из-за отсутствия свободного места на диске на сервере 1С.
Проверим использование дискового пространства командой (подрбнее о командах Linux можно почитать тут Основные команды Linux.):
Видим что свободное место закончилось. Для решения проблемы освободим место на диске или смонтируем дополнительный диск.
Еще можно посмотреть
Ошибки СУБД. 1С+PostgreSQL+Linux. Часть 2.
Ошибки публикации базы и веб сервиса на веб сервере 1C+ Apache +Linux.
Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок. Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия). В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux без […]
Установка и настройка хранилища конфигураций 1C на Linux сервере
Хранилище конфигурации 1С:Предприятия 8.3 является инструментом групповой разработки. Настраиваем сервер хранилища на Linux.
Основы работы в Linux
Основы работы в Linux. Как подключиться к серверу. Как скопировать файлы на сервер. Редактирование конфигурационных файлов.
Хранение файлов 1С в томах на nfs-шаре Linux
Пошаговая настройка варианта хранения файлов 1С Предприятия во внешнем NFS хранилище на ОС Linux
Установка сервера 1С Предприятие 8.3 на Linux
Пошаговый процесс установки 1С сервера на Linux. Подготовка Linux к установке. Инсталяция дистрибутива 1С сервера. Его настройка и запуск.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный теcт.
Введение
Ранее я уже рассказывал, как публиковать файловые базы 1С. Схема простая и рабочая, но ее можно упростить еще больше, исключив систему Windows вообще. Все, что нужно для публикации баз 1С, есть в Linux. Рассказываю подробно, как это сделать. Вот что нам понадобится для публикации 1С баз:
Собственно и все. Набор софта простой и достаточно узкий. Ничего лишнего. Отдельно не забываем про клиентские лицензии 1С. Они могут быть установлены как на сервере, так и у клиентов. В моем примере лицензии будут клиентские, так что на сервер я их устанавливать не буду. Я проверял данное решение как на аппаратных usb ключах в локальной сети, так и софтовых по одной на каждом клиенте.
Установка компонентов 1С:Предприятия на Linux
Передаем архив на сервер и распаковываем.
Нам нужно установить только следующие компоненты:
Сервер 1С предприятия установили на Centos, переходим к настройке веб сервера для публикации баз.
Настройка apache для публикации баз 1с
Нам необходимо установить непосредственно web сервер apache.
Запустите его и убедитесь, что веб сервер работает. Для этого перейдите по ip адресу сервера в браузере. Вы должны увидеть стартовую страницу apache.
Если страница не открывается, скорее всего у вас включен и не настроен firewalld. Откройте необходимые порты:
Проверяем конфигурацию apache и перезапускаем его:
У нас почти все готово к публикации баз 1С. Необходимо только установить шрифты Microsoft's Core Fonts.
Установка шрифтов Microsoft's Core Fonts в Centos
Все подготовительные действия сделали. Осталось опубликовать саму 1С базу.
Публикация баз 1С в Centos
В директории /opt/1cv8/x86_64 хранятся бинарники от установки 1С. С их помощью опубликуем файловую базу. Но перед этим нам надо скопировать сам файл с базой в какую-то директорию. Например, в /opt/1Cbase. Выставляем полные права на эту директорию и файлы в ней для веб сервера:
Так же создадим директорию для веб сервера, где будет располагаться файл для веб публикации базы:
Публикуем файловую базу:
Публикуем базу с сервера 1С:
1cbase | алиас, который нужно будет добавить к адресу сервера для доступа к этой базе |
/var/www/1Cbase | путь к публикации базы, где будет располагаться .vrd файл с описанием подключения к базе через web |
File=/opt/1Cbase; | строка подключения файловой базы |
Srvr=1CSRV;Ref=1cbase; | строка подключения серверной базы |
После этого осталось только перезапустить веб сервер и идти проверять публикацию.
Если используете клиентские лицензии на компьютерах, а не на сервере, то через браузер скорее всего получите ошибку получения лицензии. В таком случае используйте установленную платформу, подключая базу через публикацию в web.
Запустится стандартная платформа, которая без проблем найдет локальную или сетевую лицензию, если она установлена.
Error when loading component 'help'
Очень распространенная ошибка, которую вы можете получить - Error when loading component 'help'.
Ее проблема в том, что текст ошибки совершенно не информативен. Но чаще всего она связана с правами доступа к файлам с базой. У вас скорее всего не стоит владельцем файла с базой веб сервер apache. Второй вариант - работает SELinux. В контексте данной задачи я не разбирался с его настройкой, поэтому просто отключал.
Во время написания статьи как раз столкнулся с проблемой SELinux, так как не заметил, что он остался включен на тестовой машине. Все перепроверил и только потом вспомнил про него. Отключил временно в консоли и сразу все заработало:
Обновление опубликованной через web базы 1с
Подключившись к опубликованной базе через web, нет возможности обновить ее. Если у вас база на сервере 1С, то это не проблема. Просто подключаетесь толстым клиентом и делаете все, что нужно. Если у вас файловая база, настроенная по предложенному в статье способу, вам нужно будет каким-то образом подключаться к ней через толстого клиента. Проще всего это сделать напрямую, через Samba.
Подойдет любой способ ее настройки. У меня есть статья - быстрая и простая настройка samba. Можете взять подходящий вам способ аутентификации и все сделать. Далее подключаетесь к файловой базе как обычно по сети толстым клиентом и обновляете ее.
Заключение
Не забудьте в таком режиме публикации 1с баз добавить побольше памяти и процессора виртуальной машине с веб сервером. Рекомендую не менее 4CPU и 8G Ram. С каждым релизом 1С хочет все больше и больше ресурсов. Еще во время тестов заметил такую вещь, что виртуалка с 1С не запрашивала больше оперативной памяти, несмотря на то, что было включено динамическое выделение. При этом все жутко тормозило и памяти явно не хватало. Пришлось отключить динамическую память и жестко задать 8G, чтобы все зашевелилось более ли менее быстро.
Для безопасности и удобства, перед Apache можно настроить Nginx в режиме proxy_pass.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите подробнее программу ссылке.
Читайте также: