Вы здесь

Установка сервера 1С:Предприятие 8.1 для Linux

Общие сведения

Сервер предприятия 8.1, а также SQL сервер могут работать на операционной системе Linux (Fedora, CentOS). В качестве SQL сервера в этом случае может использоваться PostgreSQL.
Не стоит устанавливать сервер 1C предприятия и Postgresql с установочных дисков 1С – там обычно устаревшие версии.

Установка операционной системы

  1. Убедитесь, что устанавливаемая сборка Linux поддерживает имеющееся оборудование (особенно сетевую плату и RAID-контроллеры)
  2. Для нормальной работы некоторых Linux (например CentOS 5.0) необходимо подключение к интернету.
  3. Установку RPM пакетов удобно выполнять из графической оболочки, поэтому при установке выберите GNOME
  4. Установите также клиент «Самба», если необходим доступ к сети Microsoft.
  5. При установке не стоит устанавливать СУБД «PostgreSQL», входящую в дистрибутив (из раздела «Server»). Эта версия не подходит для 1С. Необходима специальная с патчами (можно взять с официального сайта 1С).
  6. Обязательно выберите для установки midnight commander (mc) – удобно для тех кто на ВЫ с консольными командами Linux.
  7. После установки Linux первым делом настройте сетевое подключение и подключение к интернету. Убедитесь что сетевое подключение и подключение к интернету работает (Система – Администрирование - Сеть).
  8. Установите сетевое имя компьютера (Система – Администрирование – Сеть - DNS)

Установка защитного ключа

До двенадцати пользователей могут работать без ключа! Справедливо для версии 1С 8.1.11
Новые драйвера и менеджер лицензий: http://www.aladdin.ru/support/download/detail.php?ID=260

Установка сервера приложений

До установки необходимо установить имя сервера в настройках сети на закладке DNS (Система/Администрирование/Сеть)
Если вы залогинены как обычный пользователь, но при каждом административном действии вводите пароль от root в ответ на запрос ОС, то в данном случае этот пароль запрошен не будет. Запрос пароля нужно самостоятельно инициировать командой консоли:

 

Если на сервере уже стояла предыдущая версия сервера 1С, то её следует удалить из системы. Для этого в главном меню Приложения войдите в Установка/удаление программ, перейдите на вкладку List, снимите флажки со всех пунктов, начинающихся на 1C_Enterprise, и нажмите Применить. Если переустановка выполняется полностью (если необходимо удалить информацию о кластере), то необходимо удалить пользователя «srvr1cv81», утвердительно ответив на вопрос об удалении вместе с ним его домашнего каталога в /home. Также необходимо удалить каталоги /opt/1C/ и /root/.srvr1cv81
Теперь откройте папку с дистрибутивом и двойным щелчком запускайте установки в следующей последовательности:

  • 1C_Enterprise-common…
  • 1C_Enterprise-common-nls…
  • 1C_Enterprise-server…
  • 1C_Enterprise-server-nls…
  • 1C_Enterprise-ws…
  • 1C_Enterprise-ws-nls…
  • 1C_Enterprise-crs
  • 1C_Enterprise-crs-nls

Не бойтесь устрашающих предупреждений – это нормальное явление.
Теперь нужно запустить агент сервера ragent в режиме демона. Для этого запустите консоль bash из меню Приложения – Стандартные – Терминал и введите следующие команды:

 

Для 64-х разрядных серверов вместо «i386» надо применять «x86_64».

 

По команде «top – u usr1cv81» или «ps -aux» процессы сервера приложений в списке называются «ragent», «rmngr» и «rphost» - запущены от имени «usr1cv81».
По команде netstat -na|grep tcp в списке должны бать строки:

 

Проверьте возможность подключения к серверу с клиентского компьютера с помощь консоли кластера.
В следующих каталогах хранятся данные кластера: файл srvribrg.lst, каталог REG_<номер>:
/root/.1cv81/1C/1cv81
/home/usr1cv81/.1cv81/1C/1cv81
Если после установки сервера 1С изменили сетевое имя сервера, то в этих файлах его также надо изменить!
Если сервер 1С автоматически не запускается при загрузке системы, то необходимо выполнить:

 

Установка SQL сервера

