пятница, 10 декабря 2010 г.

Настройка сервера 1С V8.1 на Linux Fedora 12, 14.

В интернете достачное количество подобного рода статей, однако не все моменты раскрыты подробно. Тем более, что чаще всего описание установки 1С сервера приведено для CentOS 5, что исключает некоторые трудности при установке. Выбор в пользу Fedora 14 сделан по причине неработоспособности видеодрайвера для последних видеочипов от Intel, идущего в комплекте с CentOS 5. При этом также в CentOS 5 нет поддержки ext4. Конечно, выход CentOS 6 все исправит, однако, появление новых версий пакетов скорее всего приведет к появлению тех же ошибок при инсталляции сервера 1С, что и на Fedora. Да и потом, срочность работ не позволяет отложить настройку 1С сервера под linux до лучших времен.

Начальная подготовка.
Конечно же необходимо установить ОС Fedora 14 на сервер. Желательно, при наличии 2-х идентичных винчестеров, настроить softraid 1 и создать разбивку винчестера в следующем виде:
/boot swap / /tmp /home /var
300MB 2GB 20GB 10GB 5-10GB Все что осталось

В качестве файловой системы выбираем ext4 со стандартными настройками. Хотя возможна оптимизация.
При размере оперативной памяти более 3 GB от создания swap раздела можно отказаться.
При размере оперативной памяти более 4 GB желательно установить 64-битную версию ОС. В нашей инструкции мы будем ориентироваться на 64-битную версию. Однако, надо помнить, что лицензионный серверный ключ для 64-битной версии стоит на 20000 рублей дороже.
Размер базы PostgreSQL при работе 4-6 бухгалтеров за год может вырасти до 1-2 GB.
Базы хранятся в /var/lib/pgsql/data
Задайте при установке узнаваемое сетевое имя компьютера, скажем server1c.

Нам потребуются:
1. Дистрибутив 1С сервера в точности той версии, что и версии клиентов 1С на компьютерах бухгалтера. Если версии не будут совпадать, то базы на сервере не откроются и клиент сообщит о несоответсвии версий. (В нашем случае 1C_server_v8.1.15.14)
2. Дистрибутив пропатченной 1C PostgreSQL. Нативная PostgreSQL, идущая в дистрибутиве ОС, неподходит (В нашем случае PostgreSQL_8.3.8-1.1C).
Все это можно скачать с сайта http://users.v8.1c.ru/ после предварительной регистрации или с дисков ИТС 1С. На дисках ИТС они находятся в папке cdrom:/1CITS/EXE/V8/Platform/
3. rpm-пакет compat-readline43-4.3-3.x86_64.rpm необходим для PostgreSQL от 1С
4. 1C сервер без лицензионного серверного HASP ключа позволяет подключится до 12 клиентов одновременно. 13-му клиенту будет выдан отказ на подключение. Поэтому, если у вас более 12 пользователей, которые одновременно работают с 1С, то необходимо приобрести серверный лицензионный HASP ключ и, соответственно, установить драйвер HASP ключа. Скачать с сайта ftp://ftp.aladdin.com/pub/hasp/srm/Linux/HASP_SRM_LINUX_3.50_RedHat_RPM_Run-time_Installer.tar.gz .До 12 пользователей включительно, вам этот драйвер не потребуется. Однако, исходя из лицензионного соглашения 1С, приобретение серверного HASP ключа обязательно.

