|
|||||||
Установка сервера 1с 8.2 и PostgreSql для Linux (С обсуждением)
Время создания: 23.06.2014 09:11
Раздел: Компьютер - Windows - 1С - 1С и Linux
Запись: xintrea/mytetra_syncro/master/base/1337971664qitzg5xzma/text.html на raw.github.com
|
|||||||
|
|||||||
Долгое время нам приходилось для использования много-пользовательской 1с покупать еще и дорогостоящий Microsoft SQL Server, но наконец 1c решила все-таки пойти на встречу своим клиентам и начала выпускать 1с сервер для Postgre SQL, а так же перевела платформу 1с сервера и клиентскую часть под Linux. Огромным минусом 1с для linux стала на мой взгляд трудоемкость установки и обслуживания, в этой статье я постараюсь подробно рассмотреть все нюансы. В качестве операционной системы выбрана Fedora 12 i386, текущий релиз сервера 1с предприятия 8.2.11.236, сервер PostgreSQL версии 8.4.1. Статья по установке Postgresql 9.0 здесь: http://www.alsigned.ru/?p=1129 1. Установка 1c сервера Скачиваем с сайта 1с или ИТС диска и копируем на наш сервер установочные пакеты 1C-Enterprise82-server для RHEL. Предать пакеты можно например через ftp-сервер, о настройке которого рассказано в следующей статье : http://www.alsigned.ru/?p=332 Список необходимых rpm пакетов: 1C_Enterprise82-common-8.2.11-236.i386.rpm 1C_Enterprise82-common-nls-8.2.11-236.i386.rpm 1C_Enterprise82-crs-8.2.11-236.i386.rpm 1C_Enterprise82-crs-nls-8.2.11-236.i386.rpm 1C_Enterprise82-server-8.2.11-236.i386.rpm 1C_Enterprise82-server-nls-8.2.11-236.i386.rpm 1C_Enterprise82-ws-8.2.11-236.i386.rpm 1C_Enterprise82-ws-nls-8.2.11-236.i386.rpm Переходим в папку в которую скопировали пакеты 1с сервера, в моем случае /tmp/1cv82 и запускаем установку. Если установка прошла успешно сразу же будет запущена служба 1C:Enterprise 8.2 server. [root@localhost 1cv82]# rpm -i *.rpm Starting 1C:Enterprise 8.2 server: OK 2. Установка Postgresql Postgresql в стандартной поставке через репозиторий не имеет необходимых для правильной работы сервера 1с модулей, я потратил больше двух дней на поиски решения, и по всей видимости потратил их совершенно впустую. А такая была хорошая идея обновлять Posgres через yum и не ковыряться лишний раз в исходниках ) Итак Postgresql придется собирать вручную из исходных кодов с сайта 1с http://v8.1c.ru/overview/postgres_patches_notes.htm . Скачиваем и устанавливаем исходники: [root@localhost]# wget http://v8.1c.ru/overview/postgresql_patches/8-4-1/postgresql-8.4.1-1.1C.src.rpm [root@localhost]# rpm -ihv postgresql-8.4.1-1.1C.src.rpm Устанавливаем необходимые для сборки пакеты [root@localhost ]# yum install rpm-build [root@localhost ]# yum install gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel Если в процессе компиляции система начнет ругаться на mchar_io: mchar_io.c:365: error: ‘MVarChar’ has no member named ‘data’make[1]: *** [mchar_io.o] Error 1 make[1]: Leaving directory `/root/rpmbuild/BUILD/postgresql-8.4.1/contrib/mchar'make: *** [all] Error 2 make: Leaving directory `/root/rpmbuild/BUILD/postgresql-8.4.1/contrib'error: Bad exit status from /var/tmp/rpm-tmp.PhsHim (%build) Необходимо доустановить или переустановить пакет icu с иcходниками. [root@localhost ]# yum install icu libicu libicu-devel Что бы после установки не появлялось при загрузке базы 1с не появлялась ошибка timestamp out of range, необходимо при компиляции задать параметр –disable-integer-datetimes. Для этого открываем для редактирования файл /root/rpmbuild/SPECS/postgresql-8.4.1C.spec, находим в нем строку %{!?intdatetimes:%define intdatetimes 1} и заменеяем на %{!?intdatetimes:%define intdatetimes 0} Хочется заметить что в версии postgresql-8.3.8 от фирмы 1с данной ошибки нет, и все параметры выставлены правильно по умолчанию. Также необходимо исправить параметр уровня подгона патча, на RHEL он равен 2, но в новой rpm системе его предполагается установить в 0, а поскольку Fedora – есть тестовая платформа для RHEL, то тут уже все новое работает в тестовом режиме. Для этого открываем файл /usr/lib/rpm/macros находим в нем строчку %_default_patch_fuzz 0 и заменяем ее на %_default_patch_fuzz 2 Если мы этого не сделаем устанавливаемые патчи будут обрабатываться новыми скриптами и совсем не правильно и в этом случае мы увидим следующее сообщение. 1 out of 5 hunks FAILED -- saving rejects to file src/Makefile.global.in.rejerror: Bad exit status from /var/tmp/rpm-tmp.KfAvpD (%prep) RPM build errors:Bad exit status from /var/tmp/rpm-tmp.KfAvpD (%prep) Все теперь можно собирать пакет [root@localhost SPECS]# rpmbuild -ba /root/rpmbuild/SPECS/postgresql-8.4.1C.spec После длительного процесса компиляции занявшего 2-3 минуты переходим в папку /root/rpmbuild/RPMS/i386/ с уже готовыми пакетами и устанавливаем их. [root@localhost i386]# rpm -i *.rpm 3. Настройка Postgresql для работы с сервером 1с Первым делом нужно инициализировать базу данных Postgresql и задать основную кодировку с которой будет работать сервер 1с. [root@localhost i386]# su postgres bash-4.0$ initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8 could not change directory to "/root/rpmbuild/RPMS/i386" The files belonging to this database system will be owned by user "postgres". This user must also own the server process.
The database cluster will be initialized with locale ru_RU.UTF-8. The default database encoding has accordingly been set to UTF8. The default text search configuration will be set to "russian".
. . . . . . . .
bash-4.0$ exit Если появилась ошибка DETAIL: Failed system call was shmget(key=1, size=35127296, 03600). HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 35127296 bytes),reduce PostgreSQL's shared_buffers parameter (currently 3584) and/or its max_connections parameter (currently 103). Необходимо увеличить значение параметра kernel.shmmax, для этого добавляем в файл /etc/sysctl.conf строчку kernel.shmmax = 40000000 Обновляем параметры sysctl следующей командой [root@localhost i386]# sysctl -p А затем повторяем процедуру инициализации базы. Теперь зададим типы аутентификации Postgresql для различных пользователей. Открываем файл /var/lib/pgsql/data/pg_hba.conf и приводим его после строчки # TYPE DATABASE USER CIDR-ADDRESS METHOD к следующему виду: # TYPE DATABASE USER CIDR-ADDRESS METHOD # для локальных пользователей даем возможность входа без пароля local all all trust host all all 127.0.0.1/32 trust # для остальных пользователей и сервера 1с предприятия host all all 0.0.0.0/0 md5 Включаем автозапуск и Запускаем Postgresql [root@localhost]# chkconfig postgresql on [root@localhost]# service postgresql start 4. Настройка сервера 1С предприятия. По умолчанию сервер 1с предприятия использует localhost.localdomain как имя сервера и при попытке создать базу с удаленного компьютера мы увидим сообщение об ошибке. Чтобы поправить это – переходим в домашнюю папку пользователя 1с /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541, открываем файл 1CV8Reg.lst. В нем находим все упоминания localhost.localdomain и заменяем их на DNS имя нашего сервера. Затем перезапускаем службу 1C:Enterprise 8.2 server. [root@localhost reg_1541]# service srv1cv82 restart Stopping 1C:Enterprise 8.2 server: OK Starting 1C:Enterprise 8.2 server: OK Теперь установку можно считать завершенной. Обсуждение
skif пишет: 15/09/2010 в 15:26 ошибка timestamp out of range
Max пишет: 16/09/2010 в 13:53 Здесь два варианта:
skif пишет: 16/09/2010 в 15:05 Max > До PostgreSql@etersoft был установлен не пропаченный Postgres из базового репозиторния воощем я ешил проблему до этого ставил 8.4.4 эта сборка с ошибкой , поставил 8.4.2 все прекрасно заработало, 8.4.3 почемуто у них не оказалось:)
Switch пишет: 30/09/2010 в 12:54 Поправочка в строке
Виталий пишет: 16/10/2010 в 01:07 BEGIN failed–compilation aborted. RPM build errors: Никак не погу пофиксить. Ставил версию 8.3.1, 8.4.3. Не помогает , ставил perl-ExtUtils-MakeMaker , ничего не помогает. Помогите плз.
Max пишет: 16/10/2010 в 08:17 Какой релиз Fedora установлен?
alsigned пишет: 16/10/2010 в 16:39 Релиз Fedora думаю версии 12 или 13, но по-моему дело совсем не в релизе. Обрати внимание при сборке postgresql-8.4.1C [root@FEDORA ~]# rpmbuild -ba /root/rpmbuild/SPECS/postgresql-8.4.1C.spec Используются исходники другой версии postgresql-8.4.3 + /usr/bin/bzip2 -dc /root/rpmbuild/SOURCES/postgresql-8.4.3.tar.bz2 И естественно на них не правильно применяются пачи от версии 8.4.1. Самый простой вариант в этом случае – полностью удалить директорию /root/rpmbuild и собрать все заново. [root@localhost]# wget -i http://v8.1c.ru/overview/postgresql_patches/8-4-1/postgresql-8.4.1-1.1C.src.rpm
Albula пишет: 08/11/2010 в 17:23 Хай!! Очень отличная статья!! Обязательно буду смотреть и другие статьи.
6ax пишет: 22/11/2010 в 19:20 Проверено работает без проблем на Centos5.5 x86. За статью спасибо.
Ден пишет: 10/12/2010 в 10:22 Тонкий клиент при этом работает нормально?
Виталий пишет: 17/12/2010 в 07:03 Возникла проблема при тесте running regression test queries
Виталий пишет: 18/12/2010 в 06:43 Виталий : так и не разобрался в чем причина c тестом timestamptz , отключил тест в postgresql-8.4.1C.spec после чего пакет собрался нормально.
Антон пишет: 25/01/2011 в 17:32 я не совсем вдалею linux
Alsigned пишет: 26/01/2011 в 00:04 @Антон wget -i – это моя ошибка, как-то в привычку вошло даже и не знаю откуда. Сам не редко напарываюсь. В данном случае правильно написать: PS: Ошибку признаю – исправлюсь.
Антон пишет: 26/01/2011 в 09:57 Alsigned : @
Alsigned пишет: 26/01/2011 в 11:53 @Антон Если нужно подробнее пиши в аську (на странице о блоге).
Victor пишет: 09/02/2011 в 06:16 Решил собрать postgresql-9.0.1 по Вашей статье. В лоб – не удалось. Сборка по крайней мере удалась. Но дальше при инсталяции получил error reading information on service postgresql-9.0: Bad file description Куда копать дальше? Система Fedora 14 x86_64
Alsigned пишет: 09/02/2011 в 13:33 @Victor По ошибке – я попробую собрать и установить, но если найдешь решение раньше пиши. PS: Думаю пора уже переписать эту статью под Postgresql 9 и 1с 8.2.13 с установкой на CentOS.
Victor пишет: 09/02/2011 в 16:54 На текущий Centos 5.5 не очень выгодно. Надо дождаться обновления до 6 версии. Одна установка доп пакетов через yum под x86_64 выбивает весь мозг. За чем-то тянуться и 386 пакеты. Нужно ручками указывать название каждого пакета с x86_64. Да и слишком уж старое ядро и пакеты в комплекте.
Alsigned пишет: 11/02/2011 в 16:22 @Victor chkconfig –add postgresql В файле скрипта /etc/rc.d/init.d/postgresql меняем. PS: Мне не сильно нравится 6-ая версия из-за отказа RedHat от развития xen, который и вовсе исключен из нового дистрибутива.
Victor пишет: 12/02/2011 в 14:40 Предлагаю все изменения произвести в postgresql.init и в postgresql-9.0-1C.spec до сборки rpm пакетов. В postgresql.init исправить строки: А в postgresql-9.0-1C.spec После этого сборка происходит нормально. И установка и удаление пакетов не вызывает проблем.
Alsigned пишет: 14/02/2011 в 14:08 @Victor Мне даже кажется проще всего собрать PostgreSQL-9.0.1 и выложить уже готовые RPM – это сократит на 90% трудности при установке. Новая статья по установке сервера 1с предприятия и сборке PostgreSQL 9.0.1 http://www.alsigned.ru/?p=1129
julia пишет: 04/03/2011 в 17:07 а мне пришлось доинсталить
Alsigned пишет: 04/03/2011 в 22:32 @julia Все зависимости прописаны в spec-файле и от вышеперечисленных пакетов необходимо установить только devel.
kulakOFF пишет: 25/03/2011 в 09:29 Все заработало устанавливал на Fedora 8
repairman пишет: 06/04/2011 в 14:36 В RFRemix 12 и 14 (Fedora) – postgresql для 1с отлично собирается из «родных» пакетов… у 1c src.rpm – УЖАСНО КРИВЫЕ… требуется ручная доработка напильником местах в …дцати… Я взял родной src.rpm от своего дистрибутива postgresql-8.4.7-1.fc14.src.rpm (для 14 федоры или RFRemix), установил: rpm -i postgresql-8.4.7-1.fc14.src.rpm Поправил файл postgresql.spec: ———————– cut ——————- BuildRequires: perl(ExtUtils::MakeMaker) glibc-devel bison flex autoconf gawk autoconf @@ -360,7 +366,8 @@ make %{?_smp_mflags} all Подложил в SOURCE патчи от 1с и чудно собрал с помощью rpmbuild src.rpm со всеми изменениями и rpm’ы готовые к установке… установка штатно через rpm или yum… 1c v8.2 – встал без вопросов, база создалась без к-л ошибок.
repairman пишет: 06/04/2011 в 14:47 Система: Тем же способом успешно запущен postgresql-8.4.5-1 на RFRemix (Fedora) 12 x86_64, все зависимости для сборки и запуска перечислены в spec, все из родных репозиториев – ничего дополнительно ставить не требуется…
Alsigned пишет: 06/04/2011 в 22:43 @repairman Народ в интернете интересуется обновлением версии PostgreSQL-1c и сборкой именно под родную для дистрибутива версию. Как ты смотришь на то чтобы написать статью? Я когда начал заниматься связкой 1с+Posgresql проводил теститрование производительности с версиями 8.4.5/8.4.4/8.4.1/9.0.1 в надежде найти оптимальный вариант – разницы почти нет. Поэтому решил остановиться на 9.0.1 – поправил на сколько можно spec, собрал в rpm и засунул результаты в репозиторий. Вся установка Postgresql-1c превратился в yum install + initdb. PS: Честно говоря отличная идея. Респект.
repairman пишет: 07/04/2011 в 17:02 Можно и статью написать… К моему удивлению, спец вызванный для установки из 1сбит почему-то почти не знал Linux, пришлось решать свои проблемы самому… Десяток граблей, на которые я наступил могу описать…
Alsigned пишет: 08/04/2011 в 14:33 @repairman PS: Интернет ждет от тебя статью с десятью граблями…
repairman пишет: 08/04/2011 в 23:43 В каком виде и где оформить статью ?
Alsigned пишет: 09/04/2011 в 23:33 @repairman В формате… думаю в любом, главное что бы читателям было понятно и был подробный раздел troubleshooting (который во многих статьях в инете неоправданно пропускается).
Павел пишет: 10/04/2011 в 14:08 а на Debian 64 данную конструкцию запускал кто-нибудь?
repairman пишет: 10/04/2011 в 14:35 Павел : По большому счету, без разницы какой у Вас дистрибутив… все сводится к тому, чтобы взять рабочий исходник postgresql и, наложив на него патчи, собрать рабочие бинарные пакеты… как бы стандартный процесс в *nix…
repairman пишет: 10/04/2011 в 14:39 Разница в разных дистрибутивах лишь в формате хранения и системах контроля/управления пакетами… если же Вам не нужны пакеты для дальнейшей установки-распространения, то локальная установка делается везде одинаково…
Romanitch пишет: 16/05/2011 в 18:34 Кто подскажет как платформу 1С8.2 обновить при выходе очередного релиза (например с 8.2.13.205 до 8.2.13.219) или же весь сервак заново инсталить?
Alsigned пишет: 16/05/2011 в 23:09 @Romanitch Запрашиваем список установленных пакетов 1с 8.2 [root@1csrv ~]# rpm -qa | grep 1C_Enterprise821C_Enterprise82-server-8.2.12-751C_Enterprise82-ws-nls-8.2.12-751C_Enterprise82-common-nls-8.2.12-751C_Enterprise82-crs-nls-8.2.12-751C_Enterprise82-common-8.2.12-751C_Enterprise82-ws-8.2.12-751C_Enterprise82-server-nls-8.2.12-751C_Enterprise82-crs-8.2.12-75 Удаляем их, при этом все настройки сервера 1с предприятия останутся на своих местах [root@1csrv ~]# rpm -e 1C_Enterprise82-server-8.2.12-75 1C_Enterprise82-ws-nls-8.2.12-75 1C_Enterprise82-common-nls-8.2.12-75 1C_Enterprise82-crs-nls-8.2.12-75 1C_Enterprise82-common-8.2.12-75 1C_Enterprise82-ws-8.2.12-75 1C_Enterprise82-server-nls-8.2.12-75 1C_Enterprise82-crs-8.2.12-75 Переходим в каталог с распакованной новой версией: [root@1csrv ~]# cd /tmp/8.2.13.205[root@1csrv 8.2.13.205]# ls1C_Enterprise82-common-8.2.13-205.i386.rpm 1C_Enterprise82-crs-nls-8.2.13-205.i386.rpm 1C_Enterprise82-ws-8.2.13-205.i386.rpm 1C_Enterprise82-common-nls-8.2.13-205.i386.rpm 1C_Enterprise82-server-8.2.13-205.i386.rpm 1C_Enterprise82-ws-nls-8.2.13-205.i386.rpm1C_Enterprise82-crs-8.2.13-205.i386.rpm 1C_Enterprise82-server-nls-8.2.13-205.i386.rpm Устанавливаем: [root@1csrv 8.2.13.205]# rpm -i *.rpmStarting 1C:Enterprise 8.2 server: OK Все, делов-то было на 5 минут PS: Рекомендую на всякий случай сохранять 1CV8Reg.lst из папки /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541, помнится в каком-то релизе…
repairman пишет: 19/05/2011 в 12:39 А стандартный
repairman пишет: 19/05/2011 в 15:11 … не придется ничего запрашивать и удалять… -U (update) сам найдет установленные пакеты и обновит их если версия rpm’ов новее установленных.
Alsigned пишет: 19/05/2011 в 20:36 @repairman Обновлять RPM при помощи параметра -U (–upgrade) самый правильный способ, потому что во время обновления могут вноситься изменения необходимые именно для этого обновления, в отличии от erase/install где конфиги и другие файлы могут быть попросту удалены или перезаписаны. Возможно именно по этой причине во время проведения одного из обновлений мною был потерян файлик 1CV8Reg.lst. Способ полностью поддерживаю, и предлагаю считать его самым правильным и быстрым.
PolAvto пишет: 05/06/2011 в 21:03 @repairman
сергей пишет: 21/06/2011 в 13:57 много в последствии багов! Тем более если конфигурация не стандартная. Я посмотрю как вы впихнете автоматизацию на сие )))
Alsigned пишет: 21/06/2011 в 23:25 Привет, @сергей много в последствии багов! Я думаю было бы не плохо описать какие баги были замечены.
Goplit пишет: 22/06/2011 в 14:00 День добрый! В очередной раз спасибо за Ваши статьи. Возник вопрос, есть связка Debian6+Apache2+1c8.2+Postgresql9 1C:Enterprise 8 application error: В файлике 1CV8Reg.lst прописано все верно, не подскажите куда копать?
Goplit пишет: 22/06/2011 в 17:29 @Goplit
Антон С. Р. пишет: 23/07/2011 в 06:35 Спасибо за замечательные статьи. Как OS использую CentOS 5.6, все пакеты собрались без ошибок и проблем…
Alsigned пишет: 10/09/2011 в 17:23 Уважаемые, читатели. Комментариев к статьям стало слишком много и что бы их немножко систематизировать переношу обсуждение в мини-форум. Обсуждение и дополнение непосредственно статьи http://forum.alsigned.ru/viewtopic.php?f=4&t=10 Если у вас трудности в настройке, установке или эксплуатации 1с предприятия – вам сюда http://forum.alsigned.ru/viewforum.php?f=5 , и не стесняйтесь создавать новую тему.
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|