Установка сервера 1с на linux. Резервное копирование и восстановление

Обновил на одном из серверов Debian до 9.2 Stretch, следовательно необходима установка сервера 1С и PostgreSQL, свежих версий.

Задача

Есть сервер с Debian 9.2 Stretch на борту, дистрибутивы сервера 1С:Предприятие 8.3.10.2580 и PosgreSQL 9.6. Необходимо установить и настроить для совместной работы сервер 1С:Предприятие 8.3.10.2580 и PosgreSQL 9.6.

Решение

Самым первым делом устанавливаем локализацию, сервер 1С работает с локализацией ru_RU.UTF8, и PostgreSQL создает кластер с локализацией по умолчанию.

# locale-gen en_US # locale-gen ru_RU # update-locale LANG=ru_RU.UTF8 # dpkg-reconfigure locales

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

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

Предварительно установим необходимые пакеты

# apt-get install imagemagick ttf-mscorefonts-instal

С установкой cсервера, как правило проблем нет, просто последовательно устанавливаем пакеты

# dpkg -i 1c-enterprise83-common_8.3.10-2580_amd64.deb # dpkg -i 1c-enterprise83-server_8.3.10-2580_amd64.deb # dpkg -i 1c-enterprise83-ws_8.3.10-2580_amd64.deb

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

# apt-get -f install

в итоге станет все хорошо, если хорошо не стало, то читаем выхлоп и правим зависимости. У меня проблем не возникло.

На этом этапе уже можно добавить сервер в консоль серверов и он должен быть виден.

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

# /etc/init.d/srv1cv83 start # /etc/init.d/srv1cv83 restart # /etc/init.d/srv1cv83 stop

Если необходимо установить драйвер HASP, то прочитать как это делается можно в статье .

Установка PostgreSQL

С PostgreSQL не все так просто, до этого стояла версия 9.4 распространяемая фирмой 1С, в дистрибутиве были все пакеты, а для избежания поломок обновлением версии фиксировал средствами apt. А вот в 9.6 пакеты не все, часть пакетов необходимо устанавливать из родного репозитория с понижением версии PostgreSQL и зависимых компонент до необходимой.

Этот путь мне не очень понравился, в интернетах и на партнерке наткнулся на PostgreSQL распространяемый компанией Postgres Professional , решил ставить его. У указанной компании есть свои продукты под названием Postgre Pro для корпоративных клиентов, но для моих нужд достаточно PostgreSQL, распространяется он под лицензией .

Согласно инструкции подключаем репозиторий, добавляем ключ и устанавливаем PostgreSQL

# sh -c "echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list" # wget --quiet -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | apt-key add - && apt-get update # apt-get install postgresql-pro-1c-9.6

При установке автоматически создается кластер main , необходимо только произвести некоторые настройки. Для возможности подключения открываем файл /etc/postgresql/9.6/main/pg_hba.conf

# nano /etc/postgresql/9.6/main/pg_hba.conf

находим строку

Local all postgres peer

и изменяем на peer на trust

# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD "Password ""

вместо Password пишем необходимый пароль.

Остается перезапустить службу, и можно подключиться к серверу PostgreSQL средствами pgAdmin.

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

# /etc/init.d/postgresql start # /etc/init.d/postgresql restart # /etc/init.d/postgresql stop

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

# pg_dropcluster --stop 9.6 main Redirecting stop request to systemctl # pg_createcluster --locale ru_RU.UTF-8 9.6 main Creating new cluster 9.6/main ... config /etc/postgresql/9.6/main data /var/lib/postgresql/9.6/main locale ru_RU.UTF-8 socket /var/run/postgresql port 5432

Проверка результата

Теперь можно зайти в консоль серверов добавить ИБ и проверить работу.

Установка 1С на Ubuntu Linux не требует специальных знаний операционной системы или опыта программирования. Достаточно внимательно ознакомиться с данной инструкцией и следовать всем рекомендациям по вводу команд и работе с терминалом, описанным ниже. Перед тем как начать саму установку клиента и сервера 1С под Ubuntu Linux, необходимо скачать дополнительные DEB пакеты (библиотеку и защиту hasp от Etersoft). Если у вас нет локальной сети, то необходимо ее настроить.

Локальная сеть

Откройте главное меню, найдите и запустите системную утилиту «сетевые соединения».

Для дальнейшей конфигурации перейдите на «проводное соединение» - «изменить» - «Параметры IPv4».

Измените способ настройки на «вручную», пропишите IP адрес. Для примера укажем: 192.168.128.40. Данные маски сети по умолчанию: 255.255.255.0.

Для доступа к интернету укажите DNS сервера. Вы можете использовать данные по умолчанию или ввести следующий рабочий адрес DNS - 8.8.8.8.

После этого можно приступить к загрузке дистрибутивов.

Запустите интернет браузер и перейдите на сайт поддержки пользователей 1С - «www.users.v8.1c.ru». С него мы будем скачивать сами дистрибутивы клиента и сервера 1С для Ubuntu Linux.

Нажмите - «скачать обновления», введите данные своей учетной записи (логин, пароль).

После этого, найдите «технологическая платформа 8.3» и выберите самую последнюю версию.

Здесь выберите «клиент 1С предприятия для DEB Linux систем». Помимо самого клиента, необходимо скачать «сервер 1С для Deb Linux систем». Без него вы не сможете установить сам клиент 1C для Ubuntu Linux.

Дополнительные DEB пакеты

Для полноценной работы программы мало скачать и установить сервер и клиент 1С. Все файлы необходимо загружать в одну папку «загрузки». Чтобы не путаться, удалит оттуда все лишнее. Затем, для более комфортной установки, мы переместим все скачанные дистрибутивы.

Необходимо загрузить дополнительные файлы: etersoft (терминальный сервер 1С под Linux или hasp) и бесплатную библиотеку libwebkitgtk. Для установки библиотеки перейдите по ссылке ниже, а затем найдите последнюю версию дистрибутива.

Для устройств на базе 32-разрядного процессора необходимо скачивать DEB пакет i386, для 64-разрядного - amd64.

Следующее, что понадобится - терминальный сервер 1C для Ubuntu (HASP защита). Скачать его дистрибутив можно с официального сайта Etersoft по ссылке ниже. В нашем случае это DEB пакеты для Ubuntu 12.04. Если вы пользуетесь другой версией Linux или Ubuntu, вернитесь в каталог и выберите необходимую вам.

Загрузить нужно все DEB пакеты hasp. Другие файлы не нужны.

Подготовка к установке

Дальнейшую установку клиента и сервера на Ubuntu продолжим при помощи терминала Linux. Чтобы не вводить длинные названия файлов и директорий вручную, рекомендуем скопировать их и вставить по инструкции ниже.

Если вам уже приходилось работать с Linux Ubuntu и устанавливать через терминал DEB файлы, то данный этап можно пропустить и приступить к следующему.

  • В домашней папке создайте новую - 1С;

  • откройте только что созданную директорию, создайте здесь еще две: hasp, server;

  • все DEB файлы hasp переместите в созданную папку «hasp» по адресу «домашняя папка» «1С» - «hasp»;
  • вернитесь в папку «загрузки», и распакуйте дистрибутив клиента;
  • в итоге у вас должна появиться папка с распакованными в ней файлами клиента 1С для Ubuntu;
  • переместите из нее все файлы, в директорию «доимашняя папка» - «1С»;

  • откройте папку «загрузки», распакуйте из архива дистрибутив сервера;
  • скопируйте все файлы в папку «server»;

  • оставшийся дистрибутив - в папку «1С».

После этого можно приступать к установке клиента и сервера 1С на Ubuntu Linux. Мы будем делать это при помощи терминала, т.к. в этом случае появляется возможность проследить за всеми ошибками, которые могут возникнуть в процессе. Например, из-за отсутствующих библиотек или дистрибутивов в системе.

