LinuxForum.Fans
Тема

1С 8.2 сервер + PostgresSQL@Etersoft 8.4.4 на Ubuntu Server 10.04.*

Автор: Nigelist 840 сообщений 433592 просмотров
19.02.2011 11:19 · отредактировано #131009

В Google можно найти кучу статей на вышеуказанную тему. Но в комментариях к этим статьям пишут, что у многих установленная по инструкции связка не работает. Решил попробовать сам, устанавливал сервер 1C:Предприятие 8.2 + Postgres@Etersoft 8.4.4 на базе Ubuntu Server 10.04.* i386. Во избежание проблем, новичкам советую, при установке сервера, выбирать русскую локаль по-умолчанию. У меня все завелось... smile

Для тех кто плохо разбирается в линуксе, настоятельно рекомендую устанавливать все по инструкции. И очень-очень внимательно... Если что-то не получается максимально подробно описывайте вашу проблему. В ином случае вы не дождетесь нормального ответа.

Подготовка сервера
1. Итак у вас имеется установленный Ubuntu Server 10.04.* (При установке не выбирайте установку стандартного постгреса). Сразу же поставьте последние обновления:
[console]sudo apt-get update

sudo apt-get dist-upgrade[/console]

2. Дистрибутивы можно скачать из интернета сразу на сервер или скопировать заранее скачанные дистрибутивы через самбу. Я предполагаю, что самба может быть настроена не у всех, потому воспользуемся флешкой. Берем флешку, закидываем в нее заранее скачанные дистрибутивы в отдельные папки:
[console]1с
postgres
hasp[/console]
Перед этим заранее распаковав дистрибутивы из архивов.

3. Создаем директорию, к которой будем монтировать флешку:
[console]sudo mkdir /opt/1cinstall[/console]

4. Подключаем флешку к серверу, просматриваем как она подключилась:
[console]sudo fdisk -l[/console]

У меня это sdb1, теперь монтируем флешку сразу в папку 1с:
[console]sudo mount /dev/sdb1 /opt/1cinstall/1c[/console]

5. Проверяем что намонтировали:
[console]ls /opt/1cinstall[/console]

Т.к. на моей флешке ничего не было кроме папок с дистрибутивами, отобразились только они:
[console]1с
postgres
hasp[/console]
Установка PostgreSQL@Etersoft 8.4.4
1. Во время установки постгреса нам потребуются права рута, потому переходим в режим рута:
[console]sudo -i[/console]

2. На данный момент последняя стабильная версия от Etersoft это 8.4.4, ее то мы и будем устанавливать. Переходим в папку postgres:
[console]cd /opt/1cinstall/postgres[/console]

Проверяем что есть в папке:
[console]ls[/console]

Должно быть четыре пакета:
[console]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[/console]

3. Меняем параметр ядра linux SHMMAX на 128Мб, насколько я знаю делать это надо на 32-битной машине:
[console]echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf
echo "kernel.shmall = 134217728" >> /etc/sysctl.conf[/console]

Применяем изменения:
[console]sysctl -p[/console]

4. Далее нам необходимо добавить группу postgres, но проблема в том, что необходимый нам id -26, занят группой tape. В данном случае я решил назначить группе postgres необходимый id и сделать ее первичной, а группу tape сделать вторичной. Итак, приступим:
[console]nano /etc/group[/console]
Находим строку:
[console]tape:x:26:[/console]
Приводим ее к виду:
[console]postgres:x:26:tape[/console]

5. Для нормально работы PostgreSQL, требуется библиотека libreadline.so.5. Но у нас будет установлена более новая библиотека. Просмотрим библиотека какой версии стоит у нас:
[console]ls -l /lib[/console]
Ниже приведу часть выхлопа, который нам необходим:
[console]...
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
...[/console]
Итак мы выяснили, что у нас стоит библиотека версии 6.2. На нее то мы и будем создавать сим-линк:
[console]cd /lib
ln -s libreadline.so.6.2 libreadline.so.5[/console]

6. Устанавливаем дополнительные библиотеки:
[console]apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16[/console]

7. Переходим в папку с дистрибутивом постгреса:
[console]cd /opt/1cinstall/postgres[/console]

8. Устанавливаем постгрес:
[console]dpkg -i *.deb[/console]

9. Даем права на папку pgsql пользователю и группе postgres:
[console]chown postgres:postgres /var/lib/pgsql[/console]

Кто не уверен, проверьте сменился ли владелец папки:
[console]ls -l /var/lib[/console]

В выведенном на экран списке найдите папку pgsql, ее свойства должны быть примерно такими (на дату создания папки не обращайте внимания smile ):
[console]drwxr-xr-x 4 postgres postgres 4096 2011.02.18 10:09[/console]

10. Запускаем постгрес:
[console]service postgresql start[/console]

Если постгрес уставлен правильно, то вы увидите сообщение:
[console]Initializing database: DONE
Starting postgresql service: DONE[/console]

11. Задаем пароль пользователю postgres:
[console]passwd postgres[/console]

12. Задаем пароль внутреннему пользователю PostgreSQL, предварительно авторизировавшись под пользователем postgres:
[console]su -l postgres
psql
alter user postgres with password 'YOUR_PASSWORD';
\q
exit[/console]
Где YOUR_PASSWORD - пароль который вы хотите задать для внутреннего пользователя постгрес.

13. Также нам необходимо настроить pg_hba.conf. Но перед этим сделаем бэкап этого файла:
[console]cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.default[/console]

Открываем pg_hba.conf:
[console]nano /var/lib/pgsql/data/pg_hba.conf[/console]

Находим следующие строки:
[console]#IPv4 local connections:
#host all all 127.0.0.1/32 ident[/console]

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

Этой правкой мы дали разрешение пользователю 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. Перезапускаем постгрес:
[console]service postgresql restart[/console]
Вы должны получить примерно следующее сообщение:
[console]Stopping postgresql service: DONE
Starting postgresql service: DONE[/console]

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

Установка сервера 1С:Предприятие 8.2.*
1. Теперь нам предстоит установка 1С сервера. Переходим в из папки postgres в папку 1c:
[console]cd ../1c[/console]

2. Устанавливаем пакеты:
[console]dpkg -i 1c*.deb[/console]

3. Устанавливаем дополнительные пакеты, которые необходимы для нормальной работы сервера:
[console]apt-get install imagemagick libglib2.0-dev libgsf-1-114 texlive-base ttf-mscorefonts-installer unixodbc[/console]

4. Далее нам необходимо проверить, все ли пакеты необходимые для корректной работы сервера 1С установлены. Сделать это можно с помощью утилиты config_server, которая входит в комплект дистрибутива сервера 1С. Переходим в каталог утилиты:
[console]cd /opt/1C/v8.2/i386/utils[/console]
Где i386 - разрядность системы. Для 32-битных системы надо указывать - i386, а для 64-битных систем указывать - x86_64
Запускаем config_server:
[console]./config_server[/console]

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

5. Теперь добавим локаль. Переходим в папку locale:
[console]cd /usr/lib/locale
ln -s en_US.utf8 en_US
cd /usr/share/locale
ln -s en en_US[/console]

6. Даем пользователям 1С сервера права на запись:
[console]chown -R usr1cv82:grp1cv82 /opt/1C[/console]

7. Добавляем сервер 1С в автозапуск:
[console]update-rc.d srv1cv82 defaults[/console]

Вы должны получить следующий выхлоп:
[console] 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[/console]

Это означает что вы добавили 1С сервер в автозагрузку. Если вы не получили этого сообщения, значит что то сделали неправильно. Точно следуйте инструкции и все получится.

8. Перезагружаем сервер. Проверяем запускаются ли при старте системы постгрес и сервер 1С:
[console]netstat -atn|grep 0.0.0.0:15[/console]

Вы должны получить примерно следующий выхлоп:
[console]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[/console]

9. Так же для профилактики можно проверить, все ли процессы сервера запущены нормально:
[console]ps aux|grep 1c[/console]

От имени пользователя usr1cv82 должно быть запущено три процесса: ragent, rmngr и rphost. После имен процессов идут номера портов, на которых они работают:
[console]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[/console]

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

Если вы не планируете использовать 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. Авторизируемся под рутом:
[console]sudo -i[/console]

2. Монтируем флешку, как это было указано в главе "Подготовка сервера". Переходим в папку с дистрибутивами HASP-драйверов:
[console]cd /opt/1cinstall/hasp[/console]

