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