вторник, 13 ноября 2012 г.

1c linux


1. Итак у вас имеется установленный Ubuntu Server 10.04.* (При установке не выбирайте установку стандартного постгреса). Сразу же поставим последние обновления:

sudo apt-get update
sudo apt-get dist-upgrade

2. Дистрибутивы можно скачать из интернета сразу на сервер или скопировать заранее скачанные дистрибутивы через самбу. Я предполагаю, что самба может быть настроена не у всех, потому воспользуемся флешкой. Берем флешку, закидываем в нее заранее скачанные дистрибутивы в отдельные папки:


postgres
hasp

3. Создаем директорию, к которой будем монтировать флешку:

sudo mkdir /opt/1cinstall

4. Подключаем флешку к серверу, просматриваем как она подключилась:

sudo fdisk -l

sudo mount /dev/sdb1 /opt/1cinstall/1c
5. Проверяем что намонтировали:
Консоль
ls /opt/1cinstall
Т.к. на моей флешке ничего не было кроме папок с дистрибутивами, отобразились только они:


postgres
hasp

Установка PostgreSQL

1. Во время установки постгреса нам потребуются права рута, потому переходим в режим рута:
Консоль
sudo su

2. На данный момент последняя стабильная версия от Etersoft это 8.4.4, ее то мы и будем устанавливать. Переходим в папку postgres:

cd /home/master/1cinstall/postgres
Проверяем что есть в папке:

ls
Должно быть четыре пакета:

libpq5.2-8.4eter_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter-contrib_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter-server_8.4.4-eter1.1ubuntu_i386.deb
postgresql-8.4eter_8.4.4-eter1.1ubuntu_i386.deb

3. Меняем параметр ядра linux SHMMAX на 128Мб, насколько я знаю делать это надо на 32-битной машине:

echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf
echo "kernel.shmall = 134217728" >> /etc/sysctl.conf
Применяем изменения:

sysctl -p

4. Далее нам необходимо добавить группу postgres, но проблема в том, что необходимый нам id -26, занят группой tape. В данном случае я решил назначить группе postgres необходимый id и сделать ее первичной, а группу tape сделать вторичной. Итак, приступим:

nano /etc/group

Находим строку:

tape:x:26:

Приводим ее к виду:

postgres:x:26:tape

5. Для нормально работы PostgreSQL, требуется библиотека libreadline.so.5. Но у нас будет установлена более новая библиотека. Просмотрим библиотека какой версии стоит у нас:

ls -l /lib

Ниже приведу часть выхлопа, который нам необходим:

...
lrwxrwxrwx  1 root root      18 2012-01-22 15:39 libreadline.so.6 -> libreadline.so.6.2
-rw-r--r--  1 root root  204856 2011-02-24 06:53 libreadline.so.6.2
...

Итак мы выяснили, что у нас стоит библиотека версии 6.2. На нее то мы и будем создавать сим-линк:

cd /lib
ln -s libreadline.so.6.2 libreadline.so.5

6. Устанавливаем дополнительные библиотеки:

apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16

7. Переходим в папку с дистрибутивом постгреса:

cd /opt/1cinstall/postgres

8. Устанавливаем постгрес:

dpkg -i *.deb

9. Даем права на папку pgsql пользователю и группе postgres:

chown postgres:postgres /var/lib/pgsql
Кто не уверен, проверьте сменился ли владелец папки:

ls -l /var/lib
В выведенном на экран списке найдите папку pgsql, ее свойства должны быть примерно такими (на дату создания папки не обращайте внимания smile ):

drwxr-xr-x 4 postgres    postgres    4096 2011.02.18 10:09

10. Запускаем постгрес:

service postgresql start
Если постгрес уставлен правильно, то вы увидите сообщение:

Initializing database:                                                                   DONE
Starting postgresql service:                                                             DONE

11. Задаем пароль пользователю postgres:

passwd postgres

12. Задаем пароль внутреннему пользователю PostgreSQL, предварительно авторизировавшись под пользователем postgres:

su -l postgres
psql
alter user postgres with password 'YOUR_PASSWORD';
\q
exit

Где YOUR_PASSWORD - пароль который вы хотите задать для внутреннего пользователя постгрес.

13. Также нам необходимо настроить pg_hba.conf. Но перед этим сделаем бэкап этого файла:

cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.default
Открываем pg_hba.conf:

nano /var/lib/pgsql/data/pg_hba.conf
Находим следующие строки:

#IPv4 local connections:
#host    all         all         127.0.0.1/32          ident
Раскомментируем вторую строку и приведем к следующему виду:

#IPv4 local connections:
host    all        postgres         127.0.0.1/32          md5
Этой правкой мы дали разрешение пользователю postgres коннектиться с любой базой с локального хоста, при этом требуется пароль.

14. Теперь рассмотрим значения параметров в файле postgresql.conf, файл расположен в той же папке, что и pg_hba.conf. Параметры зависят от многих факторов, настраиваются индивидуально и служат для обеспечения максимальной производительности. Хотя и по умолчанию база будет работать (не забывайте перед правкой делать бэкап):

listen_addresses = ‘127.0.0.1′ – если соединения с базой будут только с локального хоста, то надежнее сделать именно так, чтобы порт 5432 слушался только на адресе 127.0.0.1.

fsync = off – значение on сильно снижает производительность, поскольку все транзакции непосредственно пишутся на жесткий диск без использования кэширования, но повышается надежность. Значение off есть смысл устанавливать, когда установлены надежные диски и надежный же UPS.

effective_cache_size = 2048MB – на моем сервере 4Гб ОЗУ, поэтому я предположил, что этот параметр надо выставить в половину ОЗУ, как рекомендует 1С для PosgreSQL.
work_mem = 16MB – насколько я понимаю, этот параметр зависит от среднего размера таблиц, в любом случае, для тонкой настройки надо тестировать на конкретном сервере с конкретной базой.
Более подробно о настройках pg_hba.conf и postgresql.conf можно почитать здесь и здесь.

15. Перезагружаем постгрес:

service postgresql restart

Вы должны получить примерно следующее сообщение:

Stopping postgresql service:                                                             DONE
Starting postgresql service:                                                             DONE

Если вы увидели вышеуказанное сообщение, значит мы правильно установили и настроили постгрес.


Установка сервера 1С:Предприятие 8.2.*

1. Теперь нам предстоит установка 1С сервера. Переходим в из папки postgres в папку 1c:

cd /home/master/1c

2. Устанавливаем пакеты:

dpkg -i 1c*.deb

3. Устанавливаем дополнительные пакеты, которые необходимы для нормальной работы сервера:

apt-get install imagemagick libglib2.0-dev libgsf-1-114 texlive-base ttf-mscorefonts-installer unixodbc

4. Далее нам необходимо проверить, все ли пакеты необходимые для корректной работы сервера 1С установлены. Сделать это можно с помощью утилиты config_server, которая входит в комплект дистрибутива сервера 1С. Переходим в каталог утилиты:

cd /opt/1C/v8.2/i386/utils

Где i386 - разрядность системы. Для 32-битных системы надо указывать - i386, а для 64-битных систем указывать - x86_64
Запускаем config_server:

./config_server
Утилита минут на пять задумалась... Это значит, что сервер 1С настроен правильно и больше ничего не нужно для нормального функционирования.

5. Теперь добавим локаль. Переходим в папку locale:

cd /usr/lib/locale
ln -s en_US.utf8 en_US
cd /usr/share/locale
ln -s en en_US

6. Даем пользователям 1С сервера права на запись:

chown -R usr1cv82:grp1cv82 /opt/1C

7. Добавляем сервер 1С в автозапуск:

update-rc.d srv1cv82 defaults
Вы должны получить следующий выхлоп:

  Adding system startup for /etc/init.d/srv1cv82 ...
  /etc/rc0.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc1.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc6.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc2.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc3.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc4.d/K20srv1cv82 -> ../init.d/srv1cv82
  /etc/rc5.d/K20srv1cv82 -> ../init.d/srv1cv82
Это означает что вы добавили 1С сервер в автозагрузку. Если вы не получили этого сообщения, значит что то сделали неправильно. Точно следуйте инструкции и все получится.

8. Перезагружаем сервер. Проверяем запускаются ли при старте системы постгрес и сервер 1С:

netstat -atn|grep 0.0.0.0:15
Вы должны получить примерно следующий выхлоп:

tcp           0         0 0.0.0.0:1560                  0.0.0.0:*                  LISTEN
tcp           0         0 0.0.0.0:1561                  0.0.0.0:*                  LISTEN
tcp           0         0 0.0.0.0:1562                  0.0.0.0:*                  LISTEN
tcp           0         0 0.0.0.0:1563                  0.0.0.0:*                  LISTEN
tcp           0         0 0.0.0.0:1540                  0.0.0.0:*                  LISTEN
tcp           0         0 0.0.0.0:1541                  0.0.0.0:*                  LISTEN

9. Так же для профилактики можно проверить, все ли процессы сервера запущены нормально:

ps aux|grep 1c
От имени пользователя usr1cv82 должно быть запущено три процесса: ragent, rmngr и rphost. После имен процессов идут номера портов, на которых они работают:

usr1cv82   762  0.0  2.3 104408 12080 ?        Ssl  14:41   0:01 /opt/1C/v8.2/i386/ragent -daemon
usr1cv82   765  0.0  3.5 147068 18068 ?        Sl   14:41   0:04 /opt/1C/v8.2/i386/rmngr -port 1541
usr1cv82   785  0.0 13.9 312112 70828 ?        Sl   14:41   0:03 /opt/1C/v8.2/i386/rphost -range 1560:1591 -reghost 1cserver -regport 1541 -pid 0277dd48-5d08-11e0-bb9c-0800273075f1

10. Также нам необходим веб-сервер apache, без него нельзя реализовать новые возможности 1С:Предприятия 8.2. У меня apache был установлен вместе с пакетом LAMP, еще на этапе установки ОС. Если же у вас его нет, установим его:

apt-get install apache2
Если вы не планируете использовать apache для других целей, то он готов к работе с 1С сервером. Все сервер 1С:Предприятие готов к работе.

Установка HASP

Очень часто, люди установившие данную связку в первый раз, не знают какие HASP-ключи им необходимы. Для полноценной работы вплоть до 12 пользователей, необходим лишь сетевой HASP-ключ на определенное пользователей. Данный HASP-ключ имеет маркировку NETXX ORGL8, где - XX количество лицензий. В случае если планируется больше 12 пользователей, также необходим серверный HASP-ключ, который имеет маркировку - ENSR8. Более подробно о ключах и ценах на них вы можете прочитать здесь.
ВАЖНО: Для 64-битной ОС нужен 64-битный серверный HASP-ключ. 32-битный серверный HASP-ключ на 64-битной ОС работать не будет!
Для нормальной работы HASP-ключей, необходимо установить драйвер для HASP-ключа и менеджер лицензий. Что мы и проделаем ниже.

1. Я решил воспользоваться драйверами от Etersoft. Пакеты необходимые под архитектуру вашего сервера вы найдете по следующим ссылкам х86 х64. Авторизируемся под рутом:

sudo -i

2. Монтируем флешку, как это было указано в главе "Подготовка сервера". Переходим в папку с дистрибутивами HASP-драйверов:

cd /opt/1cinstall/hasp

3. Устанавливаем скачанные пакеты:

dpkg -i *.deb

4. Выключаем сервер:

shutdown -h now

5. Ставим ключ, включаем сервер. Загружаются только те драйверы, ключ для которых вставлены в сервер. Проверить работает ли HASP-ключ можно командой:

sudo service haspd status
Установка на x64 машине
Поскольку некоторые программы в пакете haspd являются 32-битными, в системе должна быть установлена поддержка 32-битных программ. В Ubuntu это пакет ia32-libs.


Создание базы данных для 1с

1. Для начала укажем параметры сервера в hosts:
192.168.1.10     1cserver

Где 192.168.11.10 - ip адрес машины на которой установлен 1С сервер, а 1c-server - имя машины на которой установлен 1С сервер. Файл hosts находится в директории:
%SystemRoot%\system32\drivers\etc
2. Через оснастку Администрирование серверов 1С Предприятия, оснастка находится в:
Меню Пуск » Программы » 1С Предприятие 8.2 » Дополнительно
Создадим центральный сервер:

Указываем параметры вновь создаваемого сервера 1С:

Где 1c-server - имя машины на которой установлен 1С сервер
Далее создадим базу на 1С сервере, через добавление новой базы данных в клиенте 1С:

Указываем псевдоним БД, т.е. имя которое будет отображаться в списке доступных БД:

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

Где 1c-server - netbios имя нашего сервера, base - имя создаваемой базы, postgres - пользователь постгреса.
Основные настройки закончены, остальное не так важно и настраивается индивидуально:

Основные моменты: толстый клиент - все обработки и вычисления производятся на стороне клиента, тонкий клиент - вычисления производятся на стороне сервера.
Теперь попробуйте запустить конфигуратор и загрузить туда какие нибудь данные. У меня процесс прошел на ура