Внимание! Перед тем как установить клиент 1С под Ubuntu Linux, проверьте, что его версия совпадает с версией сервера 1С.

Работа с терминалом

Запустите главное меню и откройте терминал. Здесь мы будем вводить все рабочие команды.

Если вы не пользовались операционной системой Linux, то рекомендуем выполнять установку DEB пакетов и ввод команд строго в той последовательности, в которой они ниже. Так вы сможете заметить и устранить все возможные ошибки терминала, скачать отсутствующие библиотеки.

Введите команду «cd 1c» для перехода по каталогу, а затем нажмите «enter» и впишите команду «sudo dpkg -i», скопируйте название первого DEB файла из каталога 1С и вставьте его в терминал нажатием правой кнопкой мыши или сочетанием клавиш «shift+ctrl+V».

Нажмите «Enter». Для выполнения команды, терминал запросит пароль администратора, введите его.

После этого должен выпасть список сообщений об ошибке, в которых будет указана их причина - зависимость. Например, что DEB пакет 1С зависит от библиотеки libwebkit (которую мы уже скачали). Или отсутствие 1С сервера.

Внимание! Если в списке ошибок нет зависимости от библиотеки, то устанавливать ее второй раз не нужно.

Установка библиотеки

Для установки библиотеки, введите команду «sudo dpkg -i», а затем скопируйте и вставьте название DEB пакета libwebkitgtk. Нажмите Enter.

Если в процессе возникнет какая-то ошибка, запустите центр приложений Ubuntu, а на любые запросы системы - нажмите «да». Введите пароль администратора.

Вернитесь в терминал, введите команду «sudo dpkg -i» для установки DEB пакета. Чтобы второй раз не вводить длинную команду и не копировать название файла, Linux запоминает введенные команды. И их можно перебирать нажатие клавиши «вверх» (стрелочки) на клавиатуре.

Настройка сервера

Для установки сервера 1С на Ubuntu Linux, в самом терминале необходимо перейти в каталог «1С» - «server».

Поэтому, введите следующую команду в терминале: «cd server», а затем загрузите все, что есть в директории. Чтобы не пришлось вводить все «вручную», пропишите «sudo dpkg -i *.deb». После этого загрузятся все DEB пакеты из каталога «server».

Установка клиента 1С для Linux

Чтобы вернуться на уровень из каталога «1С» - «server» в корень, введите: «cd/home/1c/server», а затем «cd ../» и нажмите «enter».

После этого при помощи команды «sudo dpkg -i» установите клиент 1С. Для этого не забудьте скопировать и вставить название DEB пакета и нажмите Enter. Если в процессе не возникло ошибок, то все было сделано правильно.

Установите оставшиеся дистрибутивы из каталога 1С (для быстрой работы используйте кнопку «вверх» на клавиатуре, а затем просто изменяйте название дистрибутивов).

HASP

Так как сейчас мы находимся по адресу «/home/1c/», то для установки защиты hasp достаточно ввести следующую команду: «cd hasp» (чтобы перейти в каталог hasp из директории 1С), а затем «sudo dpkg -i *.deb» (чтобы установить все пакеты из каталога «hasp»).

После этого можно воткнуть в сервер ключ защиты HASP и ввести несколько дополнительных команд, для разрешения зависимостей. На вопрос терминала «продолжить установку», вводите «д» (да) или «y» (yes).

Список команд для установки hasp под Ubuntu Linux:

  1. «sudo apt-get install imagemagick»;
  2. «sudo apt-get install unixodbc»;
  3. «sudo apt-get install libgsf-bin»;
  4. «sudo apt-get install t1utils».

Чтобы запустить 1С, перейдите в главное меню, затем введите название программы. Перед вами появится несколько видов клиента. То есть все, что необходимо для работы с программой. Чтобы вам не пришлось постоянно искать клиент для запуска в меню, скопируйте «1С: Enterprise» на рабочий стол Ubuntu. После этого запустите приложение, создайте базу данных и начинайте работу с системой и конфигурациями.

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

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

Сервер 1С Предприятия. Часть 1 - Общие вопросы.

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

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУДБ. Никаких запросов от клиента к серверу управления базами данных не происходит.

Сервер баз данных не обнаруженВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Ident)

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba.conf, найдите строку:

Host all all 192.168.31.0/24 ident

и приведите ее к виду:

Host all all 192.168.31.0/24 md5

где 192.168.31.0/24 - диапазон вашей локальной сети. Если такой строки нет, ее следует создать в секции IPv4 local connections.

Сервер баз данных не обнаруженcould not translate host name "NAME" to address: Temporary failure in name resolution

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файлhosts на клиенте, что не дает никакого результата...

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл/etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows.

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базойserver_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

192.168.31.83SRV-1C-1204

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

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

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql.

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x Postgre@Etersoft, подробности смотрите ниже.

Ошибка СУБД: ERROR: could not load library "/usr/lib/x86_64-linux-gnu/postgresql/fasttrun.so"

Довольно специфичная ошибка, характерная для сборок 9.1.x и 9.2.x Postgre@Etersoft, также может приводить предыдущей ошибке. Причина кроется в неисправленной ошибке в библиотеке fasttrun.so. Решение - откатиться на сборку 9.0.x Postgre@Etersoft.

Ошибка СУБДERROR: type "mvarchar" does not exist at character 31

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

или через средство запуска 1С.

Сервер баз данных не обнаруженВАЖНО: пользователь "postgres" не прошёл проверку подлинности (по паролю)

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия.

Сервер баз данных не обнаруженFATAL: database "NAME" does not exist

Еще одна очень простая ошибка. Смысл ее сводится к тому, что указанная БД не существует. Чаще всего возникает из-за ошибки в указании имени базы. Следует помнить, что информационная база 1С в кластере и база данных СУБД - две разные сущности и могут иметь различные имена. Также следует помнить, что Linux системы чувствительны к регистру и для них unf83 и UNF83 два разных имени.

Некоторые преимущества перед Windows, а с выходом свежей платформы 8.3 появилась такая возможность - в этой статье подробно рассмотрим, как установить 1С на Ubuntu Linux.

На Linux можно установить 1С.

Какой операционной среде отдать предпочтение для бухгалтерского пакета на предприятии? Вопрос не так прост, как кажется на первый взгляд. И Ubuntu Linux в этом плане имеет ряд преимуществ перед Windows. Бесплатность. Если к вам в офис придёт проверка на предмет легальности используемого на компьютерах программного обеспечения, то за использование Убунту вам точно ничего не грозит. Все её дистрибутивы бесплатны! А вот лицензию Windows нужно будет покупать на все компьютеры.

Гибкость системы:

  • Любой компьютер легко превращается в полноценный сервер (что важно для 1С);
  • Возможность запуска только нужных процессов, а не прогибание под теми, которые по умолчанию запускаются системой.

Благодаря открытости для сообщества разработчиков, Ubuntu всегда находится впереди Windows. Неоспоримая скорость работы.

Устанавливаем Ubuntu

Установка 1С на Linux совсем несложна.

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

После перезагрузки вы получите на вашем ПК установленный вами Убунту Линукс. Это будет его первый запуск .

Теперь очередь 1С

Для работы комплекса 1С:Предприятие нужно с интернет-страницы с дистрибутивами 1С предварительно скачать необходимые файлы. Не забудьте какой именно вам нужен - тридцатидвух- или шестидесятичетырёхбитный. Учтите также, что скачивание пакетов доступно только тем пользователям, у которых наличествует действующий договор на ИТС с одним из партнёров фирмы.

После скачивания с помощью файл-менеджера Nautilus распаковываем файлы:

Кроме того, устанавливаем ключ защиты HASP (скачать в отдельную директорию). Общий список файлов после распаковки:

Установка 1С на Ubuntu проще происходит с использованием Терминала (консоли) (это, вообще, самый распространённый метод инсталляции программ в Linux). Для поиска и запуска терминала нужно, будучи в латинской раскладке, нажать комбинацию Ctrl-Alt-t. Командой cd находим директорию с распакованными папками. Теперь нужно выполнить такие команды (для каждого из установочных файлов, которые получились в результате распаковки) - sudo dpkg -i /имя установочного файла/.

Следующий этап - это установка HASP

Для этого выполняются такие же команды (по аналогии) - sudo dpkg -i /имя установочного файла/. Следующий шаг - выполнение команд для настройки 1С:

sudo apt-get install imagemagick
sudo apt-get install unixodbc
sudo apt-get install libgsf-bin
sudo apt-get install t1utils

И ещё одна команда для работы со шрифтами текстов - sudo /opt/1C/v8.3/i386/utils/config_system /usr/share/fonts. Подключив HASP-ключ и, перезагрузившись, можно запускать программу - это будет происходить аналогично Windows.

Надеемся, что с помощью нашей публикации у вас не возникнет сложностей с установкой 1С на Ubuntu Linux.

Предупреждение: Никаких подробных инструкций не будет! Только последовательность действий, необходимые шаги и наводки. Это руководство только для опытных администраторов Линукс!

Примеры некоторых моих конфигов прилагаются...

Замечание: эта статья написана на основе экспериментов с 32-битным CentOS 6.3 (Для сервера необходимо использовать 64-битную ОС. Но так получилось, что на доступном мне для экспериментов железе 64-битный CentOS не установился.) Однако разницы для методики установки нет (32 vs 64bit) - она только в суффиксах дистрибутивных файлов: либо i686 (или i386), либо x86_64…

Содержание:

  • 2) Настраиваем Сеть
  • 5) Настраиваем Samba-сервер
  • Литература (использованная и дополнительно рекомендуемая)




0) Подготавливаем серверное железо



Конкретных рекомендаций по выбору серверного железа (какой мощности железо требуется) давать не буду - нет личного опыта. Смотрите официальные «Рекомендации по выбору оборудования для работы с 1С: Предприятием 8» от v8.1c.ru и неофициальные «Требования к компьютеру для работы с программой 1С: Предприятие 8» от 1c.xxi.kiev.ua…
И рекомендую брать железо с запасом мощности, чем рекомендуемое (потому что «на вырост» потребностей предприятия; и потому что Платформа 1С тоже постоянно «растёт и оптимизируется» - значит потребляет от релиза к релизу всё больше ресурсов).

Вдобавок, в двух словах, наиболее выгодна следующая стратегия:

  • Разнести два сервера (сервер 1С и сервер СУБД Postgres) по двум разным машинам - мощность наращивается в два раза, а лишних лицензий покупать не надо. Это и дешёвое решение: Линукс бесплатен, а стоимость железа не в счёт (железо всегда дешевле лицензий).
  • Примечание: учтите, что «кластер серверов 1С» ещё очень глючный. Причём, каждая дополнительная отдельная машина под «Сервер 1С в составе кластера» - требует покупки отдельной «Лицензии на Сервер»! Поэтому, со всех сторон, под «Сервер 1С» выгоднее всего использоватьТОЛЬКО ОДНУ МАШИНУ - купите под сервер только одну машину, с достаточно мощным железом, которое способно тянуть всю нагрузку...
  • В сервер СУБД установить аппаратный RAID10 (файлы БД резервированы, а объём дискового пространства наращивать по необходимости).
    Причём: В бюджетных рещениях, вполне достаточно использовать Чипсетный RAID-контроллер, встроенный во многие современные материнские платы , чем покупать отдельный и дорогой Аппаратный RAID-контроллер (цена которых от $250). Встроенные чипсетные RAID-контроллеры уже имеют широкий функционал ; поддерживаютнеобходимые режимы RAID (0, 1, 5, 10) и автоматизированную миграцию между ними, с сохранением данных.
    Есть только одна но существенная ложка дёгтя: плохая поддержка аппаратных RAID-контроллеров в ОС Linux . И к тому же, встроенный в материнскую плату чипсетный SATA-RAID не является полностью аппаратным : управление данными происходит не на уровне самого «железа», а на уровне микрокода BIOS через драйвер ОС - отсюда и такие понятия как «драйвера на SATA-RAID» (Intel Matrix Storage Driver), без которых RAID видится как отдельные диски - отсюда и проблемы поддержки… Под Linux - традиционно используются программные RAID-массивы , поддержка которых уже давно реализована и отлажена!
  • Оба сервера конечно поднимать на ОС windows/linux 64bit (т.к. поддерживают много ОЗУ и большую мощность). А «сервер 1С» купить и установить 32bit (потому что «Сервер 1С 64bit» стоит в 2 раза больше, а прирост производительности при прочих равных условиях даёт лишь +5%!!! неофициально умельцы тестировали ...)




1) Устанавливаем Операционную Систему (ОС)



Установить линукс CentOS 6.x (последний релиз), лучше 64bit.
Причины выбора дистрибутива CentOS: Это серверный дистрибутив линукс. Это свободный (бесплатный, «Community Edition») дистрибутив. Это дистрибутив основанный на ядре RedHat, который 1С декларирует как «поддерживаемый».

Образы дистрибутива CentOS качаются отсюда (с любого из зеркал) .
Удобнее выкачать iso, прожечь на болвань (DVDRW) и с неё ставить.
Для установки, как правило, достаточно только первого диска из двух компонуемых (на втором диске - всякий второстепенный софт).
А потом установочные дистки уже не нужны - всё равно весь софт нужно обновлять и доставлять через Интернет...


Замечание: Пользователь root в системе CentOS нелогинный (должен быть)!
Вся работа в системе CentOS ВСЕГДА осуществляется из сеанса обычного пользователя, в т.ч. и установка/настройка системы. И только для некоторых действий каждый раз запрашиваются привилегии «суперпользователя» (нечто подобное появилось и в Windows7).
Поэтому для выполнения правки конфигов, установки пакетов и прочих «админских» действий - открыв консоль в сеансе обычного пользователя, сразу выполняем команду «su», которая переключит текущую консоль в режим «суперпользователя» (фича CentOS):

Bash# su Пароль: <вводим пароль root>


Далее эта консоль bash# используется для разных привилигированных действий. Например, можно запустить «mc» и править конфиги в /etc/…


2) Настраиваем Сеть



Настроить сетевые адаптеры, имя хоста, gateway и DNS…
Подключиться к Интернет и обновить все базовые пакеты до последних версий…
Все дальнейшие действия будем делать только при наличии подключения к Интернет, считаем что оно постоянно!

Настройка сети осуществляется стандартно… Но есть распространённые Грабли, которые надо обойти :

2a)


Первое – имя нашего сервера должно без проблем разрешаться в IP-адрес.

В файле /etc/sysconfig/network проверяем значение параметра hostname («имя компьютера» севера), при необходимости меняем, что бы новые параметры вступили в силу нужно перезапустить систему.

Bash# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=delldev GATEWAY=192.168.10.2


(Последняя строчка - шлюз по-умолчанию, указывать необязательно. Если не указан - он будет браться из конфигов ifcfg или по DHCP...)

В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:

Bash# cat /etc/hosts 127.0.0.1 localhost delldev



Проверка: пингует ли сервер сам себя? Введите в консоли:

Bash# ping delldev



2b)


Второе – на файрволе не должно быть правил запрещающих взаимодействие между собой компонентов 1с предприятия.
В большинстве случаев сервер 1с предприятия находится в пределах локальной сети, поэтому мы вполне может отключить файрвол (хотя бы на время пуско-наладки):

