Установка 1С8.3/8.2 + Postgresql 9.4/9.1 на Debian8/Ubuntu 14.4

Встал вопрос в переводе 1С на Linux и уходу от MSSql вызвано это было в связи с необходимостью экономить на лицензиях Microsoft. Т.к. у 1С всё для это есть, решили пробовать.

Попытки было две первую попытка была на любимом мной OpenSUSE но что то не заладилось и отложил на потом т.к. готовое решение нужно побыстрей. В инете перекопал множество вариантов но не один полностью мне не подошёл. Поэтому на память оставляю то что помогло мне.

Решил вторую попытку сделать с Debian.
И так все ставится с нуля. Дистр Debian взят последний на данный момент т.е 8.

UPDATE:в принципе все это же протестировано и отлично отработало на Ubuntu 14.4

UPDATE :В работе 8.3 и Postgresa обнаружена проблема . При начисление зарплаты проводка выполняется очень долго(от 2 до 5 минут). После долгих мучений пришли к выводу что 1C 8.3 строит не оптимальный запрос. В Инете нашёл подтверждение этому(тут,тут,тут). Решений два или отказываться от Postgresa или откатываться на 8.2

UPDATE:В принципе статья подходит и для 8.2 нюансы будут выделены по тексту синим цветом

Итак скачали установили все выбрано по умолчанию.

Дополнительно поставил midnight commander.

После соответственно обновляем те пакеты что имеются

apt-get update
apt-get upgrade

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


# locale-gen en_US ru_RU ru_RU.UTF-8
# export LANG="ru_RU.UTF-8"

Качаем с сайта 1с архив подготовленной версией postgresql

в моем случаи был 9.4.2-1.1C_postgresql-9.4.2-1.1C_amd64_deb.tar.bz2

(1C 8.2 умеет работать( есть официальные сборки) с postgresql 9.1.9 учитываем номер версий )

вытаскиваем из архива все пакеты в одну папку (/home/pg)


libpq5_9.4.2-1.1C_amd64.deb
postgresql-9.4_9.4.2-1.1C_amd64.deb
postgresql-client-9.4_9.4.2-1.1C_amd64.deb
postgresql-client-common_154.1.1C_all.deb
postgresql-common_154.1.1C_all.deb
postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

(при установке 9.1.9 возможен проблема с logratet по этому рекомендую 
вместо
postgresql-client-common_140~lucid_all 
postgresql-common_140~lucid_all
ставим 154 версию от 9.4)

и запускаем установку всего этого хозяйства


#dpkg -i /home/pg/*.deb



В моем случаи возникли проблемы с postgresql-contrib ему потребовалась libicu4.8.0 (или новей) в системе был 5.2 но это не помогло. Пришлось качать из инета версию 4.8 для 7 DebianСтавить отдельно и все заработало. Поэтому рекомендую с начало его поставить принудительно потом проводить установку postgresql

Если не установить в дальнейшем может возникнуть проблема при попытки создать базу данных
при первой попытке будет что то типа : нет доступа к файлу $libdir/fastrun
при повторной возможен вариант типа: база не подходит 
После установки меняем пароль для пользователя postgres (от его имени будем подключатся к базе)

(если при старте postgresql ругается  

“No PostgreSQL clusters exist; see “man pg_createcluster”  

или отсутствуют конфигурации запускаем

#pg_createcluster 9.1 main --start

 внимательно смотрим что все отработало нормально если ругается на превышении придела SHHMAX надо подправить конфиг ядра /etc/sysctl.conf значения которые необходимо указать можно быстро посчитать тут
в принципе и параметры для оптимизации под ваше железо и poistgresql можно взять оттуда же )

#psql -U postgres
ALTER USER postgres WITH PASSWORD 'наш пароль';
Настраиваем доступ по сети в файле /etc/postgresql/9.4/main/pg_hba.conf меняем строчку

# IPv4 local connections:
host      all              all       127.0.0.1/32         ident

На:
# IPv4 local connections:
host    all                 all     192.168.1.0/24    md5
или любые ваши данные по принципу host  [имя базы к которой даем доступ]   [имя пользователя которому даем доступ]   [сеть/маска]  md5 Перезапускаем службу и проверяем, запустился ли PostgreSQL:

# service postgresql restart

