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

Опубликовал Andrey Cherkasov (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
Вознаграждение за ответ
Показать полностью
Комментарии
1. Андрей Краснокутский (Andry.Boris) 53 30.04.14 10:53 Сейчас в теме
2. Andrey Cherkasov (avcherkasov) 93 30.04.14 11:08 Сейчас в теме
3. Павел Алексеенко (qwinter) 493 01.05.14 12:41 Сейчас в теме
а что в 8.3 конфиг сервер отменили?
4. Andrey Cherkasov (avcherkasov) 93 05.05.14 09:33 Сейчас в теме
5. Евгений Сивов (bird21) 31 07.05.14 14:02 Сейчас в теме
6. Игорь Фрунзэ (gorodok11) 39 29.07.14 14:42 Сейчас в теме
"postgresql-common_154_all.deb (на момент написания статьи на сайте была доступна лишь версия для lucid, которая ломает logrotate, поэтому этот пакет скачивал отдельно)!"

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

Запустить можно только в двух случаях:
1) или даунгрейдим Апач
2) или ждем когда 1С соизволит веб-компоненту под Апач 2.5 переделать.
serge_focus; +1 Ответить
14. Дмитрий Ли (Shaka13) 09.11.14 22:23 Сейчас в теме
для чего нужен Sentinel HASP USB?
и почему ставиться именно этот релиз 1С - 8.3.4.476?
15. serge_focus (serge_focus) 3 24.11.14 16:05 Сейчас в теме
Спасибо большое за труды!
16. serge_focus (serge_focus) 3 24.11.14 16:13 Сейчас в теме
Опытным путем пришел к выводу -
Лучше устанавливать PostgreSQL , 1С 8.3 Server и Apache на разные Ubuntu Servers,
пусть даже и на одном физическом сервере например под VMware.
В последствии меньше вопросов с совместимостью версий и обновлениями.
17. Виктор Абросимов (DjSpike) 11.01.15 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) 45 12.01.15 08:00 Сейчас в теме
Установил libicu52, но при установке postgresql-contrib он просит libicu46. Я это проигнорил, сервис запустился, вроде работает. Что надо седлать что бы при установке этого пакета он не просил версию 46 или вообще пофиг?)
И почему именно такая последовательность установки postgresql? Ну например, для postgresql-contrib нужно что бы было установлено postgresql-9.2, а postgresql-9.2 устанавливается последним.
19. Виктор Абросимов (DjSpike) 12.01.15 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
ramir; woozee; +2 Ответить
20. Сергей Петухин (nilabs) 6 10.04.15 15:49 Сейчас в теме
21. user user (user976) 11.08.15 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". директория существует и права на нее есть.. подскажите что не так?