3. Устанавливаем скачанные пакеты:
[console]dpkg -i *.deb[/console]

4. Выключаем сервер:
[console]shutdown -h now[/console]

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

Установка на x64 машине

Поскольку некоторые программы в пакете haspd являются 32-битными, в системе должна быть установлена поддержка 32-битных программ. В Ubuntu это пакет ia32-libs.
Создание информационной базы, на рабочей станции
1. Для начала укажем параметры сервера в hosts:
text
192.168.11.4     1cserver



Где 192.168.11.4 - ip адрес машины на которой установлен 1С сервер, а 1cserver - имя машины на которой установлен 1С сервер. Файл hosts находится в директории:

text
%SystemRoot%\system32\drivers\etc

2. Через оснастку Администрирование серверов 1С Предприятия, оснастка находится в:

text
Меню Пуск » Программы » 1С Предприятие 8.2 » Дополнительно

Создадим центральный сервер:


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


Где 1cserver - имя машины на которой установлен 1С сервер

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


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


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


Где 1cserver - netbios имя нашего сервера, base - имя создаваемой базы, postgres - пользователь постгреса.

Основные настройки закончены, остальное не так важно и настраивается индивидуально:


Основные моменты: толстый клиент - все обработки и вычисления производятся на стороне клиента, тонкий клиент - вычисления производятся на стороне сервера.

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

Резервное копирование баз данных средствами PostgreSQL
Для резервного копирования я решил использовать встроенную утилиту PostgreSQL.

Описание
pg_dump - это утилита для резервного копирования базы данных PostgreSQL. Она создает непротиворечивую резервную копию базы даже если она используется в это время. pg_dump не блокирует другие пользовательские подключения к базе данных (чтения и записи).
Дампы могут быть записаны в формате скрипта или файла архива. Скриптовые дампы – это простые текстовые файлы, содержащие набор SQL команд, требуемых для восстановления базы данных на период времени, когда они были сохранены. Для восстановления с такого файла сценариев его содержимое перенаправляют в psql. Скриптовые файлы могут быть использованы для восстановления базы данных даже на других машинах и других архитектурах; с некоторой модификацией, даже на других SQL серверах управления базами данных.

Альтернативные архивные форматы файла для восстановления базы данных используются с pg_restore. Они дают возможность pg_restore выбрать что восстанавливать или даже изменить порядок приоритетов пунктов при восстановлении. Архивные форматы файлов разработанные портативными для всех архитектур.
Использование одного из архивных форматов файла и комбинирование с pg_restore, pg_dump обеспечивает гибкий механизм архивирования и переноса. pg_dump может быть использован для резервного копирования всей базы данных, тогда с помощью pg_restore можно посмотреть содержимое архива и/или выбрать какие части базы данных нужно восстановить. Наибольшую гибкость выходного файла имеет пользовательский формат «custom» (-Fc). Он дает возможность выбора и изменения порядка всех пунктов архивирования, и использует сжатие по умолчанию.

Во время работы pg_dump следует проверять вывод на предмет каких-либо предупреждений (вывод на stderr), особенно в свете ограничений, перечисленных ниже.
[console]pg_dump создает дамп базы данных в тектовом или другом формате.

Синтаксис
pg_dump [OPTION]... [DBNAME]

General options:
-f, --file=FILENAME извлекать в этот файл
-F, --format=c|t|p формат извлекаемого файла (custom, tar, plain text)
-v, --verbose установить подробный режим
-Z, --compress=0-9 установить режим сжатия. 0 - без сжатия, 9 - макс. сжатие.
--lock-wait-timeout=TIMEOUT ошибка при блокировке таблицы, при истечении тайм-аута
--help вывести на экран справку и выйти
--version вывести на экран версию утилиты и выйты