Bash# chkconfig iptables off bash# service iptables stop



2c)


Третье – необходимо также отключить SELinux policy!

Причины:
1) Ранее SELinux был причиной ошибки Segmentation Fault.
2) Со включенным SELinux не работают шары Samba (удалённые пользователи в шары заходят, но файлы не видят… или файлы видятся, но не читаются… и т.п. глюки)
3) Кроме того, плюсы от использования SELinux на высоко-нагруженном сервере, находящемся в пределах локальной сети, - выглядят крайне туманно.

Как отключить:

Редактируем конфиг /etc/selinux/config строку SELINUX=enforcing меняем на SELINUX=disabled перегружаем машину...



2d)


У интернет провайдера «Укртелеком/Украина» есть ещё такие грабли: глючные DNS сервера - поэтому нужно использовать вспомогательные (лучше от Google)… А ещё возможно мой DSL-роутер оказался плохо совместим с ОС Линукс…

Симптом: при работе с Интернет, резолвинг каждого DNS-имени происходит очень долго (несколько [десятков] секунд таймаута), работать очень плохо…
Решение: Поэтому я сервера DNS не получал автоматически через DHCP, а статически прописал в настройках адаптера (в конфиге /etc/sysconfig/network-scripts/ifcfg-eth0) следующие адреса: 213.179.249.151, 213.179.249.152, 8.8.8.8, 8.8.4.4 (первые два - новые Укртелекомовские, следущие два - от Google) .


3) Настраиваем менеджер пакетов (yum)


Примечание: подробный мануал по использованию yum - смотри в статье «Управление пакетами в RHEL6. Yum»...

3a)


Настраиваем источники софта (репозитории):

включаем стандартные репозитории (в конфиге репозитария пропишем enabled=1, или установим галочки через графический интерфейс...):
   CentOS-6 - Base
   CentOS-6 - Contrib
   CentOS-6 - Extras
   CentOS-6 - Plus
   CentOS-6 - Updates

И (без них очень грустно, т.к. стандартные репозитории содержат преимущественно серверный софт, причём устаревшие хотя и сверхотлаженные версии).

Примечание: В большинстве случаев, для облегчения подключения новых репозиториев, владельцы репозиториев подготовили RPM-пакеты для автоматической конфигурации - эти пакеты нужно только скачать и установить. Причём, выбирайте пакеты правильной версии: для соответствующей версии репозитария и предназначенные для соответствующего вашему релиза Линукс. При установке этого псевдопакета автоматически сгенерируются необходимые конфиги, сконфигурируется yum и т.п.

Рекомендации:
   Use «cat /etc/redhat-release» to find which release of EL you are using (у меня говорит: «CentOS release 6.3» - т.е. «el6»)
   Use «uname -a» to find your processor architecture (у меня говорит: «i686 i386»)
   Use «rpm -ivh package-filename» to install the rpmforge-release package (also works with URLs)

RPMforge
   инструкции по установке: repoforge.org и
packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm "

EPEL
   инструкции по установке: fedoraproject.org
   рабочий пример установки: su -c "rpm -Uvh download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm "

ATrpms
   инструкции по установке: atrpms.net
   рабочий пример установки: su -c "rpm -Uvh dl.atrpms.net/all/atrpms-repo-6-5.el6.i686.rpm "

3b)


Концепция: главное - не нарушить функциональность базового ядра системы .
Стандартные репозитарии CentOS (особенно «CentOS-6 - Base») составляют специально обученные люди, которые обеспечивают наличие в каждый момент времени в репозитарии среза совместимых друг с другом пакетов и библиотек. (CentOS - система серверная, которая установлена на самых дорогих Продакшн серверах, которые работают в режиме автоапдейта. Глюк в репозитарии сломает много серверов, ну то есть у админов будет много гемора и кредит доверия к CentOS подорвётся… Этого не допускают.)
Но если играться с третьими левыми дистрибутивами, то в них всегда новые (и нестабильные) версии библиотек появляются ранее - они могут быть автоматически установлены в систему при автоапдейте, породив несовместимость для сервисов ядра. Плохо!

Для того чтобы на сервер устанавливался именно самый отлаженный софт, а из дополнительных репозитариев устанавливался только софт отсутствующий в базовых (пакеты развязываются по «зависимостям») - нужно настроить/использовать систему приоритетов:

Для управления приоритетами - нужно установить дополнительные плагины для yum (полезно установить все три):

  • yum-protect-packages (позволяет защитить указанные пакеты от удаления; по умолчанию защищён сам yum и его цепочка зависимости)
  • yum-plugin-protectbase (позволяет защитить пакеты из указанного репозитария от обновления из незащищённых репозитариев) - ЕГО ПРОЩЕ НАСТРАИВАТЬ.
  • yum-plugin-priorities (позволяет назначить приоритеты различным репозиториям; пакеты из репозитория с более низким значением приоритета не могут быть обновлены из репозитория с высоким значением приоритета - это другой вид защиты, более продвинутый и гибкий) - ОН ЛУЧШЕ!


(Примечание: для yum есть ещё много интересных плагинов, но эти самые необходимые...)

Настройки репозитариев yum хранит в: /etc/yum.repos.d/
конфиги, которые можно редактировать, называются: *.repo
остальные файлы служебные - их не трогаем.

Нужно дописать в текстовые конфиги (как минимум для всех репозитариев с enabled=1): строки с параметрами protect=… и priority=… (примечание: чем меньше значение priority - тем репозиторий главнее)



3c)


Ещё рекомендую установить использовать графическую оболочку к менеджеру пакетов: Yum Extender (бинарь называется yumex) - он гораздо продвинутей стандартного GUI!


4) Устанавливаем дополнительный софт, не относящийся к системе 1С



Теперь можно проинсталировать (через консоль управления менеджером пакетов yum, конечно):
   поддержку ntfs
   wine (эмулятор для запуска простых приложений windows)
и другие полезные локальные приложения…


5) Настраиваем Samba-сервер



Нужно установить (через yum) и настроить сервер Samba (службы «smb» и «nmb») - это поддержка протокола Microsoft NetBIOS под Линукс, т.н. «Сетевое окружение»…

Причём Samba рекомендую поднять, даже если вы не будете предоставлять файловые шары на этом сервере для других клиентов локальной сети, чтобы этот сервер появился в «сетевом окружении» у всех Windows клиентов и других серверов сети, сканировался стандартным API, резолвил своё «сетевое имя машины» - чтобы на него можно было ссылаться как-то типа ¨\\MyLinuxServer¨. Для удобства, настройте Samba так, чтобы Сервер 1С был виден в вашей WORKGROUP…

Примечание по поводу: Нужен ли Samba-сервер для работы 1С:Предприятия или нет?



Для настройки Samba советую:
создать и настроить шаровые папки так:

Mkdir /home/samba mkdir /home/samba/вседругие... chown -R samba /home/samba chgrp -R samba /home/samba chmod -R a+rw /home/samba


создать нелогинного пользователя/группу: samba/samba
назначить этому пользователю домашнюю папку: /home/samba

Настройка службы Samba:
   Конфиги лежат в /etc/samba/
   см. man smb.conf
   см. smb-conf.ru
   Для простой настройки - см. статью «Простая установка и конфигурация сервера SAMBA в CentOS»...

Важно: Кроме службы «smb» (основной), также следует «включить» и «запустить» службу «nmb» (которая отвечает за публикацию NetBIOS имени компьютера в локальной сети - Сервер станет виден в «Сетевом окружении»):

Chkconfig --level 2345 smb on chkconfig --level 2345 nmb on service smb start service nmb start


Совет: Режим работы Служб лучше всего настраивать через графическую оснастку «GNOME / Система / Администрирование / Службы»…


6) Достаём и готовим дистрибутивы 1С: Предприятие… Откуда всё взять?



Пиратские дистрибутивы 1С (и кряки) можно скачать с обменников (ссылки не привожу, найдёте на forum.ru-board.com в разделе «Варезник»)…

Итак, добыли/скачали дистрибутив «1С: Платформа 8.2 релиз 8.2.16.368 от 05.10.12» -> из него берём «Cервер 1С: Предприятия (32bit) для RPM-based Linux-систем», файл «8_2_16_368_rpm.tar.gz» (169.07 MB) -> после распаковки архива получим 8 RPM-файлов дистрибутива…

Готовые сборки «PostgreSQL от 1С релиз 9.0.3-3.1C от 17.01.12» нам не подойдут, не установятся по зависимостям (там пакеты собраны для CentOS 5.x, а не для 6.x.).
Нам нужны исходные коды PostgreSQL, патченные 1С, для самостоятельной сборки! Из дистрибутива «PostgreSQL от 1С релиз 9.0.3-3.1C от 17.01.12» -> берём только файл «PG90331_Patch903.rar» -> из архива берём только файл «postgresql-9.0.3-3.1C.src.rpm» (это RPM-пакет c исходными кодами PostgreSQL версии 9.0.3, УЖЕ ВКЛЮЧАЮЩИЙ ВСЕ НЕОБХОДИМЫЕ ПАТЧИ для обеспечения совместимости с сервером 1С: Предприятия 8.1 и 1С: Предприятия 8.2)
Примечание: Кроме того, исходные коды для самостоятельной сборки СУБД PostgreSQL, поддерживаемой 1С: Предприятием 8, проще всего скачать с оф.сайта напрямую...

Замечания: Какую платформу выбрать?

  1. сервер 1С бывает: и х64, и х86
  2. клиентские программы 1С бывают: только х86, на сегодняшний момент (повторюсь: х64 бывает только сервер 1C)
  3. известно что на ОС х64 можно ставить программы х86 (это касается не только 1С)
  4. клиентские программы 1С (толстый и тонкий клиенты) работают только под Windows!

    Дополнительная информация...




7) Сборка и Установка «СУБД PostgreSQL от 1С (релиз 9.0.3-3.1C от 17.01.12)» на Линукс CentOS (6.3)



Первым делом, чтобы не было конфликтов в системе, нужно деинсталлировать все другие/предыдущие версии СЕРВЕРА PostgreSQL, если таковые установлены (проверьте).

Вредный совет: Чтобы не было путаницы из-за программной несовместимости, я также деинсталировал клиента «postgresql-8.4.13» (установленный изначально, из стандартного репозитария CentOS 6.3)… Некоторые пакеты (например, «postgresql-libs-8.4.13» и др.) сейчас пришлось оставить, т.к. от них зависят многие другие пакеты в системе - однако их можно будет деинсталировать потом, после установки PostgreSQL 9.0.3 (забегая вперёд, мне это удалось)…
Тем не менее, есть смысл оставить эти стандартные пакеты в системе (особенно «postgresql-libs-8.4.13») - на тот случай, если в будущем вам прийдётся деинсталировать PostgreSQL 9.0.3. Потому что сейчас у меня сложилась такая ситуация, что все системные пакеты теперь зависят только от пакета «postgresql-libs-9.0.3-3.1C» и менеджер пакетов не даёт деинсталировать последний не снеся заодно половину систему (крах).


К сожалению, в базовых репозитариях CentOS 6.3, т.е. в текущей системе, имеются не все необходимые библиотеки (зависимости) для использования готовой сборки «PostgreSQL от 1С». Кроме того, следует иметь в виду, что для работы сервера 1С: Предприятия 8.2 требуется версия PostgreSQL не ниже 8.3.8 .

Я перепробовал разные дистрибутивы...



Итак, лучше всего подходит версия «PostgreSQL от 1С релиз 9.0.3-3.1C», но собранные RPM-пакеты из дистрибутива «PG90331_setuppln903.rar» нам не подойдут: не установятся по зависимостям (там пакеты собраны для CentOS 5.x, а не для 6.x.)…

Неправильный подход: Апгрейдить вручную существующие старые библиотеки - это геморно и опасно (от них зависит куча софта из базового и стабильного ядра CentOS)! Ещё можно было бы вставить костыли-хаки в виде символических ссылок (с именами требуемых библиотек, ссылающиеся на существующие версии), но это совсем плохо на Production-сервере…


Поэтому чтобы не нарушать целостность ядра CentOS, нужно пересобрать сам PostgreSQL из исходных кодов , пропатчив его патчами 1C (так он будет базироваться на наших существующих библиотеках). Патченные исходники PostgreSQL берём из дистрибутива «PostgreSQL от 1С релиз 9.0.3-3.1C» -> нам понадобится только файл «PG90331_Patch903.rar» -> а из архива берём только файл «postgresql-9.0.3-3.1C.src.rpm»… или скачиваем этот файл напрямую с оф.сайта…

7a)


Примечание: Я не опытен в сборке из исходников, поэтому далее идёт слегка модифицированный рецепт из блога «Админа-маньяка» на alsigned.ru (автору респект).



Перед PostgreSQL, необходимо установить (или убедиться что уже установлена) - она необходима для работы PostgreSQL версии от 1С. Установить можно вручную из RPM-пакета (но не нужно)… Или с помощью yum, из стандартного репозитария (что лучше):

Yum install icu libicu libicu-devel



Устанавливаем также пакеты необходимые для компиляции и сборки:

Yum install rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make



7b)


Загружаем с сайта 1с исходники PostgreSQL 9.0.3:

Wget http://v8.1c.ru/overview/postgresql_patches/9-0-3/postgresql-9.0.3-3.1C.src.rpm


и устанавливаем пакет с исходниками (будут созданы разные папки в системе и по ним раскиданы исходные файлы):

Rpm -ihv postgresql-9.0.3-3.1C.src.rpm



Открываем для редактирования файл /usr/lib/rpm/macros и меняем в нем уровень подгона пачей _default_patch_fuzz на 2:

%_default_patch_fuzz 2


Примечание: Раньше подобные действия приходилось делать только на Fedora 12 и выше, при сборке софта не поддерживающего обработку пачей новыми скриптами, а начиная с 6-ой версии новые скрипты пришли и в CentOS.

Создаем символические ссылки на библиотеки libicu:

Ln -s /usr/lib/libicui18n.so /usr/local/lib/libicui18n.so.46 ln -s /usr/lib/libicudata.so /usr/local/lib/libicudata.so.46 ln -s /usr/lib/libicuuc.so /usr/local/lib/libicuuc.so.46



Переходим к сборке PostgreSQL:

Rpmbuild -bb --define "runselftest 0" ~/rpmbuild/SPECS/postgresql-9.0-1C.spec


Примечание: Установкой параметра «runselftest 0» мы отказываемся от инициализации тестовой базы и проверки работоспособности PosgreSQL во время сборки, для того что бы тестирование прошло успешно его нужно выполнять из-под ограниченного пользователя, иначе процесс сборки будет остановлен.

Процесс сборки займёт некоторое время…

Наконец, просмотрим список собранных RPM-пакетов (т.к. у меня ОС Линукс 32-битная, то и пакеты PostgreSQL были собраны тоже 32-битной версии):

Bash# ls -1 ~/rpmbuild/RPMS/i686 postgresql-9.0.3-3.1C.i686.rpm postgresql-contrib-9.0.3-3.1C.i686.rpm postgresql-debuginfo-9.0.3-3.1C.i686.rpm postgresql-devel-9.0.3-3.1C.i686.rpm postgresql-docs-9.0.3-3.1C.i686.rpm postgresql-libs-9.0.3-3.1C.i686.rpm postgresql-server-9.0.3-3.1C.i686.rpm postgresql-test-9.0.3-3.1C.i686.rpm



7c)


Установка патченного сервера СУБД PostgreSQL от 1С:

Совсем необязательно устанавливать все пакеты… для нормальной работы PostgreSQL вполне достаточно четырёх: postgresql-libs, postgresql, postgresql-server, postgresql-contrib. Переходим в директорию /root/rpmbuild/RPMS/i686 (на 64-битной ОС - в /root/rpmbuild/RPMS/x86_64) и устанавливаем пакеты…

порядок установки пакетов следующий:

Postgresql-libs-9.0.3-3.1C.i686.rpm postgresql-9.0.3-3.1C.i686.rpm postgresql-server-9.0.3-3.1C.i686.rpm postgresql-contrib-9.0.3-3.1C.i686.rpm


Необязательно но полезно (для разработчиков) затем ещё установить следующие пакеты:

Postgresql-docs-9.0.3-3.1C.i686.rpm postgresql-devel-9.0.3-3.1C.i686.rpm postgresql-debuginfo-9.0.3-3.1C.i686.rpm postgresql-test-9.0.3-3.1C.i686.rpm



Но чтобы не заморачиваться с порядком установки - лучше установить все пакеты скопом (yum сам разберётся с зависимостями):
   rpm -ihv postgresql-9.0.3-3.1C.i686.rpm postgresql-contrib-9.0.3-3.1C.i686.rpm postgresql-debuginfo-9.0.3-3.1C.i686.rpm postgresql-devel-9.0.3-3.1C.i686.rpm postgresql-docs-9.0.3-3.1C.i686.rpm postgresql-libs-9.0.3-3.1C.i686.rpm postgresql-server-9.0.3-3.1C.i686.rpm postgresql-test-9.0.3-3.1C.i686.rpm

Грабли: при установке пакета «postgresql-contrib-9.0.3-3.1C.i686.rpm» возникает ошибка?

ошибка: распаковка архива не удалась на файле /usr/pgsql/lib/libicudata.so.46;4e9327cc: cpio: Digest mismatch

ошибка: postgresql-contrib-9.0.3-3.1C.i686: install failed


Решение: Запускаем rpm без проверки digest и md5

Rpm --nodigest --nomd5 -ihv postgresql-contrib-9.0.3-3.1C.i686.rpm





После этого в операционной системе появится пользователь «postgres», который будет владеть всеми файлами СУБД и в сеансе которого будет запускаться сервер (не путайте его с одноимённым суперпользователем самой СУБД).
Будет создан скрипт /etc/init.d/postgresql для старта и остановки СУБД.
Бинарные файлы клиента и сервера PostgreSQL 9.0.3 находятся в /usr/pgsql/bin/…


7d)


Инициализируем кластер баз данных PostgreSQL (так называется директория, обычно /var/lib/pgsql/data, в которой хранятся данные всех баз этой установки СУБД PostgreSQL):

Примечание: в предыдущих версиях Postgres проходил трюк, когда мы просто запускали сервер СУБД, и он при первом запуске не обнаруживая директории с файлами БД - сам инициировал initdb… Но сейчас это не работает -
нужно запускать initdb явно и с правильными параметрами. При этом, нужно явно указать системного пользователя в сеансе которого происходит запуск сервера СУБД (командой «su postgres»). Также явно указываем локаль в которой работает сервер (locale=ru_RU.UTF-8).

Bash# su postgres -c "/usr/pgsql/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8"



При выполнении этой команды, её консольный вывод подтвердит заданные параметры (в консоли появится текст):

   Файлы, сопутствующие этой системе баз данных, будут принадлежать пользователю «postgres». Этот пользователь также должен быть владельцем процесса сервера.
   Кластер баз данных будет инициализирован с локалью ru_RU.UTF-8. Кодировка базы по умолчанию установлена в UTF8. Конфигурация полнотекстового поиска по умолчанию установлена в «russian».



В результате будет создана база данных, размещенная в каталоге /var/lib/pgsql/data (примечание: тут же и конфиги сервера PostgreSQL).

Грабли: если во время инициализации кластера баз данных выпадает ошибка?

FATAL: could not create shared memory segment…
HINT: This error usually means that PostgreSQL"s request for a shared memory segment exceeded your kernel"s SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 35233792 bytes), reduce PostgreSQL"s shared_buffers parameter (currently 3584) and/or its max_connections parameter (currently 104).


Решение: Необходимо увеличить значение параметра kernel.shmmax, для этого добавляем в файл /etc/sysctl.conf строчку:

Kernel.shmmax = 40000000


Затем обновляем параметры sysctl следующей командой:

Bash# sysctl -p


Примечание: Обычно эта проблема характерна для 32-битных версий… Но у меня на CentOS 6.3 32bit такой проблемы не возникло - здесь уже установлен параметр kernel.shmmax = 4294967295


7e)


Настройка сервиса PostgreSQL:

Добавляем в автозагрузку и запускаем сервис PostgreSQL:

Bash# chkconfig postgresql on bash# service postgresql start



Бинарные файлы клиента и сервера PostgreSQL 9.0.3 находятся в /usr/pgsql/bin/… Создадим символические ссылки на необходимые бинари, чтобы они запускались без указания пути (особенно это нужно для Консольного клиента PostgreSQL):

Ln -s /usr/pgsql/bin/psql /usr/local/bin/psql и др.



При первом запуске PostgreSQL, для контроля привилегий доступа к сущностям БД, в СУБД создаётся учётная запись суперпользователя «postgres» с паролем «postgres» (не путайте её с учётной записью ОС Линукс). Первое что нужно сделать – сменить стандартный пароль… Задаем пароль для суперпользователя СУБД «postgres» командой:

Bash# psql -U postgres -c "ALTER USER postgres PASSWORD "newpassword""


Примечание: теперь этот пароль будет использоваться при соединении клиентов к СУБД: login=«postgres» password=«newpassword».

7f)


Настраиваем сервер PostgreSQL для работы с «Сервером 1С: Предприятие» (правим конфиги):
См. описание параметров конфигов на русском...

В файле /var/lib/pgsql/data/postgresql.conf - настройки сервера. Нужно указать параметры (раскомментировать строки или если этих параметров нет, то ввести их вручную):

Default_with_oid = on



По умолчанию, Автовакуум в PostgreSQL 9.0.3 отключён… Если вы хотите включить «Автоматическую сборку мусора (Automatic Vacuuming)» в БД (что полезно для слабонагруженных серверов, чтобы админу не требовалось делать процедуру «упаковки БД» периодически и вручную, а просто установить и забыть) - то установите такие параметры:

Track_counts = on autovacuum = on


Примечание: в предыдущих версиях СУБД был параметр «stats_row_level»… но в PostgreSQL 9.0.3 этот параметр устарел и вошёл в новый параметр «track_counts».

В файле /var/lib/pgsql/data/pg_hba.conf настраивается политика доступа и идентификации пользователей (т.е. допустимые параметры подключения к PostgreSQL-серверу)… Убедитесь, что в конце этого файла указана незакомментированная такая строчка (что означает «разрешить подключения к серверу с любых хостов, пароли при логине хешируются md5»):

Host all all 0.0.0.0/0 md5


Примечание: если в строке политики заменить «md5» на «trust», то пароль при подключении проверяться не будет! (полезно для восстановления/изменения забытого пароля суперпользователя) Также обратите внимание, что политика по-умолчанию для клиентских подключений с localhost: пароли не проверяются...

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

Наконец, перезапустите сервер PostgreSQL:

/etc/init.d/postgresql restart




8) Установка «Сервера 1С: Предприятие 32bit для RPM-based Linux-систем (8.2.16.368)» на Линукс CentOS (6.3)



Дистрибутив серверной части 1С: Предприятия 8 для Linux представлен в виде нескольких rpm-пакетов:

  • 1C_Enterprise-common - общие компоненты 1С: Предприятия 8;
  • 1C_Enterprise-server - компоненты сервера 1С: Предприятия 8;
  • 1C_Enterprise-ws - адаптер для публикации Web-сервисов 1С: Предприятия 8 на веб-сервере на основе Apache HTTP Server 2.0 или Apache HTTP Server 2.2;
  • 1C-Enterprise-crs - компоненты сервера хранилища конфигурации 1С: Предприятия 8.
  • Пакеты, содержащие в названии суффикс "-nls" - это дополнительные национальные ресурсы для соответствующего пакета.


Пакеты 1C_Enterprise-server и 1C_Enterprise-ws не зависят друг от друга. Соответственно, они могут быть установлены на одном компьютере как вместе, так и по отдельности (т.е. «сервер 1С» и «Web-сервер» можно разнести по разным машинам, как и отделить сервер СУБД, для разгрузки «сервера 1С»)…

Примечание от 2014.01.15: замечено, что код пакета «1C_Enterprise-ws» всё-таки зависит от пакета «1C_Enterprise-server», но это не принципиально...



Установка должна выполняться от имени пользователя root...

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

Rpm -ihv 1C_Enterprise82-common-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-common-nls-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-server-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-server-nls-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-ws-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-ws-nls-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-crs-8.2.16-368.i386.rpm rpm -ihv 1C_Enterprise82-crs-nls-8.2.16-368.i386.rpm



Затем сервер следует запустить в режиме демона:

/etc/rc.d/init.d/srv1cv82 stop /opt/1C/v8.2/i386/ragent -daemon /etc/rc.d/init.d/srv1cv82 restart



Все вышеперечисленные действия должны выполняться от имени пользователя root.

В процессе установке компонент сервера 1C: Предприятия 8 создается пользователь операционной системы с именем usr1cv82, под учетной записью которого будут исполняться серверные процессы 1С: Предприятия 8.

8a)


После установки всех требуемых пакетов, нужно запустить скриптовую утилиту диагностики и инициализации графической подсистемы в 1С v8.2 и выполнить её рекомендации, если таковые возникнут. (Утилита проверяет систему на наличие в ней требуемых для графической подсистемы в 1С v8.2 компонентов и настроек, и выдаёт рекомендации, если 1С ещё что-то требуется.)

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



Дополнительная информация про утилиту «config_server»: на nefrit.arvixe.ru и blog.unixstyle.ru …

Порядок настройки системы с помощью утилиты «config_server» будет примерно следующий (некоторые из этих этапов у вас могут отсутствовать - пропустите) :

Установка должна выполняться от имени пользователя root...

1) После первого запуска утилиты «config_server» - должна вылететь ошибка: «Can not detect font directory, please specify it!»
Решение: ставим отсутствующие TTF-шрифты по рецепту linewb.ru FAQ и .
Примечание: система папок ~/rpmbuild/ у вас уже должна существовать (они были созданы ранее, при сборке дистрибутива PostgreSQL).
В итоге, для установки шрифтов, достаточно примерно следующих действий:

Yum install rpm-build cabextract wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec rpmbuild -bb msttcorefonts-2.5-1.spec rpm -ivh ~/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm



2) Повторно запускаем утилиту «config_server» - должна вылететь ошибка: «No truetype conversion utility found! Please install ttf2afm or ttf2pt1!»
Решение: ставим утилиту ttf2pt1 (доступна в репозитарии EPEL):

Yum install ttf2pt1



3) Третий раз запускаем утилиту «config_server» - cистема задумается подольше и все будет отлично: больше ошибок в консоль не выдаст…

Наконец, нужно перегрузить «Сервер 1С» (или целиком всю машину):

/etc/init.d/srv1cv82 restart



Все вышеперечисленные действия должны выполняться от имени пользователя root.

8b)


Все, установка «Сервера 1С» на ОС Линукс завершена!
Остается подключиться к этому «Серверу 1С» через MMC-консоль «Администрирование сервера 1С: Предприятие 8.2» и создать «информационные базы» конфигураций. Об этом ниже…

Примечание: MMC-консоль устанавливается в составе «Технологической платформы 1С: предприятия 8.2» - на другом хосте, и только под управлением Windows. (Хотя в версии «1С: Предприятие 8.3» обещают, что уже реализовано ПО администрирования и под Линукс...)

8c)


Настраиваем поддержку web-клиентов 1С через вебсервер Apache:

Подготовка: Мы будем использовать локальный вебсервер Apache, установленный на этой же линукс-машине, что и «Сервер 1С». Если у вас ещё не установлен вебсервер Apache - то выполните действия из раздела «Task: Install Apache/httpd under Fedora Core/Cent OS Linux» статьи «How to install and start the Apache or httpd service under Linux» :

Yum install httpd chkconfig httpd on /etc/init.d/httpd start



Далее, действуем как сказано в разделе «2. Публикация web-клиента» статьи «Ставим 1C web-клиент на Apache»...

Предположим, у вас на «Сервере 1С» есть информационная база с названием «test1c» (фактически она будет создана поздже, после инициализации кластера и создания БД в postgreSQL… но публикацию можно выполнить спекулятивно и сейчас, т.к. фактически к ИБ мы обращаться не будем, а просто поправим конфиги Apache и создадим на вебсервере заглушку, некоторые папки/файлы). Процедура публикации очень простая и автоматизированная (каждый шаг подробно описан в вышеназванной статье, поэтому тут не повторяюсь) - нужно исполнить следующие команды:

Cd /opt/1c/v8.2/i386 ./webinst -apache22 -wsdir test1c -dir "/var/www/html/test1c/" -connStr "Srvr="delldev";Ref="test1c"" -confPath /etc/httpd/conf/httpd.conf chown apache:apache /var/www/html/test1c/default.vrd chkconfig httpd on service httpd start


Всё, информационная база «test1c» опубликована! Когда вы до конца настроите «кластер серверов 1С» и информационную базу, то к ней можно будет подключиться через броузер, введя адрес http:// delldev/test1c (где delldev - имя хоста под управлением CentOS, с «Сервером 1С» и «вебсервером Apache», который мы сейчас настраиваем)...

Помните: чтобы веб-клиент заработал - также необходимо: к хосту, на котором работает «Сервер 1С» или «Web-сервер Apache» (в данном случае он один), подключить пакет «Сетевых клиентских лицензий» (ключ защиты можно подключить локально или настроить доступ к «менеджеру лицензий»); и включить в «Свойствах» Информационной Базы пункт «Выдавать лицензии сервером приложения» (настраивается через оснастку «Администрирование серверов»).

8d)


Дополнительно: следует знать как включить «Технологический журнал» (он же «логи», он же «log»)…

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

8e)


Дополнительно: если вдруг понадобится… для удаления «Сервера 1С», следует выполнить такие шаги:

Перед удалением необходимо завершить работу кластера серверов:

/etc/rc.d/init.d/srv1cv82 stop


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

Rpm -e 1C_Enterprise82-crs-nls-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-crs-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-ws-nls-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-ws-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-server-nls-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-server-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-common-nls-8.2.16-368.i386.rpm rpm -e 1C_Enterprise82-common-8.2.16-368.i386.rpm



Или также можно выполнить удаление всех rpm-пакетов одной универсальной командой, которая удалит все установленные пакеты, которые начинаются с префикса «1C_», а зависимости будут отслежены автоматически:

Rpm -e`rpm -qa|grep 1C_`




