1C: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 21: | Строка 21: | ||
SUPPORTED=ru_RU</pre> | SUPPORTED=ru_RU</pre> | ||
Дело в том, что если сервер 1С не найдёт тут кодировки ru_RU.UTF-8(например, если установка происходит в OVZ-контейнере), то он будет настойчиво пытаться подключиться к нашей базе с локалью en_EN.UTF-8. А в chroot postgresql копируется только та локаль, которая задана при создании базы. Таким образом 1С-сервер не сможет подключиться к базе. Итак, данное руководство предполагает, что вы используете локаль ru_RU.UTF-8 в качестве общесистемной. | Дело в том, что если сервер 1С не найдёт тут кодировки ru_RU.UTF-8 (например, если установка происходит в OVZ-контейнере), то он будет настойчиво пытаться подключиться к нашей базе с локалью en_EN.UTF-8. А в chroot postgresql копируется только та локаль, которая задана при создании базы. Таким образом 1С-сервер не сможет подключиться к базе. Итак, данное руководство предполагает, что вы используете локаль ru_RU.UTF-8 в качестве общесистемной. | ||
Если вы хотите использовать для доступа к БД имя хоста, а не IP, то хорошо бы | Если вы хотите использовать для доступа к БД имя хоста, а не IP, то хорошо бы настроить обратную DNS-зону. Это избавит вас от некоторых хлопот и возможной путаницы (подробности ниже). | ||
==== Устанавливаем Postgresql ==== | ==== Устанавливаем Postgresql ==== | ||
Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся [ftp://ftp.altlinux.org/pub/people/rt/1c-repo здесь], либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma) то apt-get install 'rpm>=4.0.4-alt93'): | Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся [ftp://ftp.altlinux.org/pub/people/rt/1c-repo здесь], либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma), то apt-get install 'rpm>=4.0.4-alt93'): | ||
<pre>apt-get install postgresql-8.3eter postgresql-8.3eter-contrib postgresql-8.3eter-server</pre> | <pre>apt-get install postgresql-8.3eter postgresql-8.3eter-contrib postgresql-8.3eter-server</pre> | ||
Строка 33: | Строка 33: | ||
<pre>service postgresql start</pre> | <pre>service postgresql start</pre> | ||
Для нормально работы с базой и | Для нормально работы с базой, и чтобы не возникала проблема кодировок, проверяйте locale. Если нет, устанавливайте | ||
<pre>localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # для российских баз | <pre>localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # для российских баз | ||
localedef -c -i uk_UA -f UTF-8 uk_UA.UTF-8 # для украинских баз</pre> | localedef -c -i uk_UA -f UTF-8 uk_UA.UTF-8 # для украинских баз</pre> | ||
Строка 47: | Строка 47: | ||
<pre>update_chrooted conf && service postgresql restart</pre> | <pre>update_chrooted conf && service postgresql restart</pre> | ||
Во время первого запуска создаются файлы конфигурации postgres и chroot-окружение. | Во время первого запуска создаются файлы конфигурации postgres и chroot-окружение. Поэтому открываем файл /var/lib/pgsql/data/postgresql.conf и проверяем, чтобы postgres слушал нужный интерфейс, имел соответствующую локаль и настройки, описанные в документации 1С-сервера. Вот пример работающего файла конфигурации (закомментированные строки пропущены). <div style="display: inline; color: red;">Пожалуйста, не копируйте себе бездумно эту конфигурацию! В комментариях дефолтного postgresql.conf находится много полезной информации</div>: | ||
<pre>listen_addresses = '*' | <pre>listen_addresses = '*' | ||
Строка 64: | Строка 64: | ||
default_with_oids = on</pre> | default_with_oids = on</pre> | ||
Учтите, что эта настройка далека от идеальной и производительной. Данное руководство не ставит перед собой такой задачи, | Учтите, что эта настройка далека от идеальной и производительной. Данное руководство не ставит перед собой такой задачи, поэтому настроить Postgresql под свои нужды вам надо будет самостоятельно (вот, к примеру, [http://oc.cs.msu.su/club/html/ руководство по настройке производительности]) | ||
Также в файле /var/lib/pgsql/data/pg_hba.conf вам надо будет определить политику доступа пользователей к СУБД (для этого читайте документацию postgresql), а по умолчанию настройка выглядит так: | |||
<pre>host all all 0.0.0.0/0 md5</pre> | <pre>host all all 0.0.0.0/0 md5</pre> | ||
Что означает разрешение подключаться с любых адресов к любым базам с авторизацией по паролю. | Что означает разрешение подключаться с любых адресов к любым базам с авторизацией по паролю. | ||
Для первоначальной настройки достаточно сменить пароль | Для первоначальной настройки достаточно сменить пароль суперпользователя СУБД: | ||
<pre>[root@localhost ~]# psql -h localhost -U postgres template1 | <pre>[root@localhost ~]# psql -h localhost -U postgres template1 | ||
template1=# ALTER USER postgres WITH PASSWORD 'secret';</pre> | template1=# ALTER USER postgres WITH PASSWORD 'secret';</pre> | ||
Строка 80: | Строка 80: | ||
установить | установить | ||
далее, не забываем: | далее, не забываем: | ||
<pre>mount -t usbfs none /proc/bus</pre> | <pre>mount -t usbfs none /proc/bus/usb</pre> | ||
проверяем | проверяем | ||
<pre>service aksusbd | <pre>service aksusbd start</pre> | ||
Если статус «DONE» значит, ключи | Если статус «DONE», значит, ключи встали и сервер должен работать. | ||
==== Установка и запуск сервера 1С ==== | ==== Установка и запуск сервера 1С ==== | ||
Строка 92: | Строка 92: | ||
Запуск: | Запуск: | ||
<pre>service srv1cv81 start</pre> | <pre>service srv1cv81 start</pre> | ||
К сожалению 1С-сервер практически не пишет никаких отчётов, | К сожалению, 1С-сервер практически не пишет никаких отчётов, поэтому если что-то не работает, понять, что именно не так, бывает сложно. | ||
Порты, которые слушает | Порты, которые слушает 1С: | ||
<pre>tcp 0 0 *:1540 *:* LISTEN 18704/ragent | <pre>tcp 0 0 *:1540 *:* LISTEN 18704/ragent | ||
tcp 0 0 *:1541 *:* LISTEN 18711/rmngr | tcp 0 0 *:1541 *:* LISTEN 18711/rmngr | ||
Строка 106: | Строка 106: | ||
Из Windows это можно сделать так: | Из Windows это можно сделать так: | ||
Запустите оснастку управления серверами предприятия из меню Пуск — 1С Предприятие 8.1 — Серверы 1С Предприятия. | Запустите оснастку управления серверами предприятия из меню Пуск —> 1С Предприятие 8.1 —> Серверы 1С Предприятия. | ||
Создайте центральный сервер. Для этого войдите в контекстное меню и выберите пункт "New" | Создайте центральный сервер. Для этого войдите в контекстное меню и выберите пункт "New". | ||
Введите имя и описание линукс-сервера. | Введите имя и описание линукс-сервера. | ||
Теперь после закрытия окна нажмите на плюсик рядом с новым сервером. Могут проявиться типичные ошибки. | Теперь после закрытия окна нажмите на плюсик рядом с новым сервером. Могут проявиться типичные ошибки. | ||
Строка 119: | Строка 119: | ||
=== Часто возникающие проблемы === | === Часто возникающие проблемы === | ||
В файле /home/usr1cv81/.1cv81/1C/1Cv81/reg_1541/1CV8Reg.lst можно найти конфигурацию кластера 1С. Например у меня он выглядит так: | В файле /home/usr1cv81/.1cv81/1C/1Cv81/reg_1541/1CV8Reg.lst можно найти конфигурацию кластера 1С. Например, у меня он выглядит так: | ||
<pre>{0, | <pre>{0, | ||
Строка 141: | Строка 141: | ||
* 1С не сможет подключиться к базе Postgresql, если настройки локали не совпадают. Так что приведите параметр Locale= в соответствие с настройками вашей базы. | * 1С не сможет подключиться к базе Postgresql, если настройки локали не совпадают. Так что приведите параметр Locale= в соответствие с настройками вашей базы. | ||
* | * А ещё 1С берёт значение хоста откуда угодно, только не из настроек, введённых пользователем. :) При необходимости укажите правильные имена хостов для «Центрального сервера» и «Локального кластера» вручную. Однако если у вас правильно настроена обратная зона DNS, ручных исправлений не потребуется. | ||
==== Установка 1С-сервера в OVZ-контейнер ==== | ==== Установка 1С-сервера в OVZ-контейнер ==== | ||
Строка 155: | Строка 155: | ||
Либо вы можете взять готовый ovz-шаблон [ftp://ftp.altlinux.ru/pub/people/rt/1c/altlinux-1c-server.tar.gz отсюда]. | Либо вы можете взять готовый ovz-шаблон [ftp://ftp.altlinux.ru/pub/people/rt/1c/altlinux-1c-server.tar.gz отсюда]. | ||
Далее | Далее размещаем шаблон в /var/lib/vz/template/cache/ | ||
<pre>cp altlinux-1c-server.tar.gz /var/lib/vz/template/cache/</pre> | <pre>cp altlinux-1c-server.tar.gz /var/lib/vz/template/cache/</pre> | ||
Строка 163: | Строка 163: | ||
<pre>vzctl create 101 --ostemplate altlinux-1c-server --config myserver</pre> | <pre>vzctl create 101 --ostemplate altlinux-1c-server --config myserver</pre> | ||
Здесь 101 — это номер инстанции (у вас он может быть другой) и myserver -конфигурация сервера | Здесь 101 — это номер инстанции (у вас он может быть другой) и myserver - конфигурация сервера; вам также нужно произвести её самостоятельно, для чего читайте руководство по [[OpenVZ|OpenVZ]]. | ||
Запускаем инстанцию: | Запускаем инстанцию: | ||
<pre>vzctl start 101</pre> | <pre>vzctl start 101</pre> | ||
Копируем внутрь rpm-пакеты с 1С- | Копируем внутрь rpm-пакеты с 1С-сервером: | ||
<pre>cp 1C_Enterprise-* /var/lib/vz/root/101/root/</pre> | <pre>cp 1C_Enterprise-* /var/lib/vz/root/101/root/</pre> | ||
После этого можно зайти в инстанцию и установить пакеты | После этого можно зайти в инстанцию и установить пакеты 1С-сервера: | ||
<pre>vzctl enter 101 | <pre>vzctl enter 101 | ||
entered into VE 101 | entered into VE 101 | ||
cd /root | cd /root | ||
apt-get install 1C_Enterprise-common-8.1.8-76.i386.rpm 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm 1C_Enterprise-server-8.1.8-76.i386.rpm</pre> | apt-get install 1C_Enterprise-common-8.1.8-76.i386.rpm 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm 1C_Enterprise-server-8.1.8-76.i386.rpm</pre> |
Версия от 20:01, 25 апреля 2009
Установка сервера 1С Предприятие 8.1 на ALT Linux
Состав сервера 1С
- 1C_Enterprise-common… — Общие компоненты 1С Предприятие 8.1 для Linux
- 1C_Enterprise-server… — Сервер 1С Предприятие 8.1 для Linux
- 1C_Enterprise-ws… — Компоненты Web-сервисов 1С Предприятие 8.1 для Linux
Так же для каждой из трёх компонент присутствуют пакеты -nls с поддержкой национальных символов. В этой статье описывается установка общей и серверной компонент.
Подготовка к установке
Сначала проверьте настройку интернационализации системы:
cat /etc/sysconfig/i18n LANG=ru_RU.UTF-8 SUPPORTED=ru_RU
Дело в том, что если сервер 1С не найдёт тут кодировки ru_RU.UTF-8 (например, если установка происходит в OVZ-контейнере), то он будет настойчиво пытаться подключиться к нашей базе с локалью en_EN.UTF-8. А в chroot postgresql копируется только та локаль, которая задана при создании базы. Таким образом 1С-сервер не сможет подключиться к базе. Итак, данное руководство предполагает, что вы используете локаль ru_RU.UTF-8 в качестве общесистемной. Если вы хотите использовать для доступа к БД имя хоста, а не IP, то хорошо бы настроить обратную DNS-зону. Это избавит вас от некоторых хлопот и возможной путаницы (подробности ниже).
Устанавливаем Postgresql
Стандартный Postgresql не будет работать с 1С, а rpm-пакеты с Postgres, которые идут в дистрибутиве 1C, предназначены только для установки на fedora-совместимых дистрибутивах. Поэтому для ALT Linux была собрана специальная версия этой СУБД — postgresql8.2.1C. Пакеты находятся здесь, либо их можно установить из репозитория Sisyphus (Если потребует rpmlib(PayloadIsLzma), то apt-get install 'rpm>=4.0.4-alt93'):
apt-get install postgresql-8.3eter postgresql-8.3eter-contrib postgresql-8.3eter-server
Пробуем запустить:
service postgresql start
Для нормально работы с базой, и чтобы не возникала проблема кодировок, проверяйте locale. Если нет, устанавливайте
localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # для российских баз localedef -c -i uk_UA -f UTF-8 uk_UA.UTF-8 # для украинских баз
в /etc/chroot.d/postgresql.conf строку locale_dir=`ls -d /usr/lib/locale/$locale* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` заменить на (для российских конфигураций) locale_dir=`ls -d /usr/lib/locale/{ru_RU,en_US}* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` заменить на (для украинских конфигураций) locale_dir=`ls -d /usr/lib/locale/{ru_RU,en_US,uk_UA,ru_UA}* | /usr/bin/tr ' ' «\n» | /bin/awk -F '/' '{print$5}'` а потом
update_chrooted conf && service postgresql restart
Во время первого запуска создаются файлы конфигурации postgres и chroot-окружение. Поэтому открываем файл /var/lib/pgsql/data/postgresql.conf и проверяем, чтобы postgres слушал нужный интерфейс, имел соответствующую локаль и настройки, описанные в документации 1С-сервера. Вот пример работающего файла конфигурации (закомментированные строки пропущены).
:
listen_addresses = '*' max_connections = 100 shared_buffers = 16MB max_fsm_pages = 204800 effective_cache_size = 128MB stats_row_level = on autovacuum = on datestyle = 'iso, dmy' lc_messages = 'ru_RU.UTF-8' lc_monetary = 'ru_RU.UTF-8' lc_numeric = 'ru_RU.UTF-8' lc_time = 'ru_RU.UTF-8' max_locks_per_transaction = 150 default_with_oids = on
Учтите, что эта настройка далека от идеальной и производительной. Данное руководство не ставит перед собой такой задачи, поэтому настроить Postgresql под свои нужды вам надо будет самостоятельно (вот, к примеру, руководство по настройке производительности) Также в файле /var/lib/pgsql/data/pg_hba.conf вам надо будет определить политику доступа пользователей к СУБД (для этого читайте документацию postgresql), а по умолчанию настройка выглядит так:
host all all 0.0.0.0/0 md5
Что означает разрешение подключаться с любых адресов к любым базам с авторизацией по паролю. Для первоначальной настройки достаточно сменить пароль суперпользователя СУБД:
[root@localhost ~]# psql -h localhost -U postgres template1 template1=# ALTER USER postgres WITH PASSWORD 'secret';
На этом настройка Postgresql завершена.
Установка и запуск защиты HASP
Для установки ключей нужно скачать их с http://www.aladdin.com/support/hasp/enduser.aspx HASP HL Device Driver Installation. Supports RedHat и HASP HL Linux License Manager установить далее, не забываем:
mount -t usbfs none /proc/bus/usb
проверяем
service aksusbd start
Если статус «DONE», значит, ключи встали и сервер должен работать.
Установка и запуск сервера 1С
Тут всё достаточно просто:
rpm -Uvh 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-server-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-8.1.8-76.i386.rpm
Запуск:
service srv1cv81 start
К сожалению, 1С-сервер практически не пишет никаких отчётов, поэтому если что-то не работает, понять, что именно не так, бывает сложно.
Порты, которые слушает 1С:
tcp 0 0 *:1540 *:* LISTEN 18704/ragent tcp 0 0 *:1541 *:* LISTEN 18711/rmngr tcp 0 0 *:1560 *:* LISTEN 18711/rmngr tcp 0 0 *:1561 *:* LISTEN 18704/ragent tcp 0 0 *:1562 *:* LISTEN 18720/rphost tcp 0 0 *:1563 *:* LISTEN 18720/rphost
Создание сервера предприятия
Из Windows это можно сделать так:
Запустите оснастку управления серверами предприятия из меню Пуск —> 1С Предприятие 8.1 —> Серверы 1С Предприятия.
Создайте центральный сервер. Для этого войдите в контекстное меню и выберите пункт "New".
Введите имя и описание линукс-сервера. Теперь после закрытия окна нажмите на плюсик рядом с новым сервером. Могут проявиться типичные ошибки. Если сообщений об ошибках не было выдано, то создастся кластер. В новой версии 1С можно создавать БД прямо из оснастки (не прибегая к помощи консоли PostgreSQL, хотя такая возможность сохранилась). Создание и подключение информационной базы 1С:Предприятия 8.1 Введите настройки соединения и не забудьте отметить флажок «Создать базу данных» в случае её отсутствия. После нажатия ОК оснастка надолго зависнет (база создаётся очень неспешно). Теперь можно подключаться к серверу из режима Предприятия.
Как это делать из 1С, запущенной через WINE@Etersoft, читайте на сайте компании Etersoft
Часто возникающие проблемы
В файле /home/usr1cv81/.1cv81/1C/1Cv81/reg_1541/1CV8Reg.lst можно найти конфигурацию кластера 1С. Например, у меня он выглядит так:
{0, {332873ae-75ed-11dc-9f9f-00fc390012a1,"Локальный кластер",1541,"banzay.aspirinka.net",0,0}, {1, {0dd04482-9367-11dc-748b-00fc390012a1,"1c","","PostgreSQL","1c.aspirinka.net","1c","postgres","zPurhs5czp8pJJ9Z6craZ2vrNnl9u7bkfzlIoDTEfW8=","CrSQLDB=Y;DB=1c;DBMS=PostgreSQL;DBSrvr=1c.aspirinka.net;DBUID=postgres;Descr=;Locale=ru_RU;Ref=1c;SLev=0;SQLYOffs=0;Srvr=banzay.aspirinka.net",0, {0,00010101000000,00010101000000,"","",""},0} }, {1, {36713c62-75ed-11dc-9f9f-00fc390012a1,"banzay.aspirinka.net",1,1, {9.827956989247312e-2,9.548387096774194e-2,0,0,2.795698924731183e-3,93,1.150875992227514e-3,0},1000} }, {0}, {1, {366b0522-75ed-11dc-9f9f-00fc390012a1,"Центральный сервер",1540,"banzay.aspirinka.net",1, {1, {1560,1591} },"","gjZ6h/5H95FpOCqDeLmg2Q=="} } }
- 1С не сможет подключиться к базе Postgresql, если настройки локали не совпадают. Так что приведите параметр Locale= в соответствие с настройками вашей базы.
- А ещё 1С берёт значение хоста откуда угодно, только не из настроек, введённых пользователем. :) При необходимости укажите правильные имена хостов для «Центрального сервера» и «Локального кластера» вручную. Однако если у вас правильно настроена обратная зона DNS, ручных исправлений не потребуется.
Установка 1С-сервера в OVZ-контейнер
Для начала создадим ovz-инстанцию.
Для этого:
- Можно воспользоваться готовым spt-профилем из пакета spt-profiles-ovz-1C
Установка профиля производится так
apt-get install spt-profiles-ovz-1C
Для работы с spt вы должны иметь установленные и настроенные hasher и spt. Читайте соответсвующие руководства.
Либо вы можете взять готовый ovz-шаблон отсюда.
Далее размещаем шаблон в /var/lib/vz/template/cache/
cp altlinux-1c-server.tar.gz /var/lib/vz/template/cache/
и создаём ovz-инстанцию:
vzctl create 101 --ostemplate altlinux-1c-server --config myserver
Здесь 101 — это номер инстанции (у вас он может быть другой) и myserver - конфигурация сервера; вам также нужно произвести её самостоятельно, для чего читайте руководство по OpenVZ.
Запускаем инстанцию:
vzctl start 101
Копируем внутрь rpm-пакеты с 1С-сервером:
cp 1C_Enterprise-* /var/lib/vz/root/101/root/
После этого можно зайти в инстанцию и установить пакеты 1С-сервера:
vzctl enter 101 entered into VE 101 cd /root apt-get install 1C_Enterprise-common-8.1.8-76.i386.rpm 1C_Enterprise-server-nls-8.1.8-76.i386.rpm 1C_Enterprise-common-nls-8.1.8-76.i386.rpm 1C_Enterprise-server-8.1.8-76.i386.rpm