Установка Apache2


Перед нами стоит задача - настроить доступ к базам данных сервера 1С:Предприятие через web-клиент (браузер). Чтобы пользователи получили возможность работать с 1С:Предприятие через браузер, без установки клиентского программного обеспечения. Обращаю внимание, на то, что без специального сетевого HASP-ключа, веб-клиент работать не будет.

1. Итак веб-сервер apache установлен, в наличии имеем корневой каталог:
/var/www
Где находится единственный файл:
index.html
Для начала создадим в корневом каталоге apache, папку base:

mkdir /var/www/base
Где base - имя базы данных к которой необходимо настроить доступ посредством веб-сервера apache.

2. Добавляем в httpd.conf необходимые данные о базе данных, с помощью скрипта webinst, входящего в состав пакета 1С сервера. Для этого переходим в каталог:
Консоль
cd /opt/1C/v8.2/i386
Запускаем скрипт с необходимыми параметрами:

./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf

Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.
При успешном выполнении скрипта вы должны получить выхлоп:

Установка успешно выполнена.
acp:  /etc/apache2/httpd.conf
rd:   /var/www/base
vd:   /etc/apache2/httpd.conf
Также можно проверить правильность настроек, просмотрев что прописалось в файл httpd:

LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"
# 1c publication
Alias "base" "/var/www/base/"
<Directory "/var/www/base/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/base/default.vrd"
</Directory>
В каталоге базы вы должны найти файл default.vrd, следующего содержания:

<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/base"
                ib="Srvr=&quot;1cserver&quot;;Ref=&quot;base&quot;;"/>
Где 1c-server - имя сервера на котором находится 1С сервер, base - имя БД к которой настраиваем доступ, а &quot; - кавычки написанные кодом.

3. Теперь даем права на директорию:

chown -R www-data:www-data /var/www/base

4. Перезагружаем apache:

service apache2 restart

5. В браузере на клиентской машине отключаем блокировку всплывающих окон. Пробуем пройти по адресу:
http://1cserver/base
Где base - имя БД к которой мы настроили доступ, а 1cserver - имя сервера на котором настроен веб-сервер Apache. Видим следующее:

6. Чтобы решить эту проблему нам необходимо с помощью оснастки "Администрирование серверов 1С Предприятия" в свойствах БД, дать разрешение серверу 1С выдавать лицензии:

Если вы сделали все правильно, то откроется база к которой мы настраивали доступ:

По факту работа через браузер, это работа с помощью тонкого клиента, а для этого конфигурация должна поддерживать работу в режиме управляемого приложения. Иначе никак...


 Обновление сервера 1С:Предприятие и сервера баз данных PostgreSQL


По просьбам трудящихся описываю процесс обновления как самого сервера 1С:Предприятие, так и сервера баз данных PostgreSQL.

1. Для начала надо сделать бэкапы (резервные копии) баз данных (предварительно выгнав всех из 1С), которые крутятся на сервере. Бэкапы будем делать средствами 1С. Для этого открываем конфигуратор, в меню Сервис выбираем пункт Выгрузить информационную базу:

В открывшемся окне выбираем директорию, куда будет сохраняться бэкап, и указываем имя бэкапа (я просто добавляю к стандартному имени бэкапа дату в формате ГГГГ.ММ.ДД):


2. Теперь нужно удалить пакеты сервера 1С:Предприятие, которые необходимо обновить. Но перед удалением, завершим процессы сервера

1С:Предприятие:

service srv1cv82 stop
Получаем выхлоп:

Stopping 1C:Enterprise 8.2 server: OK

3. Затем посмотрим, какие пакеты сервера 1С:Предприятие у нас установлены:

dpkg -l | grep 1c-enterprise
Получаем примерный выхлоп:

ii  1c-enterprise82-common              8.2.14-533                   1C:Enterprise 8.2 common components
ii  1c-enterprise82-common-nls          8.2.14-533                   National resource files for 1C:Enterpise 8.2 common components for Linux
ii  1c-enterprise82-server              8.2.14-533                   1C:Enterprise 8.2 server for Linux
ii  1c-enterprise82-server-nls          8.2.14-533                   National resource files for 1C:Enterpise 8.2 server for Linux
ii  1c-enterprise82-ws                  8.2.14-533                   1C:Enterpise 8.2 Web-services components for Linux
ii  1c-enterprise82-ws-nls              8.2.14-533                   National resource files for 1C:Enterpise 8.2 Web-services components for Linux