Опции управления извлекаемыми данными:
-a, --data-only скидывать в дамп только данные (определения данных)
-b, --blobs включать большие объекты в дамп
-c, --clean очистка (drop) базы данных перед восстановлением дампа
-C, --create создание базы данных перед восстановлением дампа
-E, --encoding=ENCODING создавать дамп в определенной кодировке
-n, --schema=SCHEMA включать в дамп только перечисленные схемы
-N, --exclude-schema=SCHEMA исключать из дампа перечисленные схемы
-o, --oids сбрасывать в дамп идентификаторы объектов (OIDs)
-O, --no-owner не включать команды задания принадлежности объектов
при создании дампа в текстовом формате
-s, --schema-only включать в дамп только схемы, а не данные.
-S, --superuser=NAME указать имя суперпользователя, используется только
в текстовом формате (plain text)
-t, --table=TABLE включать в дамп только перечисленные таблицы
-T, --exclude-table=TABLE исключать из дампа перечисленные таблицы
-x, --no-privileges не сохранять права доступа. Команды (grant/revoke)
--binary-upgrade предназначена для использования вместо утилиты обновления
--inserts сохранять как INSERT-команды, предпочтительнее чем COPY
--column-inserts сохранять как INSERT-команды с именами столбцов
--disable-dollar-quoting отключить разделитель в виде знака доллара, использовать
стандартый SQL разделитель
--disable-triggers отключить триггеры во время восстановления данных
--no-tablespaces не включать в дамп команды создания табличных пространств
для перечисленных объектов
--role=ROLENAME выдавать команду SET ROLE после подключения к базе данных
--use-set-session-authorization
включить стандартые SQL-команды SET SESSION AUTHORIZATION
вместо команд ALTER OWNER для установки права собственности
объекта

Опции подключения:
-h, --host=HOSTNAME задает сетевое имя машины на которой работает сервер баз данных
-p, --port=PORT задает TCP порт на котором сервер прослушивает соединения
-U, --username=NAME задает имя пользователя от которого происходит подключение
-w, --no-password никогда не выдавать приглашения ввести пароль
-W, --password принудительно выдает приглашение ввести пароль
(должно происходить автоматически)

Если имя базы данных не указана, то используется переменная окружения PGDATABASE

Сообщять об ошибках на <pgsql-bugs@postgresql.org>.[/console]

На данный момент планируется скрипт со следующими возможностями:
  • возможность указывать кол-во хранимых бэкапов. При превышении допустимого кол-ва хранимых бэкапов, скрипт должен удалять самый старый бэкап
  • использовать встроенные средства для бэкапа (pg_dump)
  • сбрасывать дамп без запроса пароля

А тем кто хочет просто периодически делать бэкап, советую добавить задание в crontab. Например:
[console]30 20 * * * postgres pg_dump -Fc -Z9 dbname -f /path/to/backup_folder/dbname.dump.out[/console]
Где 30 20 * * * - время копирования (ежедневно в 20:30), postgres - пользователь от которого будет выполнятся бэкап, dbname - имя БД, дамп которой будет сохряняться.

Ну и напоследок скрипты от форумчан (сам пока мало смыслю в скриптописании):

1. Скрипт от i2ks
text

#!/bin/bash
#задаем дату и время бекапа
DATA=`date +%F.%H%M%S`
#имя хоста. на которм будем выполнять скрипт, можно и не писать, но для меня так проще.
HOST=`hostname`

#переходим в каталог для бекапа, сначала проверяем, есть ли каталог с датой, если есть, то переходим в него, если нет то создаем и переходим. cd /var/lib/pgsql/9.1/backups if [[ -d `date +%F` ]]; then cd `date +%F` else mkdir `date +%F` cd `date +%F` fi

#Dump all BD #Полный бекап БД, #pg_dumpall > db_all.$HOST.$DATA.sql #Необходимо делать хотя бы раз в месяц.

#Dump DB #Дамп БД, где postgres - имя пользователя, namedb - имя базы данных, архив имеет следующий формат. #имя базы даннх. имя хоста, дата и время, расширение gz: namedb.linux-pc.2013-02-11.143034.gz pg_dump -U postgres namedb | gzip > namedb.$HOST.$DATA.sql.gz

#пауза sleep 3

#remove old arh #удаляем старые архивы, а точней файлы старше 7 дней, так же удаляем пустые каталоги.

#поиск FIND="/usr/bin/find" #каталог где ищем DIR_FILES="/var/lib/pgsql/9.1/backups*" #парвметр удаления: тип - файлы, старше 7 дней. PARAM="-type f -ctime +7" #удаление DEL="| xargs rm -rfv {} \;"

