Со времен моей последней статьи по установке 1с прошло уже больше года, и за прошедшее время многое изменилось. Помнится установка отнимала немало усилий, сначала сборка PostgreSQL с установкой 1с-овских патчей, потом мелкие заморочки с запуском сервера 1с предприятия. Я даже сделал свой репозиторий с собранным PostgreSQL, который работает по сей день, но 1с понемногу пошла людям на встречу: сначала появился неплохо собранный src.rpm для RedHat/CentOS, а сейчас на сайте 1с лежат уже готовые сборки как для CentOS/Redhat, так и для Debian/Ubuntu. Посмотрим что у них получилось.

Задача простая – нужно поставить связку 1с Предпритие и PostgreSQL на Ubuntu Server 12.04 x64. Сколько помню, если сравнить Ubuntu Server и Debian, Ubuntu Server из-за более свежих версий пакетов был всегда более капризный по мелочам.

1. Ставим PostgreSQL

Прежде чем начать установку, нам понадобится провести ряд подготовительных процедур. PostgreSQL может установиться и без этого, но проще будет если сразу во время установки он создаст правильные конфиги и инициализирует базу данных в нужной кодировке.
Увеличиваем максимальный размер сегмента памяти до 64Мб.

root@ubsrv:~# echo "kernel.shmmax=67108864" >>/etc/sysctl.conf
root@ubsrv:~# sysctl -p

Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.

root@ubsrv:~# locale-gen en_US ru_RU ru_RU.UTF-8
root@ubsrv:~# export LANG="ru_RU.UTF-8"

Устанавливаем необходимые зависимисти.

root@ubsrv:~# apt-get install libssl0.9.8 ssl-cert postgresql-common libossp-uuid16 libxslt1.1

Берем с сайта http://users.v8.1c.ru/ архив с PostgreSQL 9.1.2 для 64-битных DEB-систем, распаковываем и устанавливаем нужные компоненты. Нужных и не нужных компонентов в архиве много, для того что бы все заработало достаточно postgresql, postgresql-client и postgresql-contrib.

root@ubsrv:~# tar zxf postgresql_9_1_2_deb_x86_64_tar.gz
root@ubsrv:~/postgres# dpkg -i postgresql-9.1_9.1.2-1.1C_amd64.deb libpq5_9.1.2-1.1C_amd64.deb postgresql-client-9.1_9.1.2-1.1C_amd64.deb postgresql-contrib-9.1_9.1.2-1.1C_amd64.deb

После установки нужно еще немного подправить конфигурационный файл, как не странно будучи поставленным в пакете 1с он содержит не правильные настройки для обработки экранирующих символов, и при создании базы 1с выдает ошибки “syntax error at or near “SECOND” at character 127″ или “syntax error at or near “SECOND” at character 227″. Исправляем в файле /etc/postgresql/9.1/main/postgresql.conf следующие параметры.

backslash_quote = on
escape_string_warning = off
standart_conforming_strings = off

Перезапускаем сервис.

root@ubsrv:~# service postgresql restart

Меняем пароль для пользователя postgres – это тот пароль который мы будем задавать при создании базы данных.

root@ubsrv:~# su postgres
postgres@ubsrv:/root$ cd ~
postgres@ubsrv:~$ psql -U postgres -c "alter user postgres with password '123456';"
postgres@ubsrv:~$ exit

Отключаем обновление для пакетов 1с-овского PostgreSQL.

root@ubsrv:~# echo "libpq5" hold |  dpkg --set-selections
root@ubsrv:~# echo "postgresql-9.1" hold |  dpkg --set-selections
root@ubsrv:~# echo "postgresql-client-9.1" hold |  dpkg --set-selections
root@ubsrv:~# echo "postgresql-contrib-9.1" hold |  dpkg --set-selections

2. Установка сервера 1с Предприятия

Начнем с файла /etc/hosts, для того чтобы 1с-ка правильно создала свои конфиги из него нужно убрать любое упоминание об IPv6 и правильно задать соотношение IP адреса и имени сервера. Пример правильного /etc/hosts.

127.0.0.1       localhost
192.168.20.123  ubsrv.mydomain.local ubsrv

Теперь, точно также как и с Postgresql, забираем с сайта http://users.v8.1c.ru/ последнюю версию платформы сервера 1с 8.2 Предприятия, распаковываем и устанавливаем нужные компоненты.

root@ubsrv:~# tar zxf deb64.tar.gz
root@ubsrv:~# dpkg -i 1c-enterprise82-common_8.2.16-368_amd64.deb 1c-enterprise82-server_8.2.16-368_amd64.deb 1c-enterprise82-ws_8.2.16-368_amd64.deb

Даем права для пользователя и группы 1с Предприятия на каталог установки.

root@ubsrv:~# chown -R usr1cv82:grp1cv82 /opt/1C

Добавляем в автозагрузку и запускам сервис.

root@ubsrv:~# update-rc.d srv1cv82 defaults
root@ubsrv:~# service srv1cv82 start

Сервер 1с Предприятия 8.2 готов к использованию.

3. Заключение

Казалось бы если отказаться от сборки Posgresql установка станет намного проще, но в итоге по объему работы получается тоже на тоже, много недочетов и мы опять возвращаемся к тому что новички просто не справятся с такой установкой. Если например взять архив с postgresql и установить все пакеты стандартной debian-овской последовательностью команд deb -iR * и apt-get install -f, то postgresql просто не встанет и часть 1с-овских компонентов будет перезаписана стандартными из репозитория. Дальше рихтование конфига, установка локалей, установка прав доступа на каталог 1с – все это создает дополнительные трудности. И как мне кажется, если сейчас забросить работу с 1с, и вернуться к ней года этак через два-три, то все останется на своих местах, будет все таже завсегдатая куча примочек и фенечек ;)

11 Коммент. : “Установка 1c 8.2 и PostgreSQL на Ubuntu Server”

  1. Паша пишет:

    Отличная статья , спасибо вам за них!!! А будет ли нечто подобное под Centos ???

  2. Думаю что будет, мне и самому ближе CentOS и Fedora, но приходится иметь дело и с другими ОС Ubuntu, Gentoo, FreeBSD – о них пишу в первую очередь, что бы не забылось ;)

  3. neorfey пишет:

    Большое спасибо, как раз кстати ваша статья пришлась

  4. Andrey пишет:

    какая версия Ubuntu использовалась?

  5. Ubuntu Server 12.04 x64, я в начале каждой статьи пишу ;)

  6. Борис пишет:

    А как скорость работы у меня на Ubuntu 10.04.4 Post 8.4.4(с Eterosoft брал) тест Гилева всего 6,5 балов набирает. Но у меня ПК без рейда. Хотя на таком же ПК просто 1С БД-файл 45 балов набирает. Как ускорить уже голову сломал.

  7. Борис, привет.

    Файловый движек по-умолчанию на порядок быстрее работает по сравнению с сервером предприятия + любая БД, я на сколько помню у даже на очень приличном серваке что в Linux 1с+postgres, что в Windows 1c + MS SQL скорость по тесту гилева не поднималась выше 27-30 попугаев. Когда на том же железе файловая база просто летала.

    Сереверный вариант заточен под могопользовательскую работу, поэтому 6-7 баллов для обычного ПК – это норма.

    Опиши какое у тебя железо? Какую скорость дисков покажет bonnie?

  8. Борис пишет:

    Alsigned, спасибо за ответ, успокоили. У меня под сервером стоит обычный ПК без рейда просто 2 диска HDD со скоростью 7200, 8Gb ОЗУ. Стандартная хозрасчетная бухгалтерия работает без нареканий, а вот “Управление персоналом” во многих местах тормозит. Начисление з/п идет пол часа, вместо 7-10мин на файловом варианте.

  9. Victor пишет:

    Спасибо, дорогой автор! На 14.11.2012 это работает. Первый раз сошелся этот прОклятый пасьянс :-)

  10. Сделал всё ао этой инструкции, 2 раза…

    В итоге, при создании или попытке подключить базу непосредственно в 1С появляется ошибка:

    Ошибка при создании информационной базы:
    Ошибка СУБД:
    ERROR: type “mvarchar” does not exist at character 31

    Что делать?

  11. Привет, Иван.
    А ты проделывал все это на чистой системе? Или перед этим уже был установлен какой-то релиз Postgresql? Я это к тому что с большой вероятностью у тебя либо запустился не тот Postges, либо Postges запустился тот, но с базой созданной предшественником. Вот.

    Какие пакеты potgresql и icu установлены в системе?

Оставить комментарий