Установка PostgreSQL 9.2.4 + 1C 8.3.4.476 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 
       postgresql-client-common_154_all.deb (вместо postgresql-client-common_140~lucid_all.deb)
       postgresql-client-9.2_9.2.4-1.1C_amd64.deb 
       postgresql-common_154_all.deb (на момент написания статьи на сайте была доступна лишь версия для lucid, которая ломает logrotate, поэтому этот пакет скачивал отдельно)!
  postgresql-contrib-9.2_9.2.4-1.1C_amd64.deb
  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@test:/mnt/1c/db$/usr/lib/postgresql/9.2/bin/initdb -D /mnt/1c/db —locale=ru_RU.UTF-8 
postgres@test:/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-476_amd64.deb
            1c-enterprise83-server_8.3.4-476_amd64.deb      
            1c-enterprise83-ws_8.3.4-476_amd64.deb
            1c-enterprise83-common-nls_8.3.4-476_amd64.deb 
            1c-enterprise83-server-nls_8.3.4-476_amd64.deb  
            1c-enterprise83-ws-nls_8.3.4-476_amd64.deb 
            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с.

 Наслаждаемся результатом:

 
Оригинал статьи на сайте: http://avcherka.blogspot.com/
 

21 Comments

  1. Andry.Boris

    Спасибо за статью…

    Reply
  2. avcherkasov

    (1) Andry.Boris, пожалуйста.

    Reply
  3. qwinter

    а что в 8.3 конфиг сервер отменили?

    Reply
  4. avcherkasov

    (3) qwinter, нет его в 8,3

    Reply
  5. bird21

    Возьмем на заметку.

    Reply
  6. madmpro

    «postgresql-common_154_all.deb (на момент написания статьи на сайте была доступна лишь версия для lucid, которая ломает logrotate, поэтому этот пакет скачивал отдельно)!»

    На каком сайте? Откуда скачивали?

    Ничего скачать не надо, ставьте пакет из стандартного репозитория

    apt-get install postgresql-common

    Там уже лежит версия 154.

    C стандартных репозиториев ругается что версия Postgres устарела и рекомендует установку версии 9.3 но ничего страшного, установка прокатит…

    Reply
  7. madmpro

    Перечитал еще раз, где установка клиента!? 😉

    Reply
  8. tishatdv

    На официальном сайте имеются патчи для postgresql. А почему вы их не используете? (строки типа

    patch -d .. -p1 <postgresql-1c-9.2.patch). Или скачиваемый с сайта 1С, postgres уже пропатчен?

    Reply
  9. leikocid

    а как обновить установленный по этой инструкции 8.3.5.1068 до 8.3.5.1119 ?

    Reply
  10. besks

    Большое спасибо

    Reply
  11. bzmax

    (9) leikocid,

    Берешь файлы дистриба

    1c-enterprise83-common_версия_разрядность.deb

    1c-enterprise83-server_версия_разрядность.deb

    1c-enterprise83-ws_версия_разрядность.deb

    Складываешь в какую нить папку, например /home/user/1c

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

    sudo dpkg -i /home/user/1c/*.deb (все само переобновится)

    !ВАЖНО! в этой папке должны быть deb-ы только необходимые для установки.

    P.S. файлы

    1c-enterprise83-common-nls_версия_разрядность.deb

    1c-enterprise83-server-nls_версия_разрядность.deb

    1c-enterprise83-ws-nls_версия_разрядность.deb

    Ставить не нужно т.к. это для поддержки русского, если дистриб линуха не имеет русскую локаль.

    Но так как таких линухов теперь почти нет. То файлы NLS — хлам, а иногда даже могут и локаль сломать.

    (Тысячу раз об этом говорил на форуме, но так никто и не запомнил)

    Reply
  12. bzmax

    (8) tishatdv,

    Начиная с версии 8.3.5 для 1С постгресс патчить не нужно.

    1с прекрасно и с оригинальным постгрессом работает.

    Reply
  13. bzmax

    Да, вот еще.

    Забыл добавить.

    На ubuntu 14.04 бесполезно ставить пакет 1c-enterprise83-ws_версия_разрядность.deb.

    Веб сервис, а также подключение к базам по HTTP все равно работать не будут.

    Т.к. веб-компонента от 1С работает с Апачем 2.2, а на данном дистрибутиве в комплекте идет Апач 2.5

    Запустить можно только в двух случаях:

    1) или даунгрейдим Апач

    2) или ждем когда 1С соизволит веб-компоненту под Апач 2.5 переделать.

    Reply
  14. Shaka13

    для чего нужен Sentinel HASP USB?

    и почему ставиться именно этот релиз 1С — 8.3.4.476?

    Reply
  15. serge_focus

    Спасибо большое за труды!

    Reply
  16. serge_focus

    Опытным путем пришел к выводу —

    Лучше устанавливать PostgreSQL , 1С 8.3 Server и Apache на разные Ubuntu Servers,

    пусть даже и на одном физическом сервере например под VMware.

    В последствии меньше вопросов с совместимостью версий и обновлениями.

    Reply
  17. DjSpike

    Вы не сталкивались с такой проблемой, невозможно перезапустить сервер:

    sudo service postgresql status
    [sudo] password for user01:
    9.2/main (port 5432): online
    user01@ServerN:~$ sudo service postgresql restart
    * Restarting PostgreSQL 9.2 database server                                     * Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 255.
    Insecure directory in $ENV{PATH} while running with -T switch at /usr/bin/pg_ctlcluster line 264.
    (does not shutdown gracefully, now stopping immediately)
    [fail]
    user01@ServerN:~$

    Показать

    Reply
  18. woozee

    Установил libicu52, но при установке postgresql-contrib он просит libicu46. Я это проигнорил, сервис запустился, вроде работает. Что надо седлать что бы при установке этого пакета он не просил версию 46 или вообще пофиг?)

    И почему именно такая последовательность установки postgresql? Ну например, для postgresql-contrib нужно что бы было установлено postgresql-9.2, а postgresql-9.2 устанавливается последним.

    Reply
  19. DjSpike

    (18) woozee,

    Для это необходимо сделать следующее:

    Распаковать архив

    # 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

    Reply
  20. nilabs

    (12) bzmax,

    Ссылка есть?

    Reply
  21. user976

    Добрый день. Выполняю в postgres команду «postgres@test:/mnt/1c/db$/usr/lib/postgresql/9.2/bin/initdb -D /mnt/1c/db —locale=ru_RU.UTF-8» Получаю в ответ «No such file or directory». директория существует и права на нее есть.. подскажите что не так?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *