среда, 2 июля 2014 г.

Установка связки PostgreSQL 9.2.4 и 1С 8.3 на Ubuntu Server 14.04 X64

Установка связки PostgreSQL 9.2.4 и 1С 8.3 на Ubuntu Server 14.04 X64

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


Увеличиваем максимальный размер сегмента памяти до 1Гб. Для менее мощных машин устанавливают от 64Мб до половины объема ОЗУ (для теста выделим 1Gb):
# echo "kernel.shmmax=1073741824" >>/etc/sysctl.conf
# sysctl -p

Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.
# locale-gen en_US ru_RU ru_RU.UTF-8
# export LANG="ru_RU.UTF-8"

Устанавливаем необходимые зависимисти:
# apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick ttf-mscorefonts-installer unixodbc texlive-base libgfs-1.3-2

Качаем с сайта 1C необходимые пакеты Postgre 9.2.4 и устанавливаем их именно в такой последовательности:
# dpkg -i  libpq5_9.2.4-1.1C_amd64.deb
   dpkg -i  postgresql-client-common_154_all.deb (вместо postgresql-client-    common_140~lucid_all.deb)
   dpkg -i  postgresql-client-9.2_9.2.4-1.1C_amd64.deb
   dpkg -i  postgresql-common_154_all.deb (на момент написания статьи на сайте была                  доступна лишь версия для lucid, которая ломает logrotate, поэтому этот                        пакет скачивал отдельно)!
  dpkg -i   postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb
  dpkg -i   postgresql-9.2_9.2.4-1.1C_amd64.deb

Определяем местонахождение PostgreSQL:
whereis postgresql
postgresql: /etc/postgresql /usr/lib/postgresql /usr/share/postgresql

Проверяем, запущен ли сервер:
# service postgresql status
Выхлоп: 9.2/main (port 5433): online

Для удобства администрирования БД поменяем порт, на привычный нам со старых версий 5432. Для этого в файле: /etc/postgresql/9.2/main/postgresql.conf
меняем строку:
port = 5433                            # (change requires restart)
на:
port = 5432                             # (change requires restart)

Перезапускаем службу:
# service postgresql restart
* Restarting PostgreSQL 9.2 database server                                                                                                          [ OK ]

Создаем директорию для хранения БД 1С PostgreSQL:
# mkdir /mnt/1с/db/
# chown postgres:postgres /mnt/1c/db

Инициализируем БД:
# su postgres
postgres@srv1c:/mnt/1c/db$  /usr/lib/postgresql/9.2/bin/initdb -D /mnt/1c/db --locale=ru_RU.UTF-8
postgres@srv1c:/mnt/1c/db$    psql -U postgres -c "alter user postgres with password 'наш_пароль';"

При первом запуске Postgre должен проинициализироваться и запуститься. Для того, чтобы иметь возможность подключится к СУБД (не к пользователю ОС, который создается вместе с установкой Postgre, а к пользователю с правами администратора, для управления СУБД), следует задать пароль главному пользователю СУБД - postgres, для этого в файле /mnt/1c/db/pg_hba.conf найдите строку:
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
На:
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Перезапускаем службу и проверяем, запустился ли PostgreSQL:
# service postgresql restart

Вы должны получить примерно следующее сообщение:
Stopping postgresql service: DONE
Starting postgresql service: DONE

# netstat -atn|grep 5432
Если в ответ получился, вот такой выхлоп, то всё нормально:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN

На этом этапе установка PostgreSQL завершена. Приходим к установке сервера 1C 8.3.

Устанавливаем 1С:
Делаем симлинк библиотеки:
ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

Ставим все необходимые пакеты (1c берем с их офф.сайта):
dpkg -i  1c-enterprise83-common_8.3.4-482_amd64.deb
dpkg -i  1c-enterprise83-server_8.3.4-482_amd64.deb    
dpkg -i  1c-enterprise83-ws_8.3.4-482_amd64.deb
dpkg -i  1c-enterprise83-common-nls_8.3.4-482_amd64.deb
dpkg -i  1c-enterprise83-server-nls_8.3.4-482_amd64.deb
dpkg -i  1c-enterprise83-ws-nls_8.3.4-482_amd64.deb
dpkg -i   ttf2pt1_3.4.4-1.4_amd64.deb

Даем пользователям 1С сервера права на запись:
# chown -R usr1cv8:grp1cv8 /opt/1C

Перезапускаем сервер 1с:
# service srv1cv83 restart
Stopping 1C:Enterprise 8.3 server: Warning: server not running!
OK
Starting 1C:Enterprise 8.3 server: OK

Проверяем порты:
# netstat -atn |grep 0.0.0.0:15
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN

Так же можно для профилактики проверить, все ли процессы сервера запущены нормально:
ps aux|grep 1c

usr1cv8  28351  0.0  1.1 264284 22664 ?        Ssl  10:01   0:00 /opt/1C/v8.3/x86_64/ragent -daemon
usr1cv8  28354  0.3  2.0 776216 41956 ?        Sl   10:01   0:00 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host test -range 1560:1591
usr1cv8  28378  0.1  1.6 323900 34076 ?        Sl   10:01   0:00 /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost test -regport 1541 -pid f10fbd88-c9eb-11e3-0599-40618600e473
root     28439  0.0  0.0  13472   892 pts/2    S+   10:03   0:00 grep --color=auto 1c

Установка Sentinel HASP USB:

Скачиваем по ссылке deb:
http://sentinelcustomer.safenet-inc.com/sentineldownloads/?s=&c=End+User&p=Sentinel+HASP&o=Linux&t=all&l=all

Добавляем i386 архитектуру, чтобы можно было устанавливать 32 битные deb пакеты::
# dpkg --add-architecture i386
# apt-get update
Так как ia32-libs выпилили из системы, если нужен 32 битный пакет, то нужно теперь ставить после пакета префикс :i386
# apt-get install libc6:i386
# dpkg -i aksusbd_2.2-1_i386.deb

# /etc/init.d/aksusbd restart

Тушим сервер. Вставляем ключи USB. Перезапускаем сервер.
Проверить работает ли HASP-ключ можно командами:
# service aksusbd status
AKSUSB is running.
WINEHASP is running.
HASPLM is running.

Далее запускаем установленный клиент 1С Предприятие 8.3 и в нём создаём новую БД 1с.
 Наслаждаемся результатом:


во время установки застрял на этапе установки пакета: postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb - ругается на нехватку зависимых пакетов. пишет что необходим пакет libicu46 >= 4.6.1-1 но по инструкции был установлен libicu52 

решение заключается в следующем:
копируем postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb в папку на сервере, входим в нее
Распаковываем пакет:
dpkg -x postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb tmpdir
после:
dpkg -e postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb tmpdir/DEBIAN
далее открываем в текстовом редакторе файл «control»:
nano ./tmpdir/DEBIAN/control
ишем строку libicu46 (>= 1.4.6) и меняем ее на libicu52 (>= 1.4.6)
сохраняем изменения и собираем пакет обратно:
dpkg -b tmpdir postgresql-contrib-9.2_9.2.4-1.1C_amd64_fix.deb

Комментариев нет:

Отправить комментарий