#--------- #Delete empty dirs #удаляем пустые директории, директории где есть файлы будут не затронуты. cd /var/lib/pgsql/9.1/backups/ rmdir *

# eval $FIND $DIR_FILES $PARAM $DEL # или аналогично "/usr/bin/find /var/lib/pgsql/9.1/backups* -type f -ctime +7 | xargs rm -rfv {} \;" , без кавычек.

exit 0 #читаем маны man pg_dump , man pg_dumpall #see pg_dump and pg_dumpall

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

1. Итак веб-сервер apache установлен, в наличии имеем корневой каталог:
text
/var/www

Где находится единственный файл:

text
index.html

Для начала создадим в корневом каталоге apache, папку base:
[console]mkdir /var/www/base[/console]

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

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

Запускаем скрипт с необходимыми параметрами:
[console]./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf[/console]
Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.

При успешном выполнении скрипта вы должны получить выхлоп:
[console]Установка успешно выполнена.
acp: /etc/apache2/httpd.conf
rd: /var/www/base
vd: /etc/apache2/httpd.conf[/console]

Также можно проверить правильность настроек, просмотрев что прописалось в файл httpd:
[console]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>[/console]

В каталоге базы вы должны найти файл default.vrd, следующего содержания:
[console]<?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;;"/>[/console]

Где 1cserver - имя сервера на котором находится 1С сервер, base - имя БД к которой настраиваем доступ, а &quot; - кавычки написанные кодом.

3. Теперь даем права на директорию:
[console]chown -R www-data:www-data /var/www/base[/console]

4. Перезагружаем apache:
[console]service apache2 restart[/console]

5. В браузере на клиентской машине отключаем блокировку всплывающих окон. Пробуем пройти по адресу:

text
http://1cserver/base

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


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


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


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

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

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


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


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

Получаем выхлоп:
[console]Stopping 1C:Enterprise 8.2 server: OK[/console]

3. Затем посмотрим, какие пакеты сервера 1С:Предприятие у нас установлены:
[console]dpkg -l | grep 1c-enterprise[/console]

Получаем примерный выхлоп:
[console]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[/console]

4. Мы узнали какие пакеты сервера 1С:Предприятия у нас установлены, можно приступить к их удалению. Пакеты удаляются в обратно порядке:
[console]dpkg -r 1c-enterprise82-ws-nls 1c-enterprise82-ws 1c-enterprise82-server-nls 1c-enterprise82-server 1c-enterprise82-common-nls 1c-enterprise82-common[/console]

Проверим, не осталось ли каких либо файлов, после удаления пакетов:
[console]dpkg -l | grep 1c-enterprise[/console]

Получаем примерный выхлоп:
[console]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[/console]

После удаления остались некоторые файлы настроек, их тоже необходимо удалить:
[console]dpkg -P 1c-enterprise82-ws 1c-enterprise82-server[/console]

И вновь проверяем, не осталось ли каких либо файлов от пакетов сервера 1С:Предприятие:
[console]dpkg -l | grep 1c-enterprise[/console]

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

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

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

7. Теперь посмотрим какие пакеты PostgreSQL установлены:
[console]dpkg -l | grep postgre[/console]

Получаем примерный выхлоп:
[console]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[/console]

8. Мы узнали какие пакеты PostgreSQL установлены у нас на сервере, можно приступать к удалению этих пакетов. Удаляем снова в обратном порядке:
[console]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[/console]

Проверяем наличие неудаленных частей пакетов:
[console]dpkg -l | grep postgre[/console]

Получаем примерный выхлоп:
[console]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[/console]

Удаляем файлы, оставшиеся после первого удаления:
[console]dpkg -P postgre-etersoft-8.4-server postgre-etersoft-8.4-contrib[/console]