Установка необходимых программ и компонентов.
Все делаем конечно же из под root.
Установка 1С сервера.
cd /<полный путь до папки где находся rpm пакеты 1С сервера>
rpm -ihv --nodeps ./*.rpm
Запустим сервер:
service srv1cv81 start
Пропишем сервер 1С в автозапуск.
chkconfig add srv1cv81
chkconfig srv1cv81 on

Установка сервера PostgreSQL
Необходимо установить пакет compat-readline43-4.3-3.x86_64.rpm
rpm -ihv --nodeps compat-readline43-4.3-3.x86_64.rpm
cd /<полный путь до папки где находся rpm пакеты сервера PostgreSQL>
rpm -ihv --nodeps postgresql-libs-8.3.8-1.1C.x86_64.rpm
rpm -ihv --nodeps postgresql-8.3.8-1.1C.x86_64.rpm
rpm -ihv --nodeps postgresql-server-8.3.8-1.1C.x86_64.rpm
rpm -ihv --nodeps postgresql-pl-8.3.8-1.1C.x86_64.rpm
rpm -ihv --nodeps postgresql-contrib-8.3.8-1.1C.x86_64.rpm

Для удачного запуска PostgreSQL изменяем параметр ядра linux:
sysctl kernel.shmmax=300000000
и можем сразу же прописать это значение в /etc/sysctl.conf. Просто добавьте в конец файла kernel.shmmax=300000000 (максимальный размер ОЗУ выделяемый linux-ядром для одного процесса в байтах)
Необходимо выполнить инициализацию базы данных PostgreSQL. Важно это сделать до перезагрузки ОС, поскольку сервер PosgreSQL может проинициализироваться с неправильной локалью.
LANG=ru_RU.utf-8 /etc/init.d/postgresql start
Если инициализация не проходит, смотрим ошибки в файле /var/lib/pgsql/

Правим файл /var/lib/pgsql/data/pg_hba.conf. В этом файле настраивается общие правила доступа к базам данных PostgreSQL.
Исправим одну из строчек этого файла следующим образом:
host    all         all         0.0.0.0/0             trust
Тем самым мы разрешаем доступ с локального компьютера к серверу и базам данных PostgreSQL любому пользователю.
И раскоментируем и отредактируем следующую срочку этого файла:
host    all         all         ::1/128             trust
Тем самым мы разрешаем доступ с локального компьютера к серверу и базам данных PostgreSQL любому пользователю, но уже по протоколу ip v6. Если этого не сделать, то при создании базы в 1С оснастке возникнет ошибка.
Можно ограничить права доступа к базам и серверу PostgreSQL, но это выходит за рамки статьи.

Пропишем в автозапуск сервер PostgreSQL.
chkconfig pgsql on

Отключаем файервол, если он есть. Либо разрешаем порты 1540, 1541, 1560-1580 по протоколу tcp. Тем самым мы разрешаем подключение клиентов 1С к серверу.

Настраиваем параметры работы сервера PostgreSQL. Правим файл /var/lib/pgsql/data/postgresql.conf
Более подробно значения параметров на сайте http://www.ibm.com/developerworks/ru/library/l-1c/index.html?S_TACT=105AGX99&S_CMP=GR01
При настройке ориентируемся на объем ОЗУ 4Gb
shared_buffers = 256 MБ (параметр ядра kernel.shmmax должен быть больше этого параметра)
effective_cache_size = 3000 (50–75% от объема ОЗУ)
work_mem = 64 MБ
maintenance_work_mem = 256 MБ
autovacuum = on
vacuum_cost_limit = 200
vacuum_cost_delay = 200
deadlock_timeout= 2 s
fsync =
checkpoint_segments. Параметр определяет количество сегментов между контрольными точками. Размер каждого сегмента составляет 16 МБ, а общий объём дискового пространства, которое может занять журнал транзакций, определяется по формуле (checkpoint_segments * 2 + 1) * 16 МБ.
checkpoint_timeout. Попробуйте использовать параметр также для регулировки объема записи журнала транзакций из ОЗУ на винчестер.
max_locks_per_transaction = 400
default_with_oids = on

Перезапускаем PostgreSQL
/etc/init.d/postgresql restart. Проверяем, правильно ли ввели все параметры.
Первичная настройка PostgreSQL закончена. Остается мониторить работу сервера БД и оптимизировать производительность.

На клиентских машинах в файле C:\Windows\system32\drivers\etc\hosts необходимо прописать ip-адрес и имя сервера (в нашем случае server1c). Либо необходимо запустить samba-сервер и указать сетевое имя, совпадающее с именем компьютера в hosts. Если вы поменяете имя компьютера после первого запуска 1С сервера, то 1С сервер перестанет запускаться. Дело в том, что при первом запуске 1С сервер считывает имя компьютера из файла hosts и сохраняет в конфигурационном файле /home/usr1cv81/.1cv81/1C/1cv81/srvribrg.lst. Необходимо либо исравить имя сервера, либо удалить этот файл и перезапустить сервер 1С. Правда в этом случае необходимо снова создавать кластер серверов и настраивать базу данных.

Создание базы 1С.
Для перехода с файл-серверной версии на клиент-серверную необходимо иметь готовую выгрузку БД 1С в виде одного файла.
Далее создаем кластер серверов из оснастки 1С: Пуск – 1С Предприятие 8.1 – Серверы 1С Предприятия. Создайте центральный сервер правым щелчком.
Потом открываем в дереве серверов слева центральный сервер.Создаем информационную базу:
кластер серверов "1С:Предприятие" – server1c;
имя информационной базы в кластере – testdb;  или необходимое вам.
защищённое соединение – Выключено;
тип СУБД – PostgreSQL;
сервер баз данных – server1c;
имя базы данных – testdb; или необходимое вам.
пользователь базы данных – postgres;
пароль пользователя – <пусто>.
Обязательно отметьте галочкой "Создать базу данных в случае её отсутствия".
Нажмите кнопку Готово.

Далее запустим клиент 1С и добавим базу в списки, запустим для вновь созданной базы конфигуратор и сделаем загрузку файла БД 1С.

Создание базы со скриншотами здесь: http://it-tex.ru/stat/1c_postresql.php.

Установка завершена.
Можно настроить резервное копирование БД 1С (dump), однако если вы создали softraid 1, то это не так актуально. Конечно же необходимо произвести оптимизацию производительности сервера PostgreSQL.

Дополнительные ссылки:

вторник, 2 марта 2010 г.

Принтер HP LaserJet 1018 под Mandriva Linux 2010

Столкнулся с проблемой настройки принтера HP  LaserJet 1018 под Mandriva Linux 2010. Дело в том, что принтер этот, как и HP  LaserJet 1020, 1022 и еще некоторые прошивается при включении с помощью драйвера. Более подробно здесь. Но в Mandriva 2010 принтер нормально работает, т.е. закидывается в принтер прошивка и идет печать, только если его включить после того как ОС загрузилась. Если принтер включается вместе с компьютером, то прошивка не забрасывается на принтер и он, само собой, не печатает. Дополнение udev правилом (rules) не спасло положения: в этом случае прошивка загружалась в принтер, что можно определить по характерному тестовому вращению валов принтера как при его включении, но печать стопорится.
Поиск решения в интернете лишь обозначил наличие подобной проблемы и в других дистрибутивах Linux. Явно в них было что-то общее. И это общее представляет собой CUPS 1.4 или новее. С этой версии CUPS не использует модуль ядра  usblp. Принтеры определяются через hal, что в Mandriva 2010 видно по дополнительно установленному пакету hal-cups-utils. В рекомендациях к этой версии CUPS указано, что использование модуля ядра usblp нужно отключить. Однако этот модуль используется драйвером принтера foo2zjs, который устанавливается автоматически вместе с принтером при первом подключении такового. Данный драйвер умеет забрасывать прошивку на принтер, но не делает этого при включении компьютера. После нескольких циклов выключения-включения, принтер начинает определяется в системе, прошивка прошиваться, а печать печататься, и то только после того как в system-config-printer поставить галочку "Разрешен". В общем после долгих экпериментов созрело временное решение проблемы:
1. Установить принтер стандартным способом;
2. Прописать в файле /etc/rc.d/rc.local такую строчку /usr/sbin/hplj1018 для принтера HP LaseJet 1018, для другого принтера HP меняются только цифры.
Данные изменения позволяют получить работоспособный принтер, даже если он включен вместе с компьютером.

вторник, 1 июля 2008 г.

Да здравствует новый блог, коих на просторах интернета просто немерянно.
Возможно, мой блог и пригодится кому-нибудь. Буду над этим трудится.