Проверено для версии 8.2.4
Для нормальной работы сервера 1С необходима особая версия PostgreSQL, пропатченная. Поэтому если на сервере уже установлена обычная версия PostgreSQL, придётся её деинсталлировать! Для этого в главном меню Приложения войдите в Установка/удаление программ, найдите слева пункт Серверы и снимите птичку рядом с пунктом База данных PostgreSQL. Потом нажмите кнопку Применить и дождитесь завершения операции.
SELinux надо отключать: «Система-Администрирование-Уровень безопасности и межсетевой экран», закладка «Настройка SELinux»
Откройте папку и запускайте установки двойным щелчком в следующей последовательности:

  • postgresql-libs…
  • postgresql-…
  • postgresql-server…
  • postgresql-pl…
  • postgresql-contrib…

Следующие компоненты являются опциональными:

  • postgresql-docs…
  • postgresql-devel…
  • postgresql-debuginfo…
  • postgresql-jdbc…
  • postgresql-test…

В терминале запустите следующую команду консоли (перед этим команда sudo bash - должна уже быть исполнена):

 

Если эта команда не выполнилась и в комментарии что-то написано про команду «InitDB», то

  1. Удалите каталог /var/lib/pgsql/data/ (если он существует с помощью mc)
  2. Переключитесь на пользователя «postgres» надо выполнить:  
  3. Выполните команду  

Эта команда помимо прочего заполнит папку /var/lib/pgsql/data/ настройками по-умолчанию.
Исполните команду:

 

или «F4» в mc
Откроется редактор. Найдите по Ctrl-F или F7 и измените там следующие параметры:

 

Не забудьте раскомментировать эти строки, убрав символ комментария #. Если этих параметров нет, то вам придётся ввести их вручную.
Рекомендуется увеличить значение параметра effective_cache_size в конфигурационном файле postgresql.conf. Значение этого параметра рекомендуется устанавливать не менее половины объема оперативной памяти установленной на компьютере.
Сохраните файл и закройте редактор.
В файле, открываемом командой

 

указаны допустимые параметры подключения к PostgreSQL-серверу. Проверьте, чтобы было указано (снят комментарий # с соответствующих строк):

 

Эти параметры вы сможете настроить позднее (имеет смысл в целях безопасности ограничить подключения, например, только локальным хостом localhost), когда убедитесь, что всё (включая клиента 1С) работает.
Теперь перезапустите сервер PostgreSQL:

 

Если сервер PostgreSQL не стартует, то проблемы следует искать в лог-файле. Лог-файлы PostgreSQL находятся в каталоге /var/lib/pgsql/data/pg_log. Просмотр лог-файлов можно выполнять с помощью команды «cat», формат: cat имя_файла
Войдите в консоль PostgreSQL командой:

 

или

 

(Формат команды psql –h имя_хоста имя_базы имя_пользователя)
Если будет выдано сообщение об ошибке, отсылающее вас к файлу pg_hba.conf, то, скорее всего, хост localhost не прописан в файле /etc/hosts. Откройте его командой
vim /etc/hosts
и добавьте строку:

 

Теперь консоль должна запуститься. Введите пароль postgres (ввод пароля не отмечается ни буквами, ни звёздочками).
Если Вам не удается подключиться к консоли PostgreSQL по причине того что не подходит пароль, то в файле /var/lib/pgsql/data/pg_hba.conf для строки:

 

необходимо «md5» поменять на «trust» (убедитесь что строка раскомментирована) и перезапустить сервер PostgreSQL
Теперь консоль должна запуститься без требования пароля.
При первом запуске PostgreSQL создаётся учётная запись postgres с паролем postgres. Первое, что надо сделать в консоли – сменить этот пароль командой:

 

В версии 8.2 PostgreSQL пароль по умолчанию уже почему-то не «postgres», поэтому что бы не путаться лучше изменить его на «postgres»:

 

Обращаем ваше внимание, что точка с запятой в консоли PostgreSQL обязательна и означает окончание текста команды. На что должно быть выдано сообщение:

 

Если в файле /var/lib/pgsql/data/pg_hba.conf Вы меняли «MD5» на «trust», то можно выполнить обратную замену, (если доступ к консоли сервера ограничен, то можно не делать) перезапустить сервер PostgreSQL и проверить подключение к консоли с помощью измененного Вами пароля
По команде «ps -aux» процесс в списке называется «postmaster», запущен от имени «postgres».
По команде netstat -na|grep tcp в списке должны быть строка:

 

Проверьте подключение к серверу PostgreSQL с другого компьютера сети с помощью «PGAdmin»
Для автоматического запуска SQL сервера при старте системы необходимо выполнить команды:

 

Создание базы данных

Установите на клиентскую Windows-машину клиента 1С v8.1 со средствами доступа к серверу предприятия 1С.
Если для опредения URL адресов в локальной сети используется сервер DNS, то в его базу необходимо внести информацию о сервере, иначе пропишите сервер на каждом клиенте в файл %SYSTEMROOT%\system32\drivers\etc\hosts. Его можно отредактировать, например, блокнотом, добавив строку, подобную этой:

 

где 192.168.1.1 – это IP-адрес линукс-сервера, а centos – его имя. Не пренебрегайте этим шагом, так как доступ к серверу из оснастки просто по IP-адресу весьма затруднителен.
Проверьте что сервер доступен по имени. С клиентского компьютера выполните команду:

 

Также проверьте что выполняется обратное определение для имени сервера. С клиентского компьютера выполните:

 

В заголовке результата этой команды должно быть имя сервера «Centos».
Запустите оснастку управления серверами предприятия из меню Пуск – 1С Предприятие 8.1 – Серверы 1С Предприятия. Создайте центральный сервер правым щелчком.
Создайте пустую БД из консоли кластера
Если при создании базы возникает ошибка «11004»:
Ошибка соединения с рабочим процессом
server_addr=tcp://localhost.localdomain:1563 descr=Ошибка сетевого доступа к серверу
(Windows Sockets-11004(0x00002AFC). Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствуют связанные с ним данные, которые были разрешены для него.) line=546 file=.\scr\DataExchangeTcpClientImpl.cpp
То решения следующие:

  1. Проверить имя сервера: Центральные серверы 1С Предпрития – Сервер – Кластеры – 1541 – Рабочие серверы – Имя сервера. Если имя сервера 1С отличается от сетевого имени сервера, то необходимо изменить имя сервера 1С. (описано в конце установки сервера 1С)
  2. IP-адреса имени <имя машины> и <имя машины>.<имя домена> выполняется по разному. Проверить:
    • как задано имя сервера 1С:Предприятия при регистрации ИБ на клиентском приложении?
    • выполняется ли ping по этому имени и определяется ли IP адрес?
    • совпадает ли IP адрес с тем, который выдает ping из того же домена?
  3. Отсутствует имя компьютера центрального сервера в DNS или в файле C:\WINNT\system32\drivers\etc\hosts
    • попробуйте имя сервера внести в файл hosts на проблемном компьютере, указав ему IP адрес, вырываемый ping-ом с компьютера, на котором 1С:Предприятие стартует нормально.
  4. Нет прав на сервер

Войдите в конфигуратор пустой базы и загрузите *.dt
Если при загрузке *.dt в пустую базу возникли проблемы связанные с региональными установками, то в исходной базе необходимо изменить региональные установки «Администрирование – Региональные установки информационной базы» и выгрузить *.dt еще раз.

Резервное копирование и восстановление

Выполнить резервное копирование и восстановление можно из консоли «pgAdmin III». В контекстном меню на выделенной базе данных есть пункты «Резервная копия…» и «Восстановить…»
Postgres обеспечивает две утилиты для резервного копирования системы: pg_dump для резервного копирования индивидуальных баз данных и pg_dumpall для резервного копирования установки за один шаг.
Для отдельной базы данных можно сделать резервную копию с помощью следующей команды:

 

и восстановить с помощью

 

Эта техника может быть использована для перемещения базы данных в новое место, и для переименования существующих баз данных.
Т.к. Postgres позволяет таблицы больше чем максимальный размер файла в системе, может быть проблематично сбросить таблицу в файл, вероятно, что результирующий файл окажется больше, чем максимальный размер файла, разрешенной в системе.
Так как pg_dump пишет в stdout, ты можешь использовать стандартные утилиты *nix для работы над этой возможной проблемой:
Используй сжатие при сбросе:

 

восстановив с помощью

 

или

 

Используй разбиение:

 

восстановив с помощью

 

Конечно, имя файла (filename) и содержимое вывода pg_dump не нужно сравнивать с именем базы данных. Также, восстановленная база данных может иметь произвольное новое имя, так что этот механизм также подходит для переименования базы данных.
Для резервного копирования по расписанию я рекомендую следующий код:

 

вторая строчка отвечает за создание архива, с именем pgdump-текущая_дата.tgz
таким образом вы получаете ежедневную копию баз Postgres и можете откатится на любой день.
Этот код можно добавить в cron двумя путями:

  1. создать текстовый файл в директории /etc/cron.daily/, скопировать туда код и сделать его исполняемым ( )
  2. использовать crontab -e для редактирования расписания cron.
    туда нужно ввести:
     

    и сохранить файл.

Стандартное расположение резервных копий PostgreSQL:
/var/lib/pgsql/backups/
Если необходимо выполнять резервное копирование сразу нескольких баз (например двух), то в каталог /etc/cron.daily/ можно поместить текстовый файл с именем «pgdump» следующего содержания (все одной строкой):

 

Если команда просит ввести пароль, то в файле /var/lib/pgsql/data/pg_hba.conf для строки:

 

измените «md5» на «trust» (не забудьте убрать комментарий) и перезапустите сервер Postgres
Назначить этот файл исполняемым для владельца, членов группы и прочих пользователей.
Каждые сутки будет выполняться резервное копирование баз ZUP и BU в каталог /var/lib/pgsql/backups/. Также резервные копии будут архивироваться в файлы с именами, содержащими дату резервного копирования.
Расписание выполнения файлов из каталогов /etc/cron.*/ находится в файле /etc/crontab
Восстановление базы из резервной копии выполняется с помощью следующих команд:
Если необходимо восстановить в новую базу, то необходимо ее сначала создать:

 

Ввести пароль для postgres…

Собственно команды для восстановления:
Распаковать архив:

 

В результате будет распакован файл: «dbname.pgdump». Будьте внимательны! Архив может быть распакован с учетом путей, начиная с текущего каталога. Если так случилось, файл «dbname.pgdump» надо переместить в текущий каталог.

 

Ввести пароль для postgres…
Должно появиться множество сообщений типа: «CREATE TABLE», «ALTER TABLE» и после некоторого времени (зависит от размера базы) восстановление будет закончено.

Выполнения регламентных операций на SQL-сервере

Основным средством физического и аналитического сопровождения баз данных в PostgreSQL является команда SQL VACUUM и ее аналог — сценарий vacuumdb. Оба средства выполняют две общие функции:

  • удаление всех данных, оставшихся в результате отмены транзакций и других операций, оставляющих временные данные;
  • анализ операций с базами данных, по результатам которого PostgreSQL конструирует более эффективные запросы.

Для баз данных, работающих в условиях реальной эксплуатации, команду VACUUM рекомендуется выполнять каждую ночь. Хотя команда может выполняться параллельно с обращениями к данным, это замедляет работу сервера. По этой причине сопровождение рекомендуется запланировать на время с минимальным количеством операций с базой данных.
Создать текстовый файл с именем «vacuumdb» в директории /etc/cron.daily/ , скопировать туда код:

 

Сделать этот файл исполняемым ( )
Каждую ночь будет выполняться оптимизация всех баз данных
Эту команду можно дописать в конце файла, предназначенного для автоматического создания резервных копий (все одной строкой):

 

Для работы Autovacuum в файле /var/lib/pgsql/data/postgresql.conf убрать комментарий «#» со строки с параметром:

 

Приложения

Приложение 1. Некоторые команды консоли Linux

Запуск консоли осуществляется: «Приложения – Стандартные - Терминал»
«cd» — переход по каталогам
«ls» — просмотр содержимого каталога
«cat имя_файла» — просмотр содержимого текстового файла (удобно просматривать файлы логов)
vim — редактирование текстового файла
Вместо этих команд удобней использовать «mc» - аналог «Norton Commander»
«su» — переключение между пользователями
«top –u ИмяПользователя» — выводит список процессов пользователя, показывает использование процессора и памяти
«ps -aux» — выводит список всех процессов
«kill НомерПроцесса» — убивает указанный процесс
«uname –a» — покажет версию ядра
«cat /proc/version» — покажет версию дистрибутива Linux
«cd /media/имя_флешки» — переход в каталог флешки
/etc/grub.conf — файл конфигурации загрузчика GRUB – можно указать чтобы по умолчанию загружался Windows, если установлено две системы.

Приложение 2. Назначение IP портов

1540 — порт центрального сервера кластера, процесс «ragent»
1541 — порт первого рабочего сервера кластера, процесс «ragent»
5432 — порт сервера PostgreSQL

Приложение 3. Полезные ссылки

http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup/ — вопросы/ответы установки 1С на сервер Linux
http://users.v8.1c.ru/Platform_8_2_4_31C.aspx — Последняя версия PostgreSQL для 1С
http://www.kb.mista.ru/article.php?id=290 — обзорная информация о PostgreSQL и ссылки

Оригинал статьи: http://www.infostart.ru/public/73972/. Там же Вы можете поблагодарить автора.