При выполнении команды dpkg -P postgre-etersoft-8.4-server, вы получите предупреждение:
[console](Чтение базы данных ... на данный момент установлено 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» не удалён.
[/console]

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

9. Все, теперь можно устанавливать новую версию PosgreSQL. Но как и в случае с обновлением сервера 1С:Предприятие, я не буду описывать процесс установки PostgreSQL. Этот процесс описан в главе - Установка PostgreSQL@Etersoft 8.4.4.
1С:Предприятие 8.2 – Troubleshooting
Идея добавления этой главы, была позаимствована у alsigned. Читая сообщения в теме с просьбами о помощи в решении возникших проблем, замечаю что большая часть ошибок в основном связана либо с невнимательностью, либо с установкой на платформу отличную от указанной в статье. Эта глава посвящена ошибкам возникающим во время установки и настройки сервера 1С:Предприятие и его компонентов.

В качестве примера приведу один из комментариев:
Jokero написал:
Nigelist спасибо за статью.
Сделал все, как вы написали, только вышла какая-то фигня с локалями. При попытки создания базы данных, с удаленного пк, 1с выдает ERROR: нeвepнoe знaчeниe для пapaмeтpa "lc_messages": "en_US"

Ставил сервер Ubuntu 10.10 английский. Postgres etersoft 8.4.4 1С платформа 8.2.13

И это несмотря на то, что в статье явно указана версия используемой ОС и локаль используемая по-умолчанию.

Потому я напоминаю о необходимости устанавливать те версии дистрибутивов, которые рассмотрены в данной статье. Особенно в тех случаях, когда вы не готовы решать сопутствующие проблемы.

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

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

Со временем, я буду добавлять способы решения наиболее часто встречающихся ошибок. Принимаются пожелания.

1. Перестал запускаться сервер баз данных PostgreSQL

Чаще всего данная ситуация возникает смены владельца папки:
[console]/var/lib/pgsql[/console]
Проверяем, владельца папки:
[console]ls -l /var/lib[/console]
Права на папку должны принадлежать пользователю postgres и группе postgres. Если это не так, то необходимо задать права:
[console]sudo chown postgres:postgres /var/lib/pgsql[/console]
После этого можно запустить сервер БД:
[console]service postgresql start[/console]
2. Импорт лицензий с сервера лицензий
В теме довольно часто поднимается вопрос импорта лицензий с другого хоста (сервера лицензий). Причины у всех разные: у кого то нет физического доступа к хосту, у кого то сервер лицензий вообще находится в другом городе. Но всех объединяет одно - им необходимо настроить работу веб-клиента. Ну а для того чтобы веб-клиент работал, необходимо чтобы сервер имел возможность раздавать лицензии.

В принципе процедура настройки импорта лицензий очень проста. Достаточно создать файл конфигурации nethasp.ini в директории:
[console]/opt/1C/v8.2/i386/conf[/console]

Создаем файл:
[console]touch /opt/1C/v8.2/i386/conf/nethasp.ini[/console]

Открываем для редактирования:
[console]nano /opt/1C/v8.2/i386/conf/nethasp.ini[/console]

Вносим нижеуказанные данные:
[console][NH_COMMON]
NH_TCPIP = Enabled ; Метод поиска сервера лицензий

[NH_TCPIP]

NH_SERVER_ADDR = 192.168.0.232 ; Список IP адресов серверов лицензий
NH_PORT_NUMBER = 475 ; Номер слушаемого порта
; По умолчанию 475

NH_TCPIP_METHOD = TCP ; Протокол обмена информацией с сервером лицензий
; Я предпочитаю использовать TCP
; По умолчанию UDP[/console]

На этом настройка импорта лицензий закончена. Возможно потребуется перезапуск сервера 1С:Предприятие.

ВАЖНО: Каждый веб-клиент открытый в браузере, требует наличия лицензии 1С на рабочее место, точно-такой же как и для платформы 1С (тонкий клиент, толстый клиент, конфигуратор), работающей через обычное соединение.

В статье использовались материалы:
1С сервер на Ubuntu 10.04 LTS
Автор: baklan | Pg1C | 02.05.2010, 20:42

1С:Предприятие 8.2 и СУБД PostgreSQL 8.3.7 на Ubuntu Server 9.04
Автор: Ruslan Khissamov | 1C-PRO | 29.10.2009, 17:51

Оптимизация работы Postgre SQL
Автор: Andrey Igorevich | Wiki Etersoft | 2010.08.04, 19:52

Настройки Postgresql для 1с
Автор: SeaSun | 1CLinux | 2010.10.13, 02:23:22

На данный момент это пока все...

19.02.2011 17:43 · отредактировано #131139

Проделал на этой неделе Ваш же путь, но лучше бы подождал выхода статьи. Некоторые моменты не учёл.
Единственное принципиальное отличие, поднял на виртуальном сервере Proxmox.
В целом, спасибо!

20.02.2011 03:30 #131346

по этой инструкции поставил 1С 8.1 и не пшло ( после комманды netstat -atn|grep 0.0.0.0:15 ничего не появилось )
Не подскажите мб там вовсе по другому чтоли надо устанавливать

21.02.2011 05:31 · отредактировано #131799

umart, я сначала все это тоже на виртуальной машине развернул. Использовал VirtualBox...


kakawkin, точно не скажу. Но есть предположение, что вы неправильно выполнили пункт 8, инструкции по установке 1С сервера. Выложите выхлоп команды:
[console]update-rc.d srv1cv82 defaults[/console]

А чего не переходите на 8.2? Ведь переходные конфиги уже выпустили?

Кстати, вы дистрибутив сервера качали на офф.сайте? Если нет, попробуйте достать с офф.сайта или хотя бы с руборда. Свой дистр я брал на руборде.

21.02.2011 16:44 #131941

просто дали задани - поднять сервак. а саму 1с я не знаю - тоесть инекоторые же юзают 7.7 и бдет ли совместимость там или как-то конвертить все

21.02.2011 19:22 · отредактировано #132006

kakawkin, насчёт перехода 7.7 на 8.+ обращайтесь к профи. Сами вы нормально конвертировать не сможете.

Ну подняли вы сервер, и что? Бэкап средствами постгреса делать умеем? Это самое элементарное что надо предусмотреть...

Проблему с добавлением 1С сервера в автозапуск вы решили?

22.02.2011 11:46 #132190

Nigelist, По поводу статьи - как и обещал пошел тестить твой мануал - как закончу, сообщу результат :D
Разобрался с терминальным доступом и победил клавиатуру - могу прислать заготовку статьи, если посчитаешь что полезно....можно будет добавить....
Вы где-то упомянули об backup 1C8 с помощью Postgres...можно узнать версии 1С и Postgres на которых это работает....раньше были проблемы. Ну и ссылочку если возможно!!!!

22.02.2011 12:48 · отредактировано #132209
sdv2010 написал:
Nigelist, По поводу статьи - как и обещал пошел тестить твой мануал - как закончу, сообщу результат :D
Разобрался с терминальным доступом и победил клавиатуру - могу прислать заготовку статьи, если посчитаешь что полезно....можно будет добавить....
Вы где-то упомянули об backup 1C8 с помощью Postgres...можно узнать версии 1С и Postgres на которых это работает....раньше были проблемы. Ну и ссылочку если возможно!!!!

Ну-с, ждем отзыва... А по поводу заготовки статьи по терминалу присылай протестирую, выложу в массы... smile

По поводу бэкапа БД 1С, средствами постгреса еще не пробовал. Читаю тут книжку - "Дж Уорсли Дж Дрейк - PostgreSQL для профессионалов", посмотрим что начитаю... :rolleyes: Работает со всеми версиями, но есть тонкости создания и восстановления бэкапа. Читал, но не помню где.

Еще хочу поднять подключение к БД 1С сервера через апач.

22.02.2011 17:19 · отредактировано #132297

все пашет отлично - просто замечательно!

23.02.2011 10:16 · отредактировано #132498

sdv2010, по поводу терминального доступа, предлагаю дружно посмотреть в сторону RX@Etersoft. smile Так как в этой теме работаем на Ubuntu, то вот линки:
[url=ftp://updates.etersoft.ru/pub/Etersoft/RX@Etersoft/stable/Ubuntu/10.04/]x86[/url]
[url=ftp://updates.etersoft.ru/pub/Etersoft/RX@Etersoft/stable/x86_64/Ubuntu/10.04/]x64[/url]

23.02.2011 18:13 #132763

я не очень силен в серверах - но думаю что с терминальным сервером надо сделать следующее:
1) Установить на ubuntu postgresql && 1c server по данной инструкции - хорошая инструкция
2) далее установить пакеты RX@Etersoft
3) бросить 1С файлики
и далее клиенты не зависят от своей 1С ( где то одну конфигурацию добавить, то записи где-то изменить ) апросто запускают с сервака и тем самым надо обслуживать одну копию 1С а не все 20 или 30 ???

