DDR64.ru

Выделяем главное

Установка 1с 8.3 на CentOS 6.4 x64

Дано:
Сервер с установленной  OS CentOS 6.4 x64

Задача:
Установить сервер 1с 8.3 x64, установить и настроить СУБД PostgreSQL 9.1.2, установить HASP ключ и организовать доступ к 1с 8 через WEB интерфейс.

Решение:

Установка 1с 8.3

Перед установкой новой версии 1с 8, необходимо удалить предыдущую версию 1с 8, если она установлена.

Команда для удаления всех установленных пакетов:

# rpm  -erpm —qa|grep 1C_

Или ищем все пакеты 1С 8 и удаляем по одному:

#  rpm -qa | grep -i 1C_

Порядок установки пакетов следующий:

# rpm -ihv 1C_Enterprise83-common-8.3.3-687.x86_64.rpm
# rpm -ihv 1C_Enterprise83-common-nls-8.3.3-687.x86_64.rpm
# rpm -ihv 1C_Enterprise83-server-8.3.3-687.x86_64.rpm
# rpm -ihv 1C_Enterprise83-server-nls-8.3.3-687.x86_64.rpm
# rpm -ihv 1C_Enterprise83-ws-8.3.3-687.x86_64.rpm
# rpm -ihv 1C_Enterprise83-ws-nls-8.3.3-687.x86_64.rpm

Настроим запуск ragent, как демон.

# /opt/1C/v8.3/x86_64/ragent -daemon
# /etc/init.d/srv1cv83  start

Если необходимо будет изменить настройки портов запуска ragent (к примеру, для создания кластера), то для этого надо будет отредактировать файл /etc/sysconfig/srv1cv83
В Windows изменение портов производится в реестре.

Просмотреть  состояние ragent

# pgrep f l ragent

Посмотреть порты, которые слушает ragent:

# netstat -lnp | grep ragent

*************************************
Если после старта 1с 8.3
# service srv1cv83 start

или

# /etc/init.d/srv1cv83 start

у вас возникнет ошибка

Starting 1C:Enterprise 8.2 server: Error: service failed to start!
FAILED

То, первое на что надо обратить внимание, это посмотреть журнал ошибок системы:

# cat /var/log/messages

Если в журнале ничего не будет сказано, то просто попробуйте перегрузить систему.
Иногда может SELinux   блокировать 1с 8, тогда следующая команда как раз и разрешает доступ:

# chcon -t textrel_shlib_t ‘/opt/1C/v8.3/ x86_64/backbas.so’

Или можно вообще SELinux отключить. Открываем для редактирования файл /etc/sysconfig/selinux и задаем значение:

SELINUX=disabled

Перегружаемся! #shutdown –r now

*************************************

Ставим отсутствующие TTF-шрифты:

Создадим директорию ~/rpmbuild

# mkdir ~/rpmbuild

Устанавливаем шрифты:

# yum install rpm-build cabextract
# wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
# rpmbuild -bb msttcorefonts-2.5-1.spec
# rpm -ivh ~/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm

Следующий шаг, это надо  будет открыть порты.

Порты открываем следующие: 1540,1541,1560:1591 и 475 для получения лицензии из сети, если ключ стоит на другой машине.

# iptables -I INPUT -p tcp —dport 1540:1541  -m state —state NEW -j ACCEPT
# iptables -I INPUT -p tcp —dport 1560:1591  -m state —state NEW -j ACCEPT
# iptables -I INPUT -p tcp|udp —dport 475  -m state —state NEW -j ACCEPT

Сохраняем настройки:

# service iptables save

Ошибки

  1. При запуске службы 1с8 может возникнуть ошибка  pid file existed on server start. it can mean that last run failed. При этом сам сервер запустится, но при попытки подключиться к нему, через консоль администрирования, произойдет отказ в подключении, и остановиться служба  Ragent. Для решения данной проблемы, надо почистить две папки /tmp и /home/user1cv8
  2. Ошибка загрузки библиотеки libWand.so. Для решения этой проблемы надо установить пакет  ImageMagick.i686:

# yum install ImageMagick.i686

После этого выполняем поиск:

# find /usr/lib/ -name «libMagickWand.so*» -print

Поиск вернет что-то вроде этого

/usr/lib/libMagickWand.so.2.0.0

/usr/lib/libMagickWand.so.2

Далее необходимо создать символическую ссылку на один из этих файлов

# ln -s -T /usr/lib/libMagickWand.so.2.0.0 /usr/lib/libWand.so

После этих операций, 1с 8.3 должна запуститься.

Сборка и настройка PostgreSQL 9.1.2

Устанавливаем недостающие пакеты:

# yum install icu libicu libicu-devel rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make perl-core python-devel krb5-devel libxml2-devel libxslt-devel openldap-devel e2fsprogs-devel  tcl-devel

Скачиваем архив исходных текстов PostgreSQL 9.1 для 1С:

# wget http://v8.1c.ru/overview/postgresql_patches/9-1-2/postgresql91-9.1.2-1.1C.src.rpm

Устанавливаем полученный файл:

# rpmihv postgresql91-9.1.2-1.1C.src.rpm

Открываем файл /usr/lib/rpm/macros и вносим изменения в строку:

«%_default_patch_fuzz 0″  вместо 0 пишем 2

Создаем символические ссылки:

# ln -s /usr/lib64/libicuuc.so /usr/local/lib64/libicuuc.so.46
# ln -s /usr/lib64/libicudata.so /usr/local/lib64/libicudata.so.46
# ln -s /usr/lib64/libicui18n.so /usr/local/lib64/libicui18n.so.46

Запускаем сборку:

# rpmbuild -bb —define ‘runselftest 0’ ~/rpmbuild/SPECS/postgresql-9.1.spec

Устанавливаем полученные файлы:

# rpm -ivh ~/rpmbuild/RPMS/x86_64/postgresql91-*.rpm

При установке пакета postgresql91-contrib-9.1.2-1.1C.x86_64 возникает ошибка.

ошибка: распаковка архива не удалась на файле /usr/pgsql/lib/libicudata.so.46;4e9327cc: cpio: Digest mismatch
ошибка: postgresql91-contrib-9.1.2-1.1C.x86_64: install failed

Решение: Запускаем rpm без проверки digest и md5

rpm —nodigest —nomd5 -ihv postgresql91-contrib-9.1.2-1.1C.x86_64

Инициализируем базу данных:

# su postgres -c ‘/usr/pgsql-9.1/bin/initdb -D /var/lib/pgsql/9.1/data —locale=ru_RU.UTF-8’

В файле /var/lib/pgsql/9.1/data/postgresql.conf расскомментируем строчку

#port = 5432

Добавим в автозапуск и запустим службу PostgreSQL:

# chkconfig postgresql-9.1 on
# service postgresql-9.1 start

В файл /etc/sysconfig/iptables добавим строку как раз перед -A INPUT -j REJECT:

-A INPUT -m state —state NEW -m tcp -p tcp —dport 5432 -j ACCEPT

Задаем пароль для суперпользователя  «postgres» командой:

# psql -U postgres -c «ALTER USER postgres PASSWORD ‘mypassword'»

Перезапустим iptables

# service iptables restart

В файле /var/lib64/pgsql/9.1/data/postgresql.conf — настройки сервера. Нужно указать параметры

default_with_oid = on

Если вы хотите включить «Автоматическую сборку мусора (Automatic Vacuuming)» в БД (что полезно для слабонагруженных серверов) — то установите такие параметры:

track_counts = on
autovacuum = on

Базы хранятся /var/lib/pgsql/9.1/data/base (путь может отличаться, 9.1 может отсутствовать)

Установка ключа защиты HASP

Для работы веб клиентов с 1с8, понадобится установленный на сервере USB ключ.

Поэтому, вставляем USB ключ в компьютер, и скачиваем драйвера под hasp:

# wget http://download.etersoft.ru/pub/Etersoft/HASP/last/CentOS/6/haspd-3.3-eter5scientific.i586.rpm

# wget http://download.etersoft.ru/pub/Etersoft/HASP/last/CentOS/6/haspd-modules-3.3-eter5scientific.i586.rpm

Производим установку драйверов. В процессе установки могут возникнуть ошибки в плане отсутствия некоторых библиотек для работы с USB. Поэтому перед установкой поставим все необходимые библиотеки:

# yum install libusb.i686 libusb.x86_64 libusb1.i686 libusb1.x86_64

Устанавливаем драйвера:

# rpm -ihv  haspd-3.3-eter5scientific.i586.rpm  haspd-modules-3.3-eter5scientific.i586.rpm

Настройка доступа через WEB

В качестве веб-сервера будем использовать apache.

Переходим в каталог 1с 8:

# cd /opt/1C/v8.3/x86_64

Запускаем скрипт публикации веб доступа к базе:

# ./webinst -apache22 -wsdir mybase -dir ‘/var/www/html/mysite/’ -connStr  ‘Srvr=»mycomp.com»;Ref=»mybase»‘ -confPath /etc/httpd/conf/httpd.conf

 Srvr — имя компьютера в сети
wsdir – имя алиаса для соединения с базой в браузере (http://адрес.сервера/mysite)
dir – директория где будут располагаться файлы web-интерфейса 1с (точнее говоря один файл  default.vrd)
connStr – строка соединения с базой 1с предприятия, в которой Srvr – адрес сервера 1с предприятия, а Ref – имя базы.
confPath – расположение конфигурационного файла web-сервера apache

Устанавливаем права для apache:

# chown apache:apache /var/www/html/mysite/default.vrd

Перезапускаем apache

# service httpd restart

После этого доступ к веб версии 1с8 будет доступен по адресу http://адрес.сервера/mysite

Примечание по лицензиям:

Если у вас HASP ключ сетевой, и установлен на другой машине, то в момент подключения клиента, будет появляться  ошибка, что не найдена лицензия. Для того, чтобы сервер предприятия, установленный на Linux машине, мог выдать сетевую лицензию, необходимо сделать следующее.
Создаем папку conf в /opt/1C/v8.3/x86_64:
#mkdir /opt/1C/v8.3/x86_64/conf
 Далее, в эту папку необходимо скопировать файл nethasp.ini, взять его можно с клиентской машине, где установлен 1с клиент, или просто создать его. В этом файле, необходимо расскоментировать, если файл был скопирован с клиентской машины, или просто внести следующие строки:

 [NH_COMMON]
NH_TCPIP = Enabled                                     ; Use the TCP/IP protocol

[NH_TCPIP]
NH_SERVER_ADDR = IP компьютера           ; IP addresses of all the NetHASP
NH_PORT_NUMBER = 475                            ; Set the TCP/IP port number. This is
NH_TCPIP_METHOD = TCP                           ; Send a TCP packet or UDP packet
NH_USE_BROADCAST = Disabled                 ; Use TCPI/IP Broadcast mechanism

Может еще потребуется изменить права на файл:
#chown usr1cv8:grp1cv8 /opt/1C/v8.3/x86_64/conf/nethasp.ini

Поделиться
Оценить статью
(1 оценок, среднее: 5,00 из 5)

Добавить комментарий через VK

Добавить комментарий

Войти с помощью: