Прежде чем начать установку, нам понадобится провести ряд подготовительных процедур. PostgreSQL может установиться и без этого, но проще будет если сразу во время установки он создаст правильные конфиги и инициализирует базу данных в нужной кодировке.
# 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с.
Наслаждаемся результатом:
Спасибо за статью…
(1) Andry.Boris, пожалуйста.
а что в 8.3 конфиг сервер отменили?
(3) qwinter, нет его в 8,3
Возьмем на заметку.
«postgresql-common_154_all.deb (на момент написания статьи на сайте была доступна лишь версия для lucid, которая ломает logrotate, поэтому этот пакет скачивал отдельно)!»
На каком сайте? Откуда скачивали?
Ничего скачать не надо, ставьте пакет из стандартного репозитория
apt-get install postgresql-common
Там уже лежит версия 154.
C стандартных репозиториев ругается что версия Postgres устарела и рекомендует установку версии 9.3 но ничего страшного, установка прокатит…
Перечитал еще раз, где установка клиента!? 😉
На официальном сайте имеются патчи для postgresql. А почему вы их не используете? (строки типа
patch -d .. -p1 <postgresql-1c-9.2.patch). Или скачиваемый с сайта 1С, postgres уже пропатчен?
а как обновить установленный по этой инструкции 8.3.5.1068 до 8.3.5.1119 ?
Большое спасибо
(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 — хлам, а иногда даже могут и локаль сломать.
(Тысячу раз об этом говорил на форуме, но так никто и не запомнил)
(8) tishatdv,
Начиная с версии 8.3.5 для 1С постгресс патчить не нужно.
1с прекрасно и с оригинальным постгрессом работает.
Да, вот еще.
Забыл добавить.
На ubuntu 14.04 бесполезно ставить пакет 1c-enterprise83-ws_версия_разрядность.deb.
Веб сервис, а также подключение к базам по HTTP все равно работать не будут.
Т.к. веб-компонента от 1С работает с Апачем 2.2, а на данном дистрибутиве в комплекте идет Апач 2.5
Запустить можно только в двух случаях:
1) или даунгрейдим Апач
2) или ждем когда 1С соизволит веб-компоненту под Апач 2.5 переделать.
для чего нужен Sentinel HASP USB?
и почему ставиться именно этот релиз 1С — 8.3.4.476?
Спасибо большое за труды!
Опытным путем пришел к выводу —
Лучше устанавливать PostgreSQL , 1С 8.3 Server и Apache на разные Ubuntu Servers,
пусть даже и на одном физическом сервере например под VMware.
В последствии меньше вопросов с совместимостью версий и обновлениями.
Вы не сталкивались с такой проблемой, невозможно перезапустить сервер:
Показать
Установил libicu52, но при установке postgresql-contrib он просит libicu46. Я это проигнорил, сервис запустился, вроде работает. Что надо седлать что бы при установке этого пакета он не просил версию 46 или вообще пофиг?)
И почему именно такая последовательность установки postgresql? Ну например, для postgresql-contrib нужно что бы было установлено postgresql-9.2, а postgresql-9.2 устанавливается последним.
(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
(12) bzmax,
Ссылка есть?
Добрый день. Выполняю в 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». директория существует и права на нее есть.. подскажите что не так?