Установка PostgreSQL 9.2.4 + 1C 8.3.4.476 Ubuntu Server 14.04 X64

Опубликовал avcherkasov в раздел Администрирование - Системное

Установка связки 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/
 

См. также

PowerTools от 1 000

Лучшие комментарии

19. DjSpike 12.01.2015 15:27
(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
+ 2 [ ramir; woozee; ]
# Ответить
8. tishatdv 13.08.2014 21:55
На официальном сайте имеются патчи для postgresql. А почему вы их не используете? (строки типа
patch -d .. -p1 <postgresql-1c-9.2.patch). Или скачиваемый с сайта 1С, postgres уже пропатчен?
Ответили: (12)
+ 1 [ serg-gusev; ]
# Ответить
13. bzmax 07.11.2014 18:27
Да, вот еще.
Забыл добавить.
На ubuntu 14.04 бесполезно ставить пакет 1c-enterprise83-ws_версия_разрядность.deb.
Веб сервис, а также подключение к базам по HTTP все равно работать не будут.
Т.к. веб-компонента от 1С работает с Апачем 2.2, а на данном дистрибутиве в комплекте идет Апач 2.5

Запустить можно только в двух случаях:
1) или даунгрейдим Апач
2) или ждем когда 1С соизволит веб-компоненту под Апач 2.5 переделать.
+ 1 [ serge_focus; ]
# Ответить

Комментарии

1. Andry.Boris 30.04.2014 10:53
Спасибо за статью...
Ответили: (2)
+ 1 [ besks; ]
# Ответить
2. avcherkasov 30.04.2014 11:08
(1) Andry.Boris, пожалуйста.
# Ответить
3. qwinter 01.05.2014 12:41
а что в 8.3 конфиг сервер отменили?
Ответили: (4)
# Ответить
4. avcherkasov 05.05.2014 09:33
(3) qwinter, нет его в 8,3
# Ответить
5. bird21 07.05.2014 14:02
Возьмем на заметку.
# Ответить
6. gorodok11 29.07.2014 14:42
"postgresql-common_154_all.deb (на момент написания статьи на сайте была доступна лишь версия для lucid, которая ломает logrotate, поэтому этот пакет скачивал отдельно)!"

На каком сайте? Откуда скачивали?
Ничего скачать не надо, ставьте пакет из стандартного репозитория
apt-get install postgresql-common
Там уже лежит версия 154.
C стандартных репозиториев ругается что версия Postgres устарела и рекомендует установку версии 9.3 но ничего страшного, установка прокатит...
# Ответить
7. gorodok11 30.07.2014 17:25
Перечитал еще раз, где установка клиента!? ;)
# Ответить
8. tishatdv 13.08.2014 21:55
На официальном сайте имеются патчи для postgresql. А почему вы их не используете? (строки типа
patch -d .. -p1 <postgresql-1c-9.2.patch). Или скачиваемый с сайта 1С, postgres уже пропатчен?
Ответили: (12)
+ 1 [ serg-gusev; ]
# Ответить
9. leikocid 03.09.2014 09:01
а как обновить установленный по этой инструкции 8.3.5.1068 до 8.3.5.1119 ?
Ответили: (11)
# Ответить
10. besks 06.11.2014 11:06
Большое спасибо
# Ответить
11. bzmax 07.11.2014 18:11
(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 - хлам, а иногда даже могут и локаль сломать.
(Тысячу раз об этом говорил на форуме, но так никто и не запомнил)
# Ответить
12. bzmax 07.11.2014 18:14
(8) tishatdv,
Начиная с версии 8.3.5 для 1С постгресс патчить не нужно.
1с прекрасно и с оригинальным постгрессом работает.
Ответили: (20)
# Ответить
13. bzmax 07.11.2014 18:27
Да, вот еще.
Забыл добавить.
На ubuntu 14.04 бесполезно ставить пакет 1c-enterprise83-ws_версия_разрядность.deb.
Веб сервис, а также подключение к базам по HTTP все равно работать не будут.
Т.к. веб-компонента от 1С работает с Апачем 2.2, а на данном дистрибутиве в комплекте идет Апач 2.5

Запустить можно только в двух случаях:
1) или даунгрейдим Апач
2) или ждем когда 1С соизволит веб-компоненту под Апач 2.5 переделать.
+ 1 [ serge_focus; ]
# Ответить
14. Shaka13 09.11.2014 22:23
для чего нужен Sentinel HASP USB?
и почему ставиться именно этот релиз 1С - 8.3.4.476?
# Ответить
15. serge_focus 24.11.2014 16:05
Спасибо большое за труды!
# Ответить
16. serge_focus 24.11.2014 16:13
Опытным путем пришел к выводу -
Лучше устанавливать PostgreSQL , 1С 8.3 Server и Apache на разные Ubuntu Servers,
пусть даже и на одном физическом сервере например под VMware.
В последствии меньше вопросов с совместимостью версий и обновлениями.
# Ответить
17. DjSpike 11.01.2015 10:02
Вы не сталкивались с такой проблемой, невозможно перезапустить сервер:

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:~$
...Показать Скрыть
# Ответить
18. woozee 12.01.2015 08:00
Установил libicu52, но при установке postgresql-contrib он просит libicu46. Я это проигнорил, сервис запустился, вроде работает. Что надо седлать что бы при установке этого пакета он не просил версию 46 или вообще пофиг?)
И почему именно такая последовательность установки postgresql? Ну например, для postgresql-contrib нужно что бы было установлено postgresql-9.2, а postgresql-9.2 устанавливается последним.
Ответили: (19)
# Ответить
19. DjSpike 12.01.2015 15:27
(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
+ 2 [ ramir; woozee; ]
# Ответить
20. nilabs 10.04.2015 15:49
(12) bzmax,
Ссылка есть?
# Ответить
21. user976 11.08.2015 20:10
Добрый день. Выполняю в 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". директория существует и права на нее есть.. подскажите что не так?
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016