4. Мы узнали какие пакеты сервера 1С:Предприятия у нас установлены, можно приступить к их удалению. Пакеты удаляются в обратно порядке:

dpkg -r 1c-enterprise82-ws-nls 1c-enterprise82-ws 1c-enterprise82-server-nls 1c-enterprise82-server 1c-enterprise82-common-nls 1c-enterprise82-common
Проверим, не осталось ли каких либо файлов, после удаления пакетов:

dpkg -l | grep 1c-enterprise
Получаем примерный выхлоп:

rc  1c-enterprise82-server              8.2.14-533                   1C:Enterprise 8.2 server for Linux
rc  1c-enterprise82-ws                  8.2.14-533                   1C:Enterpise 8.2 Web-services components for Linux

После удаления остались некоторые файлы настроек, их тоже необходимо удалить:

dpkg -P 1c-enterprise82-ws 1c-enterprise82-server
И вновь проверяем, не осталось ли каких либо файлов от пакетов сервера 1С:Предприятие:

dpkg -l | grep 1c-enterprise
Все, команда не показывает никаких пакетов, значит мы полностью удалили сервер 1С:Предприятие.

5. Теперь можно устанавливать пакеты новой версии сервера 1С:Предприятие. Я не буду описывать этот процесс, т.к. он уже описан в главе Установка сервера 1С:Предприятие 8.2.*.

6. Если вы не планируете обновлять сервер баз данных PostgreSQL, то дальше вам нет необходимости читать главу. Если же вы все же решили поставить новую версию PosgreSQL, то для начала вам надо остановить PostgreSQL:

service posgresql stop

7. Теперь посмотрим какие пакеты PostgreSQL установлены:

dpkg -l | grep postgre
Получаем примерный выхлоп:

ii  postgre-etersoft-8.4                 8.4.4-eter2ubuntu            PostgreSQL client programs and libraries (Etersoft edition for Selta and 1C)
ii  postgre-etersoft-8.4-contrib         8.4.4-eter2ubuntu            Contributed source and binaries distributed with PostgreSQL
ii  postgre-etersoft-8.4-docs            8.4.4-eter2ubuntu            Extra documentation for PostgreSQL
ii  postgre-etersoft-8.4-plpython        8.4.4-eter2ubuntu            The Python procedural language for PostgreSQL
ii  postgre-etersoft-8.4-server          8.4.4-eter2ubuntu            The programs needed to create and run a PostgreSQL server

8. Мы узнали какие пакеты PostgreSQL установлены у нас на сервере, можно приступать к удалению этих пакетов. Удаляем снова в обратном порядке:

dpkg -r postgre-etersoft-8.4-server postgre-etersoft-8.4-plpython postgre-etersoft-8.4-docs postgre-etersoft-8.4-contrib postgre-etersoft-8.4
Проверяем наличие неудаленных частей пакетов:

dpkg -l | grep postgre
Получаем примерный выхлоп:

rc  postgre-etersoft-8.4-contrib         8.4.4-eter2ubuntu            Contributed source and binaries distributed with PostgreSQL
rc  postgre-etersoft-8.4-server          8.4.4-eter2ubuntu            The programs needed to create and run a PostgreSQL server
Удаляем файлы, оставшиеся после первого удаления:

dpkg -P postgre-etersoft-8.4-server postgre-etersoft-8.4-contrib
При выполнении команды dpkg -P postgre-etersoft-8.4-server, вы получите предупреждение:

(Чтение базы данных ... на данный момент установлено 45206 файлов и каталогов.)
Удаляется пакет postgre-etersoft-8.4-server ...

Вычищаются файлы настройки пакета postgre-etersoft-8.4-server ...

dpkg: предупреждение: при удалении postgre-etersoft-8.4-server не пустой каталог «/var/lib/pgsql/data» не удалён.
dpkg: предупреждение: при удалении postgre-etersoft-8.4-server не пустой каталог «/var/lib/pgsql» не удалён.

Это предупреждение сообщает, что каталоги с базами данных не были удалены. Это в свою очередь значит, что скорее всего, нам не придется восстанавливать бэкапы после установки новой версии PostgreSQL.

9. Все, теперь можно устанавливать новую версию PosgreSQL. Но как и в случае с обновлением сервера 1С:Предприятие, я не буду описывать процесс установки PostgreSQL. Этот процесс описан в главе - Установка PostgreSQL@Etersoft 8.4.4.


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

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