9) Установка защитных ключей (лицензирование 1С)



Подключить ключи к «Серверу 1С» - просто. Нужно скачать драйвер с сайта производителя ключа, распаковать его и выполнить установку двойным кликом…

Советы по выбору драйвера -

Rpm -ihv haspd-3.3-eter4scientific.i586.rpm haspd-modules-3.3-eter4scientific.i586.rpm



Далее, нужно вставить в USB-порт этого сервера два аппаратных ключа: «ключ на сервер 1С: Предприятие» и «ключ на X сетевых пользовательских лицензий» (все ключи в одной физической «флешке»). И всё должно заработать: клиенты будут получать клиентские лицензии через сервер…

Примечание: Ключи нужны только для «Сервера приложений 1С: Предприятие» и для «защищённых клиентских приложений 1С». с СУБД PostgreSQL проблем нет - это opensource и не требует ни лицензий, ни ключей (в отличие от СУБД «MS SQL Server», но мы её не используем).

Примечание: Некоторые версии 1С работали и без ключей (беты)...

Внимание: Нелицензионный «Сервер 1С» (т.е. даже без «серверного ключа») нормально работает с небольшим числом клиентских подключений (до ~12 подключений). Вероятно это сделано для облегчения задач администрирования: начального конфигурирования и мониторинга в случае проблем… Но при превышении этого административного лимита - Сервер начинает отвергать новые подключения и требовать ключ.

По результатам эксперимента...


Примечание: однако «клиентские ключи» (локальные или сетевые) требуются для «защищённых клиентских приложений 1С», в любом случае - что для первого подключения к серверу, что для сотого! инструкции по установке «Технологической платформы для Windows» (в картинках и с видео)…

Запускаем инсталлятор «Технологическая платформа для Windows версии 8.2.16.368» (в версии 8.2 бывает только 32-битная) - там все программы в одном флаконе. При установке выбираем следующие компоненты:

  • «1С: Предприятие» (Основные компоненты «1С: Предприятия», включая компоненты для администрирования, конфигурирования, толстый и тонкий клиент)
  • «1С: Предприятие - Тонкий клиент» (Компоненты тонкого клиента только для работы в клиент-серверном варианте, без возможности работы с файловым вариантом)
  • «Администрирование сервера 1С: Предприятия» (MMC-консоль для администрирования кластера серверов)
  • «Интерфейсы на различных языках: английский, русский...» (по-умолчанию)



Подчёркиваю, мы не ставим следующие компоненты (они не нужны в этом клиент/серверном варианте использования 1С):

  • «1С: Предприятие - Тонкий клиент, файловый вариант» (Компоненты тонкого клиента, включая компоненты для работы с файловым вариантом информационной базы )
  • «Сервер 1С: Предприятие» (на этой машине он не нужен , т.к. он уже установлен на другом хосте под ОС Линукс… Хотя если у вас в будущем будет гетерогенный «кластер серверов 1С»: в которых будут входить машины под управлением не только Линукс, но и Widows - только тогда этот пункт вам понадобится...)
  • «Модули расширения веб-сервера» (работают только под Windows: «Сервер 1С» под Windows + web-сервер IIS под Windows, можно на разных машинах… Эти модули позволяют просто реализовать сайт, на котором будет интерфейс 1С-клиента встроен прямо в web-страничку. Тяжёлый неповоротливый сайт, потому что соединение из модулей веб-сервера к «серверу 1С» - через DCOM… Но польза сомнительна: эта хрень требует на каждое подключение удалённого веб-клиента по отдельному полноценному «клиентскому ключу»! Поэтому такой сайт никак не может быть массовым... )
  • «Сервер хранилища конфигураций 1С: Предприятия» (Используется если конфигурация хранится не в реляционной СУБД, а файлово - оптимизирует работу с ней многопользователей, сервера 1С или Web-сервера Apache. По отзывам: глючная фигня, и походу 1С забила на её развитие... )
  • «Конвертер ИБ 1С: Предприятия 7.7» (нужен только разработчикам)



«Установку HASP-драйвера» производим в том случае, если 1С на данном компьютере будем использовать лицензионную: либо к USB-порту будет присоединяться аппаратный ключ защиты, либо лицензия будет браться из сети с «менеджера лицензий»… (Напоминаю: если будете использовать кряк/эмулятор, то при инсталляции не ставьте «HASP-драйвер защиты»!)

Совет: Чтобы ничего не глючило, убедитесь в правильных настройках DCOM НА КАЖДОЙ МАШИНЕ под управлением ОС Windows, которую вы используете для работы с 1С.
DCOM настраиваются через оснастку dcomcnfg, как показано в инструкции... (Примечание: в инструкции говорится не только про DCOM, а про установку 1Сv8+MSSQL… Но в ней также наглядное описание в картинках, куда кликать чтобы настроить DCOM.)

10b)


Теперь переходим непосредственно к эксплуатации установленного пакета программ:

Запускаем MMC-консоль: Пуск -> Программы -> 1С: Предприятие 8.2 -> Дополнительно -> Администрирование серверов 1С: Предприятие.

Через консоль, последовательно создаем объекты: «Центральный сервер», «Кластер», «Рабочий сервер», «Рабочий процесс», «Информационная база» - как описано и показано в статье «Администрирование серверов 1С Предприятия»...

Следующие статьи немного устарели и неполные (изменился вид MMC-консоли, порядок создания и параметры компонент), но тоже могут быть полезны для иллюстрации, что требуется сделать на этом этапе: дальше без ключей работа невозможна! Другие варианты ключей и вопросы с ними здесь не рассматриваю - они уже выходят за рамки данной статьи… Ещё можно активировать программные лицензии через email/телефон (если линукс драйвер их поддерживает?), или настройте эмуляторы/кряки (но замечу, что под линукс эмуляторов ещё не реализовали , и вряд ли сделают, т.к. особо не нужны)...

После того как, через MMC-консоль администрирования сервера, [уже была] создана «Информационная база» (пока пустая) - к ней можно подключиться «Толстым клиентом» в режиме «Конфигуратора» и начать создание/настройку прикладной Конфигурации… Сделайте это сейчас:

  1. Подключитесь к ИБ Конфигуратором (при первом запуске клиента, нужно добавить ИБ в список: кнопка «Добавить» / «Добавление в список существующей информационной базы» / «На Сервере 1С: Предприятия» / «Кластер серверов» = delldev (имя хоста сервера); «Имя ИБ в кластере» = test1c);
  2. Загрузите Конфигурацию («Конфигурация / Загрузить конфигурацию из файла (.cf)»… затем пройдёт длительный процесс слияния конфигураций и перестройки БД, с запросами подтверждений);
  3. Импортируйте реальные учётные данные (пункт меню «Администрирование / Загрузить информационную базу» - это когда данные были предварительно выгружены в «файловый вариант ИБ», используется для сервисных нужд);
    Примечание: не путайте этот пункт с «восстановлением базы данных PostgreSQL из регулярной резервной копии» - этот процесс делается на сервере СУБД PostgreSQL, для всего кластера баз данных целиком, т.е. для всех информационных баз хранящихся на текущем сервере СУБД… Это операция грубая и грандиозная, делается в случае сбоев сервера или при миграции существующего сервера на новое железо...
  4. Настройте Пользователей системы и их Роли (пункт меню «Администрирование / Пользователи»… обязательно создайте пользователя «Администратор» и включите ему все возможные Роли).



А когда прикладная Конфигурация будет загружена и настроена - к ней можно будет подключаться разными клиентами (толстым, тонким, web) для использования и решения прикладных задач…

На этом всё! Спасибо за внимание!


«1C: Предприятие на Ubuntu 10.04 / Установка PostgreSQL 9.0» , тут , …