From: Владимир Скубриев <v.skubriev@gmail.com.>
Newsgroups: email
Date: Mon, 7 Aug 2009 17:02:14 +0000 (UTC)
Subject: Настройка сервера приложений 1c 8.1 с использованием PostgreSQL и Debian GNU/Linux
1. Вступление.
Хочу поделиться со всеми пользователями моего любимого портала
"opennet.ru" опытом пошаговой установки и настройки сервера приложений
1с на основе моего любимого дистрибутива Debian GNU/Linux.
Буду признателен за ваши комментарии и критику!
2. Установка и настройка операционной системы.
Рассчитывая на специалистов различной подготовки устанавливать, и
настраивать желаемое решение будем внутри виртуальной машины. На мой
взгляд, это упростит и унифицирует наши последовательные шаги.
2.1 Загрузка образа дистрибутива Debian GNU/Linux
На момент написания статьи использовалась версия 5.0.2
Следуя моим рекомендациям лучше загружать версию netinst (~180Мб)
архитектуры i386. Данная версия содержит все необходимое базовое
программное обеспечение.
На момент описания статьи последняя версия "netinst", архитектуры i386,
была доступна и загружена для последующей установки по ссылке
По этому адресу http://cdimage.debian.org/debian-cd/5.0.2/i386/iso-cd вы всегда
можете выбрать последнюю версию.
2.2. Установка программы Virtual box.
На момент написания статьи использовалась версия 3.0.2
Загрузить ее можно по адресу http://www.virtualbox.org/wiki/Downloads
Устанавливаем все по умолчанию.
Соглашаемся на установку не подписанных драйверов виртуальной сети
обеспечивающих работу сетевого моста, т.е. реальной сетевой карты у
виртуальной машины, смотрящей в нашу реальную сеть к которой принадлежит
хост машина.
Создаем виртуальную машину, выделяем памяти не меньше 512 Мб.
Остальное можно оставить по умолчанию, если у вас на диске "С" есть
свободное место. Если нет, то лучше, конечно создать жесткий диск
виртуальной машины на другом диске, например "D".
2.3 Создание виртуальной машины.
После того, как будет создана ВМ, заходим в её "Свойства"
Настраиваем сеть.
Выбираем вкладку первого адаптера.
Ставим галочку "ВЫКЛЮЧИТЬ".
Мы будем устанавливать систему в виртуальной машине без сетевых
адаптеров. Настройку сети выполним после установки системы
Installer выдаст предупреждение: "Сетевые интерфейсы не обнаружены",
выберите "Продолжить".
Введите имя компьютера, например "d1c1"
В диалоге "Настройки времени" выберите "Москва", ждем installer
Выберите метод разметки "Авто использовать весь диск", далее выберите
виртуальный HDD.
Схема разметки. Рекомендую "Все файлы в одном разделе". Если у Вас нет
другого мнения на этот счет. При установке на реальный сервер,
рекомендую создать отдельный физический раздел для монтирования в него
каталога /var. Именно в этом каталоге будет храниться база данных 1с.
Это позволить проводить резервное копирование базы данных, её настроек и
системы раздельно.
Далее диалог "Разметка дисков" покажет схему, подготовленной им разметки
для установки ОС. Выберите "Закончить разметку и записать изменения на
диск".
Далее выберите "Да", т.е. записать все изменения на жесткий диск и
значит приступить к установке системы: разметке диска, созданию файловых
систем на разделах, копированию базовой системы на HDD. Ждем installer
В диалоге "Настройка учетных записей пользователей и паролей" введите
пароль для суперпользователя. Затем, в следующем диалоге подтвердите
пароль еще раз.
Далее Installer попросит Вас создать обычного пользователя системы.
Введите ваше ФИ например "Ivan Petrov".
В следующем окне введите уже имя учетной записи, например "ivan". Ну и
наконец, два раза пароль, т.е. один раз, потом еще раз в следующем окне
для подтверждения.
Далее в диалоге "настройка менеджера пакетов" перейдите на кнопку
"Вернуться" и нажмите [Enter].
Installer Выдаст предупреждение! "Продолжить без зеркала архива из сети?"
Выберите "Да".
На вопрос "Выберите устанавливаемое программное обеспечение" выберите
"Стандартная система" и нажмите продолжить. Другими слова просто
перейдите на кнопку "Продолжить" и нажмите [Enter].
На вопрос: "Установить системный загрузчик?" ответьте "Да" или просто
нажмите [Enter]
Будет произведена первая загрузка системы. Как только система
загрузиться выполните следующее: из меню окна виртуальной машины
выберите "Машина" -> "Выключить через ACPI".
2.5 Настройка сетевого адаптера.
Итак, приступим к настройке сети, зеркала архивов, обновлению системы.
Зайдите в "Свойства" вашей виртуальной машины, вкладка - слева "Сеть"
Измените ip адрес вашей виртуальной машины, сетевую маску, шлюз в
соответствии с вашей сетью.
Примечание:
Если ваша маска сети 255.255.255.0 значит допустимые ip адреса для вашей
сети будут в диапазоне X.X.X.1-254.
Основным шлюзом скорее всего будут ваш модем, точнее его IP. Как правило
это 192.168.1.1 или 192.168.0.1.
Подробнее о принципах адресации в ip сетях советую почитать здесь
Чтобы сохранить нажмите [Ctrl+O]
Для выхода из редактора нажмите [Ctrl+X]
Для настройки серверов имен и dns суффикса откройте и отредактируйте
файл /etc/resolv.conf:
Примечание:
Адресом(ми) DNS если вы выходите в Интернет через модем, будет IP Адрес
вашего модема, или ip адреса DNS серверов вашего провайдера. Если Вы
находитесь внутри корпоративной сети, то уточните DNS у вашего
системного администратора.
Строку search <Имя домена>
Нужно оставить, если компьютеры в вашей сети входят в домен, например в
Active Directory, то введите полное имя домена, можно маленькими
буквами. Например, myfirm.local.
Чтобы сохранить нажмите [Ctrl+O]
Для выхода из редактора нажмите [Ctrl+X]
Внимание строку search myfirm.local следует добавлять, если ваша сеть
использует сеть с доменами.
Выполните команду
reboot
Проверить настройку и работу сети можно через команды
ifconfig -a
ping <ourdomaincontroller>
ping yandex.ru
Для дальнейшей настройки нам понадобиться доступ в Интернет.
2.6 Настройка менеджера пакетов.
Выполните следующие команды, чтобы добавить репозитарии программ.
Выполните следующую команду для загрузки списка доступных пакетов на
зеркалах и обновления системы:
aptitude update && aptitude safe-upgrade
Менеджер пакетов загрузить все необходимое (~ 20 Мб.)
Во время загрузки пакетов будет много нераспознаваемых символов, что мы
совсем скоро исправим.
Введите "Y" на заданный вопрос, чтобы обновить систему и установленные в ней пакеты.
Выполните следующую команду для установки пакета русификации консоли.
aptitude -R install console-cyrillic
Примечание: если Вы устанавливаете систему, используя зеркало архивов из
сети, то этот пакет будет установлен ею в процессе первоначальной
инсталляции.
В первом диалоге настройки пакета выберите Alt+Shift для переключения
раскладки клавиатуры с русского языка на английский и наоборот.
Потом нажмите "ОК"
Теперь выберите последнюю строчку (с квадратиками), для того, чтобы не
использовать временный переключатель раскладки.
По умолчанию в системной консоле будет использоваться английская раскладка.
Теперь можно перезагрузить наш виртуальный сервер.
reboot
2.7 Для удобства управления нашим сервером настроем на нем ssh сервер.
aptitude -R install openssh-server
Как видите, после установки пакета console-cyrillic теперь русские буквы
отображаются правильно.
3. Настройка консольного клиента putty.
Для доступа к вашему серверу теперь можно использовать специальный
клиент, например putty.
Загрузить его можно по адресу: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Запустив клиента, введите имя или ip вашего сервера в поле HostName
В поле Connection type выберите SSH
В поле Saved Sessions введите имя для вашего подключения, которые Вы
потом будете использовать из списка ниже для быстрого соединения с
сервером по уже сохраненным параметрам подключения.
Слева в категориях Window - Translation выберите кодировку UTF-8, так
как debian 5.0 использует именно её по умолчанию.
Далее в категориях вернитесь в Session (в самом верху) и нажмите кнопку Save.
Теперь двойным щелчком из списка ваших сохраненных сессий вы можете
вызывать консоль вашего сервера.
На этом все подготовительные процедуры можно считать выполненными и
переходить к настройке необходимых нам служб для обслуживания клиентов
платформы 1С.
4. Настройка сервера приложений 1с и СУБД PostgreSQL
Нам Необходимо настроить:
1. Систему управления базами данных PostgreSQL с патчами от компании 1С,
которую готовыми пакетами мы загрузим с сервера компании Etersoft.
2. Сервер приложений 1С для платформы GNU/Linux, который был мною
получен из специального раздела сайта для партнеров 1С.
3. Консоль управления кластером серверов 1С под Windows
4. Платформу 1С для работы с базой предоставляемой сервером приложений 1С.
5. Конфигурацию "Управление торговлей" на сервере приложений 1С.
Первым делом необходимо установить библиотеку ICU для поддержки utf-8,
используемой нашей СУБД.
aptitude -R install libicu38
СУБД PostgreSQL с наложенными патчами от 1С можно загрузить по адресу:
Дело в том, что стартовый скрипт на самом деле написан для другого
дистрибутива, т.е. пакеты, которые мы только что установили,
сконвертированы из rpm в deb.
Теперь при запуске postgresql т.е. при выполнении команды
/etc/init.d/postgresql start
Мы увидим следующее:
Starting postgresql service: /usr/bin/pg_ctl: error while loading shared libraries:
libxslt.so.1: cannot open shared object file: No such file or directory
The current value of SHMMAX is too low for postgresql to run.
Please edit /etc/sysctl.conf and set this value to at least 134217728:
kernel.shmmax = 134217728
Для порядка установим необходимые для postgre библиотеки
aptitude -R install libxslt1.1 libxml2
Далее мы видим, что параметр ядра linux SHMMAX (максимальное значение в
байтах для одного сегмента shared memory (в inter process communication
память, используемая между разными процессами)) слишком мал для работы СУБД.
По умолчанию он равен 33554432 т.е. 32 Мб
Для установки этого параметра, в 128 Мб выполним следующую команду:
подробнее о настройке этого и других параметров можно узнать здесь
в таблице 16-1 подробно описано как вычислить значения для параметров ядра системы.
в таблице 16-2 подробно описано как вычислить параметр ядра SHMMAX
в левом столбце указана, вычисляемая величина
в правом столбце указана величина (байт на приращение)
Сменим права на каталог данных нашей базы данных
chown -R postgres:postgres /var/lib/pgsql
Выполним перезапуск системы
reboot
В процессе загрузки linux была загружена и наша СУБД, узнать это можно
следующей командой
/etc/init.d/postgresql status
pg_ctl: server is running (PID: 1724)
/usr/bin/postgres "-p" "5432" "-D" "/var/lib/pgsql/data"
В процессе установки СУБД пакетный менеджер выполняя сценарий
post-install создал нового пользователя в системе postgres
Давайте изменим этому системному пользователю пароль
passwd postgres
Введите новый пароль UNIX:<ВАШ СЕКРЕТНЫЙ ПАРОЛЬ>
Повторите ввод нового пароля UNIX: <ВАШ СЕКРЕТНЫЙ ПАРОЛЬ>
Теперь мы должны сменить пользователя
su -l postgres
и выполним команду psql, чтобы попасть в PostgreSQL interactive terminal
psql
Для того чтобы сменить пароль внутреннему пользователю базы данных
postgres, выполним команду
alter user postgres with password 'YOUR_PASSWORD';
q
В процессе первого запуска нашей СУБД скрипт выполнил команду inidb,
которая создала все необходимое и в том числе конфигурационные файлы в
папке /var/lib/pgsql
Настроим /var/lib/pgsql/data/postgresql.conf
Подробнее про настройку можно почитать здесь или здесь.
# Для среднего 32 битного однопроцессорного сервера примерно 100-150
max_connections = 150
# Размер разделяемой памяти для процессов postgre
shared_buffers = 75MB
# 2/3 от физической памяти сервера, с учетом, того что на сервере установлена только postgresql.
# В противном случае учитывайте потребление памяти другими приложениями.
# нашей виртуальной машине выделено всего 512 Мб, но ведь у нас еще будет на ней работать и сервер приложений 1С
# Другим словами = RAM - (SWAP+RAM_USED_BY_OTHER_PROC_ON_THIS_SERVER)
effective_cache_size = 250MB
# Включаем периодическое обслуживание базы данных - дефрагментацию данных.
autovacuum = on
autovacuum_naptime = 5min
# Вкючение/отключении кэширования.
fsync on
Выключайте для высокой производительности и в случае использования RAID
с аварийным питанием
Включайте в случае если не используете RAID с аварийным питанием, это
заставит СУБД сразу записывать данные на жесткий диск, что сокращает
производительность, зато предостережет от возможности потери данных при
отключении подачи электропитания (аварийного выключения в момент записи
данных).
Цитата с http://www.postgresql.org/docs/8.1/interactive/runtime-config-wal.html
If this option is on, the PostgreSQL server will try to make
sure that updates are physically written to disk, by issuing
fsync() system calls or various equivalent methods (see
wal_sync_method). This ensures that the database cluster can
recover to a consistent state after an operating system or
hardware crash.
Далее открываем файл конфигурации доступа к СУБД
nano /var/lib/pgsql/data/pg_hba.conf
в конце файла стираем все строки после строки
# TYPE DATABASE USER CIDR-ADDRESS METHOD
И пишем то, что ниже:
host all all 127.0.0.1/32 md5
host all all 192.168.0.0/24 md5
первая строка это доступ сервера приложений по логину и паролю
пользователя СУБД к самой СУБД (локально!)
вторая строка это доступ к СУБД из локальной сети (для работы 1С сервера
приложений и платформы не является необходимым).
в последней строке меняем "192.168.0.0/24" на вашу реальную сеть, например
ваш ip 192.168.0.102 и маска подсети 255.255.255.0, значит ваша сеть
192.168.0.0/24
После редактирования конфигов делаем рестарт СУБД
/etc/init.d/postgresql restart
Установка СУБД успешно завершена.
Установка сервера приложений 1С.
Далее я полагаюсь на вашу изобретательность и смекалку. Следующее вам
придется сделать самим в силу лицензионных ограничений.
Проще всего использовать самый простой и легкий клиент ftp. Который можно установить
командой
aptitude -R install ftp
С помощью него вы можете подключиться к настроенному заранее Ftp серверу, на который
нужно будет выложить загруженные с сайта 1с необходимые нам пакеты.
А именно: вам необходимо будет переместить в каталог /root следующие установочные
пакеты:
Далее добавим скрипты запуска и остановки сервера приложений 1С, так как
пакетный менеджер, выполняя сценарий post-install это не делает.
update-rc.d srv1cv81 defaults
Если почитать man init, то станет ясно, что команда выше сделала все
правильно.
Внимание! Перед тем как мы создадим базу данных через консоль управления
серверами 1С, необходимо выполнить команду
dpkg-reconfigure locales
Далее при настройке пакета отметьте en_US.ISO-8859-1
Локаль по умолчанию (в следующем окне) выберите ru_RU.UTF-8
иначе при создании БД мы получим ошибку про "lc_messages".
Перезапускаем наш сервер
reboot
Сервер готов к созданию на нем базы данных.
Установите последнюю платформу 1С 8.1 на компьютер с ОС Windows.
Вы можете создать пустую базу данных через консоль управления, и затем
загрузить в неё конфигурацию.
Запустите консоль управления серверами, её можно найти здесь:
1С: Пуск -> Все программы -> 1C Предприятие 8.1
Создайте новый сервер:
Откройте вкладку "Центральные сервера "
Нажмите правой кнопкой мыши по элементу "Центральные сервера "
Выберите создать центральный сервер 1С 8.1
В появившемся окне введите имя компьютера на котором функционирует
сервер приложений например d1c
Порт оставьте по умолчанию.
Нажмите "ОК"
В списке "Центральные сервера " появиться ваш свежее установленный
виртуальный сервер.
Раскройте в нем вкладки "Кластеры", "1541", "Информационные базы"
Нажмите правой кнопкой мыши по элементу "Информационные базы"
выберите создать "информационная база".
Введите имя базы 1С, псевдонима, например: Sklad1
Защищенное соединение: выключено
Сервер баз данных: localhost
Тип СУБД: Postgre
База данных, в СУБД postgre: pg_Sklad1
Пользователь БД: postgres
Пароль пользователя БД: YOUR_PASSWORD
Язык: русский(Россия)
Смещение дат: 0
Включите "Создать базу данных в случае ее отсутствия"
Далее нажмите "ОК"
Или выполнить создание базы данных из шаблона. Для этого вам потребуется
установленная конфигурация 1С, например "Управление торговлей" Поэтому
перед следующими шагами установите конфигурацию 1С Предприятие
"Управление торговлей".
Запустите платформу 1С Предприятие 8.1
Выберите "Добавить"
Создание новой ИБ выберите нужный шаблон конфигурации, например Управление торговлей (демо)-10.3.8.7
Нажмите "Далее"
Введите имя и ниже укажите "На сервере 1С:Предприятия", нажав "Далее"
Имя кластера введите имя вашего виртуального сервера например d1c
Имя информационной базы Sklad1
Защищенное соединение: выключено
Тип СУБД: Postgre
Сервер БД: localhost
Имя БД: pg_Sklad1
Пользователь БД: postgre
Пароль пользователя БД: YOUR_PASSWORD
Смещение дат: 0
Включите "Создать базу данных в случае ее отсутствия".
799 Прочтений • [Настройка сервера приложений 1c 8.1 с использованием PostgreSQL и Debian GNU/Linux (1с debian linux)] [08.05.2012] [Комментариев: 0]