Со времен моей последней статьи по установке 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”
Отличная статья , спасибо вам за них!!! А будет ли нечто подобное под Centos ???
Думаю что будет, мне и самому ближе CentOS и Fedora, но приходится иметь дело и с другими ОС Ubuntu, Gentoo, FreeBSD – о них пишу в первую очередь, что бы не забылось
Большое спасибо, как раз кстати ваша статья пришлась
какая версия Ubuntu использовалась?
Ubuntu Server 12.04 x64, я в начале каждой статьи пишу
А как скорость работы у меня на Ubuntu 10.04.4 Post 8.4.4(с Eterosoft брал) тест Гилева всего 6,5 балов набирает. Но у меня ПК без рейда. Хотя на таком же ПК просто 1С БД-файл 45 балов набирает. Как ускорить уже голову сломал.
Борис, привет.
Файловый движек по-умолчанию на порядок быстрее работает по сравнению с сервером предприятия + любая БД, я на сколько помню у даже на очень приличном серваке что в Linux 1с+postgres, что в Windows 1c + MS SQL скорость по тесту гилева не поднималась выше 27-30 попугаев. Когда на том же железе файловая база просто летала.
Сереверный вариант заточен под могопользовательскую работу, поэтому 6-7 баллов для обычного ПК – это норма.
Опиши какое у тебя железо? Какую скорость дисков покажет bonnie?
Alsigned, спасибо за ответ, успокоили. У меня под сервером стоит обычный ПК без рейда просто 2 диска HDD со скоростью 7200, 8Gb ОЗУ. Стандартная хозрасчетная бухгалтерия работает без нареканий, а вот “Управление персоналом” во многих местах тормозит. Начисление з/п идет пол часа, вместо 7-10мин на файловом варианте.
Спасибо, дорогой автор! На 14.11.2012 это работает. Первый раз сошелся этот прОклятый пасьянс
Сделал всё ао этой инструкции, 2 раза…
В итоге, при создании или попытке подключить базу непосредственно в 1С появляется ошибка:
Ошибка при создании информационной базы:
Ошибка СУБД:
ERROR: type “mvarchar” does not exist at character 31
Что делать?
Привет, Иван.
А ты проделывал все это на чистой системе? Или перед этим уже был установлен какой-то релиз Postgresql? Я это к тому что с большой вероятностью у тебя либо запустился не тот Postges, либо Postges запустился тот, но с базой созданной предшественником. Вот.
Какие пакеты potgresql и icu установлены в системе?