Установка сервера 1С-Предприятие на Debian Linux в VMWare, публикация баз на веб-сервере Apache.

Требования к виртуалке - минимум 1 ГБ оперативной памяти, от 20 ГБ и больше места на диске, сетевой адаптер - bridged. Далее по вкусу.
Если вы решили устанавливать 64-разрядную ОС, добавьте поддержку 32-разрядного софта.
Вообще лучше всего ставить именно I386 - иначе потом будут проблемы с nethasp-ом.

Так называемый "мини-сервер 1С" на 5 максимум пользователей абсолютно ничем в плане дистрибутива не отличается от сервера 1С как такового. Только вариантом лицензии (ПИН-кодом или USB-ключом).

UPD. Сгоряча забыл написать про установку nethasp, дополнил.


Основы.

***

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

df -h

Для нормальной работы должно быть доступно не менее 4-6 ГБ, и это - уже впритык.
В общем, следите за свободным местом, ротируйте логи, убирайте бэкапы на стороннее хранилище.

***

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

***

Тюнингуйте postgres. Об этом добавлю в п.10

1. Подготовка сервера.


При установке дистрибутива ОС отказываемся от всего кроме SSH-сервера и стандартных системных утилит, так как все нужное нам мы будем брать с сайта Etersoft.
После того, как виртуалка установлена и работает, ставим mc и ftp:

apt-get install mc ftp

Затем создаем директорию, куда будем качать postgres и дистрибутивы сервера 1С:

mkdir /opt/temp/

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

mkdir /opt/distr/

Даем себе в новые директории полные права:

chmod 7777 /opt/temp/
chmod 7777 /opt/distr/


2. Ставим Postgresql.


Переходим в директорию загрузки:

cd /opt/temp/

Качаем сначала дистрибутивы postgresql и необходимые доп файлы:

wget http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/libpq5.5-9.2eter_9.2.1-eter8debian_i386.deb http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/postgre-etersoft9.2-contrib_9.2.1-eter8debian_i386.deb
http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/postgre-etersoft9.2-seltaaddon_9.2.1-eter8debian_i386.deb
http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/postgre-etersoft9.2-server_9.2.1-eter8debian_i386.deb
http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/postgre-etersoft9.2_9.2.1-eter8debian_i386.deb

http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-docs_9.2.1-eter8debian_i386.deb
http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plperl_9.2.1-eter8debian_i386.deb
http://download.etersoft.ru/pub/Etersoft/Postgre%40Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plpython_9.2.1-eter8debian_i386.deb

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

dpkg -i *.deb

Выбираем следующие параметры для postgres:

  • en-us UTF-8
  • ru-ru UTF8
  • язык по умолчанию в системном окружении: ru-ru UTF8
Разрешаем неудовлетворенные зависимости:

apt-get -f install

и при необходимости повторяем установку.

Переносим на всякий случай дистрибутивы в наш архив по адресу opt/distr/ и освобождаем директорию загрузки.


3. Устанавливаем nethasp.


Устанавливаем дистрибутив nethasp с сайта etersoft:

cd /opt/temp
wget http://download.etersoft.ru/pub/Etersoft/HASP/3.3/Debian/7.0/haspd-modules_3.3-eter10debian_i386.deb
wget http://download.etersoft.ru/pub/Etersoft/HASP/3.3/Debian/7.0/haspd_3.3-eter10debian_i386.deb
dpkg -i *.deb

Не забываем освободить /temp и перенести дистрибутивы в директорию /opt/distr

4. Устанавливаем сервер 1С-Предприятия.


Качаем в /opt/temp/ дистрибутивы 1С:

wget http://downloads.v8.1c.ru/get/Info/Platform/8_3_6_2332/deb.tar.gz

Распаковываем и ставим:

tar -xvf *.tar.gz
dpkg -i *.deb

На этом первоначальные этапы подготовки закончены. Остается настроить postgres и создать наши базы.

5. Настройка postgres.


Инициализируем postgres:

service postgresql enable
service postgresql start

- и вуаля! наш postgres не стартует. Делаем:

echo "kernel.shmmax=134217728" >>/etc/sysctl.conf
sysctl -p
service postgresql start

и теперь все хорошо.

Далее - даем себе возможность коннектиться к серверу postgres:

nano /var/lib/postgresql/data/pg_hba.conf

ищем строку:

host    all       all         ::1/128            ident

и меняем ident на trust, в итоге должно быть:

host    all       all         ::1/128            trust

сохраняем CTRL+O, выходим CTRL+X.

Онлайн-конфигуратор postgresql.conf и sysctl.conf тут: http://pgtune.leopard.in.ua


6. Фиксим проблему с "отваливающимся" nethasp.


Идем в директорию cron и пишем скрипт:

#cd /etc/cron.d
#touch /etc/cron.d/hasp.sh

nano /etc/cron.d/hasp.sh

#!/bin/bash
if [ "`/usr/sbin/haspdemo | sed -n 's/^LOCALHASP_ISHASP.* \(\-\?[0-9]*\)$/\1/p'`" == "-100" ]; then service haspd $
else exit
fi

сохраняем CTRL+O, выходим CTRL+X.
Не забываем на данный файл дать права на запуск и чтение.

Далее редактируем crontab:

crontab -e

пишем задание для cron:

*/1 * * * *          /etc/cron.d/./hasp.sh
*/1 * * * *          /etc/init.d/haspd start


сохраняем CTRL+O, выходим CTRL+X.


Мониторинг процесса осуществляет утилита haspdemo, с ее помощью можно периодически мониторить состояние ключа в ручном режиме.

7. Публикуем (при необходимости) базу 1С-Предприятия на веб-сервере Apache.



Ставим apache:

sudo apt-get install apache2

Создаем директорию mysite, где будет храниться опубликованная база 1С:

sudo mkdir /var/www/mysite

идем в директорию, где находится файл webinst (в моем случае это /opt/1C/v8.3/i386):

cd /opt/1C/v8.3/i386

и публикуем нашу базу:

./webinst -apache22 -wsdir mysite -dir /var/www/mysite -connstr "Srvr=my_ip_address;Ref=mybase;" -confPath /etc/apache2/apache2.conf

mysite - созданная нами директория для хранения опубликованной базы; 
my_ip_address - IP-адрес нашего сервера 1С; 
mybase - имя публикуемой базы, то есть как база называется на сервере 1С.

8. Настраиваем бэкап баз(ы) данных.


sudo mkdir /opt/backup1C
cd /etc/cron.daily
sudo touch backup_1C

nano /etc/cron.daily/backup_1C

#!/bin/bash
PGPASSWORD="password" pg_dump -h 127.0.0.1 -U postgres -Fc mybase -f /opt/backup1C/km.dbpg.dump.`date +%Y-%m-%d-%H_%M`

сохраняем CTRL+O, выходим CTRL+X.

Разумеется, лучше дублировать дампы куда-нибудь еще на сетевое хранилище) Как говорится, подальше положишь - поближе возьмешь.


9. Начало работы с кластером серверов и "зависающие" сеансы.


Обратил внимание, что при работе с платформой 1С 8.3, сеансы клиентов к серверу 1С "зависают", не освобождая при этом клиентские лицензии на подключение.
Заходим в консоль управления кластером серверов, кликаем на "сеансы" и внимательно смотрим. Нас интересует "пользователь" и "сервер". В зависшей сессии, как правило, нет или пользователя, или сервера, или и того и другого.

Эти "фантомы" (непонятно кто или непонятно куда) используют клиентские лицензии, поэтому их нужно "убить".
Можно убивать их вручную, что в принципе результативно, а можно взять вот эту обработку: http://infostart.ru/public/123354/ (платная, но она хороша) и автоматизировать рутинные действия.

Производим следующие настройки в консоли кластера серверов:

кликаем правой кнопкой мыши по "локальный кластер" или как он у вас называется.

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

Продолжение следует.

1 комментарий:

  1. Анонимный14:34

    Я здесь, чтобы поделиться своим свидетельством о том, что хорошая кредитная компания сделала для меня. Меня зовут Никита Таня, я родом из России, и я прекрасная мама троих детей. Я потеряла деньги, пытаясь получить кредит, это было так тяжело для меня и моих детей, что я зашла в интернет, чтобы получить помощь в кредите, все надежды были потерял до одного верного дня, когда я встретил моего друга, который недавно получил кредит от очень честного человека, мистера Бенджамина. Она познакомила меня с этим честным кредитным агентом, господином Бенджамином, который помог мне получить кредит в течение 5 рабочих дней, я буду вечно благодарен мистеру Бенджамину за то, что он помог мне снова встать на ноги. Вы можете связаться с г-ном Бенджамином по электронной почте: lfdsloans@outlook.com, они не знают, что я делаю это для них, но я просто должен это сделать, потому что многие люди, нуждающиеся в помощи по кредиту, пожалуйста, приходите этому честному человеку, и тебя тоже можно спасти .WhatsApp: (+ 1 989-394-3740)

    ОтветитьУдалить