23.02.2011 19:35 #132793

Nigelist,
Терминальный сервер только что поставил на базе Ubuntu-32x-PAE + RX, но отдельно от сервера 1С...
Там есть нюансы - постараюсь до конца недели выложить...Кстати для тех кому это интересно ....каждая терминальная сессия с запуском 1С 8.1 отжирает из оперативы около 300 мб, нагрузка на процессор незначительна... Поэтому если будете разворачивать все на одной машине - берите оперативной памяти с избытком, иначе уход в swap и дикие тормоза при транзакциях!!!! Это для начинающих и раздумывающих... smile

24.02.2011 09:42 #132965
sdv2010 написал:
Nigelist,
Терминальный сервер только что поставил на базе Ubuntu-32x-PAE + RX, но отдельно от сервера 1С...
Там есть нюансы - постараюсь до конца недели выложить...Кстати для тех кому это интересно ....каждая терминальная сессия с запуском 1С 8.1 отжирает из оперативы около 300 мб, нагрузка на процессор незначительна... Поэтому если будете разворачивать все на одной машине - берите оперативной памяти с избытком, иначе уход в swap и дикие тормоза при транзакциях!!!! Это для начинающих и раздумывающих...

Значит нужно посмотреть в сторону апача. Может он меньше будет оперативы отъедать... Кстати ты не пробовал в

