Встал вопрос в переводе 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.
После соответственно обновляем те пакеты что имеются
Генерируем русскую локаль и задаем переменную среды LANG, именно с ней будет работать скрипт инициализации базы данных.
в моем случаи был 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)
и запускаем установку всего этого хозяйства
(если при старте postgresql ругается
Попытки было две первую попытка была на любимом мной 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После установки меняем пароль для пользователя postgres (от его имени будем подключатся к базе)
Если не установить в дальнейшем может возникнуть проблема при попытки создать базу данных
при первой попытке будет что то типа : нет доступа к файлу $libdir/fastrun
при повторной возможен вариант типа: база не подходит
(если при старте 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
и естественно устанавливаем это богатство
Запускаем 1с
Если при старте сервера 1с идут ошибки и записи об этом нет (да и вообще если нужен полный лог), можно попробовать отловить следующим образом
Создаем файл /opt/1C/v8.3/.../conf/logcfg.xml
И в /var/log/1c (папку тоже надо создать и дать на неё права 1с) будут детальные логи.
Так же дабы не было проблем при работе и ошибки с библиотекой libWang.so также рекомендую поставить доп пакет
apt-get install imagemagick
apt-get install unixodbc
apt-get install libgsf-bin
apt-get install t1utils
С Hasp ключом вроде все просто.
качал от сюда
потом просто ставим пакет с драйверами, вставляем ключ в сам сервак перезапускаем службу
Ну вот как бы и всё. Сейчас 1С уже в полную силу работает. Данную инструкцию перепроверил около 6 раз, пока тестировал релизил и т.д.
Да и на последок
бэкапим базу
восcтанавливаем
(установка 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 добавляем строчку
В процессе использования возникли ошибки
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
ps Если все таки возникнут ошибки загляните сюда тут основное что может произойти
Комментариев нет:
Отправить комментарий