В инете множество рекомендаций по инициализации базы после установки, но посмотрев лог я убедился что это теперь проходит на автомате, и ничего делать дополнительно не надо. После устонавливаем 1с скачиваем нужный дистрибутив
В моем случаи был 8.3.6.2390_deb64.tar.gz
(установка 8.2 ни чем ни отличается)
распаковываем все что было в архиве в одну папку (/home/1c/)
1c-enterprise83-common-nls_8.3.6-2390_amd64.deb
1c-enterprise83-common_8.3.6-2390_amd64.deb
1c-enterprise83-server-nls_8.3.6-2390_amd64.deb
1c-enterprise83-server_8.3.6-2390_amd64.deb
1c-enterprise83-ws-nls_8.3.6-2390_amd64.deb
1c-enterprise83-ws_8.3.6-2390_amd64.deb
и естественно устанавливаем это богатство

#dpkg -i /home/1c/*.deb
Все проходит на ура без проблем
Запускаем 1с

# service srv1cv83 start

И у все работает.
Если при старте сервера 1с идут ошибки и записи об этом нет (да и вообще если нужен полный лог), можно попробовать отловить следующим образом
Создаем файл /opt/1C/v8.3/.../conf/logcfg.xml

<config xmlns="http://v8.1c.ru/v8/tech-log">;
<dump create="true" location="/var/log/1c/dumps" prntscrn="true" type="2">
<log history="72" location="/var/log/1c">
<event>
<eq property="name" value="EXCP">
</eq>
</event>
<event>
<eq property="name" value="EXCPCNTX">
</eq>
</event>
<event>
<eq property="name" value="PROC">
</eq>
</event>
<event>
<eq property="name" value="ADMIN">
</eq>
</event>
<event>
<eq property="name" value="MEM">
</eq>
</event>
<event>
<eq property="name" value="LEAKS">
</eq>
</event>
<property name="all">
</property>
</log>
</dump>
</config>

Не забываем дать права пользователю 1с - на него, и на каталог conf, которого в моем случае небыло.
И в /var/log/1c (папку тоже надо создать и дать на неё права 1с) будут детальные логи.
Так же дабы не было проблем при работе и ошибки с библиотекой libWang.so также рекомендую поставить доп пакет
apt-get install imagemagick
apt-get install unixodbc
apt-get install libgsf-bin
apt-get install t1utils
С Hasp ключом вроде все просто.
качал от сюда
потом просто ставим пакет с драйверами, вставляем ключ в сам сервак перезапускаем службу
service haspd restart
Так же у меня с ключом была "бага-фичя" 1с пока был один рабочий процес работал без ключа, а ка только появлялись последующие процесы в них непускала без ключа.
Ну вот как бы и всё. Сейчас 1С  уже в полную силу работает. Данную инструкцию перепроверил около 6 раз, пока тестировал релизил и т.д.
Да и на последок
бэкапим базу

pg_dump -U postgres -Fc --clean database_name >  /path/to/filesname.backup

бэкамп будет сжатым, сжатия +-  в 10 раз
восcтанавливаем

dropdb -U postgres database_name
createdb -U postgres database_name
pg_restore -U postgres -d database_name  /path/to/filesname.backup
я все операции провожу от имени пользователя postgres, если нужен другой просто меняйте и всё главное чтоб на выполнение операций хватало прав.

В процессе использования возникли ошибки 

1. При попытки печатать"Ошибка инициализации графической системы" 

Для решения  в /etc/environment добавляем строчку


SYSTEM_LIB_PATH="/usr/lib"


и делаем симлинки на библиотеки


ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so /usr/libWand.so
ln -s /usr/lib/x86_64-linux-gnu/libgsf-1.so /usr/lib/libgsf-1.so
ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/libfreetype.so
ln -s /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/libglib-2.0.so
ln -s /usr/lib/x86_64-linux-gnu/libodbc.so /usr/lib/libodbc.so

после ребутаем сервер.

2. Ошибка разбора XML-[19,10]




Помогло удаление фалов type.xml и type.xml.bak по пути /opt/1C/v8.2/x86_64/conf/grcmncfg/type.xml

В интренете нашол вариант что в конце надо добавить
но не проверял этот вариант


ps Если все таки возникнут ошибки загляните сюда тут основное что может произойти

Комментариев нет:

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