Linux Ubuntu 64 + 1C + PostgreSQL установка в три шага

Шаг №1 Подготовка


Поскольку при установке сервера 1с и postgresql на линукс-сервер возникает масса нюансов, которые постоянно забываются, опишу процесс на этой страничке.


Итак имеем 64-битный линукс Ubuntu
Скачиваем 64-битные пакеты сервера 1С и postgresql
http://users.v8.1c.ru/Platform_8_1_13_41_deb64_s.aspx - сервер 1с
http://users.v8.1c.ru/Platform_8_3_3_21C_pln64_s.aspx - postgres

Распаковываем rar-архивы например сервер 1С например в
/usr/local/1c

и postgresql в
/usr/local/1c/pgsql


Postgresql на сайте 1с лежат в rpm, поэтому переделаем полученные пакеты в deb . Для чего
apt-get install chkconfig // Пригодится, поскольку вызывается из установочных скриптов
apt-get install alien


cd /usr/local/1c/pgsql
alien --scripts --to-deb *.rpm
groupadd -g 5026 -o -r postgres
useradd -g postgres -o -r -d /var/lib/pgsql -s /bin/bash -c \
"PostgreSQL Server" -u 5026 postgres

//Тут в оригинале ID группы и пользователя был 26, но в ubuntu он занят группой type , поэтому заменил 5026
Последние две строки есть в скриптах установки, но в нашей системе они не срабатывают.

Теперь все готово к установке

Шаг №2 Установка



dpkg -i *.deb

Переходим в каталог сервера 1с
cd /usr/local/1c
dpkg -i *.deb


Можно переопределить каталог для баз, насколько помню, постгрес лучше работал в файловой системе ext2 (хотя это непринципиально)
mkdir /bases
mkdir /bases/basetest
chown -R postgres:postgres /bases

Теперь надо сделать ссылки на библиотеки, которые нужны 1с-совскому постгресу , почему то старые
cd /lib
ln -s libreadline.so.5.2 libreadline.so.4
ln -s libncurses.so libtermcap.so.2


И еще кое что перед инициализацией базы
echo 134217728 >/proc/sys/kernel/shmmax
/usr/share/locales/install-language-pack en_US

Шаг №3 Запуск



Теперь сама инициализация
su postgres
initdb -D /bases/basetest

и стартуем postgres
pg_ctl -D /bases/basetest -l /bases/basetest/pg.log start


Все, скрипт запуска - домашнее задание.
Сервер 1с запускается обычно
/etc/init.d/srv1cv81 start


Проверяем
netstat -atu

если вот такие строки видно, то значит все должно быть хорошо.
tcp 0 0 *:1560 *:* LISTEN
tcp 0 0 *:postgresql *:* LISTEN
tcp 0 0 *:1561 *:* LISTEN
tcp 0 0 *:1562 *:* LISTEN
tcp 0 0 *:1563 *:* LISTEN

(ship) Отлично расписано!!!

Добавлю свои 2 копейки:

Кое-где на сайтах постгреса кроме

echo 134217728 >/proc/sys/kernel/shmmax

Предлагают еще

echo 134217728 >/proc/sys/kernel/shmall

Ну чтоб не набирать после перезапуска руками

echo kernel.shmmax=134217728 >>/etc/sysctl.conf
echo kernel.shmall=134217728 >>/etc/sysctl.conf

Ну и скрипт для запуска постгреса

cat /etc/init.d/postgresql

#!/bin/sh

case $1 in

restart)

sudo -u postgres -H pg_ctl -D /bases/basetest -l /bases/basetest/pg.log stop

sudo -u postgres -H pg_ctl -D /bases/basetest -l /bases/basetest/pg.log start

;;

start)

sudo -u postgres -H pg_ctl -D /bases/basetest -l /bases/basetest/pg.log start

;;

stop)

sudo -u postgres -H pg_ctl -D /bases/basetest -l /bases/basetest/pg.log stop

;;

*)

echo start|stop|restart

return 1;

;;

esac

И последний штрих

update-rc.d postgresql defaults
update-rc.d srv1cv81 defaults

20 мая 2011Headline

Nihil cum amicitia possum comparare; di hominibus nihil melius dant. Pecuniam alii malunt alii corpora sana alii famam.
Learn more . . .

Стоит внимания
Featured