text
/var/lib/pgsql/data/postgresql.conf

В строке fsync = off, поменять значение на on? Интересно будет больше отъедать или меньше?

24.02.2011 13:22 #133034

Nigelist,
По поводу "В строке fsync = off, поменять значение на on? Интересно будет больше отъедать или меньше?" - памяти больше не отъедает ( визуально smile ), но быстродействие системы страдает существенно....
Однако я работаю только fsync = on, так как сильно плохо с питанием сервера, но при этом за 1,5 года НЕ БЫЛО случаев , чтобы сервер сам не рестартанул и 1С не запускалась!!!! Вывод - такой вариант очень надежен в плане сохранности базы 1С, можно даже без необходимости и бэкапы не делать!!!! Если большой интерес сравнить - предлагай метод - попробую и выложу на обсуждение...

25.02.2011 13:41 #133556

Nigelist, в почтовый ящик посмотри!!!

25.02.2011 15:24 #133622

sdv2010, я тут глянул твою инструкцию. Не легче ли через апач дать доступ юзерам?

И еще, чего то у меня не получается нормально поставить драйвера для HASP-ключа. Может сам сталкивался и решил эту проблему? Ставил драйвера от Etersoft'a.

27.02.2011 16:40 #134312

Nigelist, У меня пока 1С 8.1...поэтому апач пока не актуален...Проблема в том, что 1С8.2 сейчас активно допиливают,а вариант в статье работает и не жжужит :D ...По поводу HASP ключей...мануал добью и вышлю тебе...там тоже свои подводные камни...Кстати для справки, под ванильным wine 1.2.2 клиент 1С 8.1 прекрасно пашет, тока не умеет картинки (jpeg, bmp и прочее) распечатывать на принтер + не видит usb... Если кто бросит в меня мануалом как это победить, тогда можно от Этерсофта отказаться....

28.02.2011 07:26 #134542

sdv2010, у меня HASP-сервер для самой 1С-ки лицензии раздает, не раздает для браузера.

sdv2010 написал:
Кстати для справки, под ванильным wine 1.2.2 клиент 1С 8.1 прекрасно пашет, тока не умеет картинки (jpeg, bmp и прочее) распечатывать на принтер + не видит usb... Если кто бросит в меня мануалом как это победить, тогда можно от Этерсофта отказаться....

Чем так хорош ванильный вайн, что ради него отказываться от Этерсофта? oO

28.02.2011 08:06 #134544
Nigelist написал:
Этерсофта

Он платный, вот в чем разница.

28.02.2011 08:16 · отредактировано #134547

XliN, дык все равно пользуемся продуктами Этерсофта. Да и не думаю что проверяющие настолько хорошо знакомы с никсовыми системами дабы проверить какой софт установлен. По крайней мере без ГУЯ. wink

Войдите или зарегистрируйтесь, чтобы ответить.