1C/CRS: различия между версиями
(Первоначальное создание страницы) |
Нет описания правки |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 4: | Строка 4: | ||
* ALT Linux starter kit (Trientalis) i586 | * ALT Linux starter kit (Trientalis) i586 | ||
* 1С:Предприятие 8.3.5-1248 i386 | * 1С:Предприятие 8.3.5-1248 i386 | ||
* 1С:Предприятие 8.2.19-116 i386 (для работы во всех путях в конфигах привиденных в статье исправить 8.3 на 8.2) | |||
=== Важные замечания === | === Важные замечания === | ||
Строка 25: | Строка 25: | ||
{{cmd|su - crsusr -c "mkdir /home/crsusr/crepo"}} | {{cmd|su - crsusr -c "mkdir /home/crsusr/crepo"}} | ||
В отличие от сервера 1С:Предприятие, разработчики не позаботились о создании init-скрипта для данного приложения. | |||
В отличие от сервера 1С:Предприятие, | |||
Поэтому предлагается использовать следующий скрипт: {{cmd|cat /etc/init.d/crserver}} | Поэтому предлагается использовать следующий скрипт: {{cmd|cat /etc/init.d/crserver}} | ||
Строка 123: | Строка 120: | ||
* Каталог с файлами хранилища конфигураций - '''STORAGES_DIR''' | * Каталог с файлами хранилища конфигураций - '''STORAGES_DIR''' | ||
После добавления init-скрипта | После добавления init-скрипта делаем его исполняемым {{cmd|chmod +x /etc/init.d/crserver}} | ||
Добавляем его | |||
{{cmd|chkconfig --add crserver}} | {{cmd|chkconfig --add crserver}} | ||
И включаем на автозапуск {{cmd|chkconfig crserver on}} | И включаем на автозапуск {{cmd|chkconfig crserver on}} | ||
=== Настройка доступа по ftp к файлам хранилища | === Настройка доступа по ftp к файлам хранилища конфигураций === | ||
Устанавливаетм ftp сервер {{cmd|apt-get install proftpd}} | Устанавливаетм ftp сервер {{cmd|apt-get install proftpd}} | ||
Строка 134: | Строка 134: | ||
Из глобальных изменений в конфиге {{path|/etc/proftpd.conf}} были внесены только {{term|DefaultRoot ~/crepo}} | Из глобальных изменений в конфиге {{path|/etc/proftpd.conf}} были внесены только {{term|DefaultRoot ~/crepo}} | ||
Остается только включить в {{path|/etc/xinetd.d/proftpd}} сервер proftpd - {{cmd|disable = no}} | Остается только включить в {{path|/etc/xinetd.d/proftpd}} сервер proftpd - {{cmd|1 = disable = no}} | ||
Включем '''xinetd''' - {{cmd|chkconfig xinetd on}} | Включем '''xinetd''' - {{cmd|chkconfig xinetd on}} | ||
И | И перезапускаем же его {{cmd|service xinetd restart}} | ||
Теперь зная пароль пользователя '''crsusr''' можно получить прямой доступ к файлам сервера хранилища конфигураций | Теперь, зная пароль пользователя '''crsusr''', можно получить прямой доступ к файлам сервера хранилища конфигураций. | ||
=== Настройка веб-доступа === | === Настройка веб-доступа === | ||
Для доступа к серверу хранилища конфигураций из-вне достаточно удобно использовать веб-доступ. | |||
Это позволяет настроить несколько серверов хранилищ (например версий 8.2 и 8.3 на различных виртуальных машинах) и через реверс-прокси дать к ним доступ используя различные доменные имена. | |||
Установим веб сервер apache2 с модом itk, это позволит нам запустить веб-сервер от имени того же пользователя от которого запущен сервер хранилища конфигураций: {{cmd|apt-get install apache2-httpd-itk}}. | |||
Создадим каталоги необходимые для работы: {{cmd|su - crsusr -c "mkdir /home/crsusr/www"}}, {{cmd|su - crsusr -c "mkdir /home/crsusr/www/crs"}}, {{cmd|su - crsusr -c "mkdir /home/crsusr/www/html"}} | |||
Создадим файл-заглушку для веб-сервера {{cmd|su - crsusr -c "touch /home/crsusr/www/html/index.html"}}, {{cmd|su - crsusr -c "touch /home/crsusr/www/crs/index.html"}} | |||
Создадим файл-описание подключения к серверу хранилища конфигураций {{cmd|su - crsusr -c "touch /home/crsusr/www/crs/repo.1ccr"}} | |||
Отредактируем и приведем его к виду: {{cmd|cat /home/crsusr/www/crs/repo.1ccr}} | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<repository connectString="tcp://127.0.0.1" /> | |||
</source> | |||
Где {{term|connectString}}, строка подключения к серверу хранилища конфигураций 1С (все варианты подключения описаны в руководстве администратора) | |||
Подключим модуль 1С необходимый для работы с веб-сервисами {{cmd|echo "LoadModule _1cws_module /opt/1C/v8.3/i386/wsap22.so" > /etc/httpd2/conf/mods-available/1cws.load}}, {{cmd|a2enmod 1cws}} | |||
Приведем конфигурационный файл {{path|/etc/httpd2/conf/sites-available/default.conf}} к следующему виду: | |||
<source lang="apache"> | |||
<VirtualHost *> | |||
ServerAdmin webmasterr@localhost.local | |||
DocumentRoot "/home/crsusr/www/html" | |||
AddHandler 1cws-process .1ccr | |||
<IfModule mpm_itk_module> | |||
AssignUserId crsusr crsusr | |||
</IfModule> | |||
Alias /storage /home/crsusr/www/crs | |||
<Directory /home/crsusr/crs/www> | |||
DirectorySlash Off | |||
SetHandler 1cws-process | |||
ManagedApplicationDescriptor /home/crsusr/www/crs/repo.1ccr | |||
Order allow,deny | |||
Allow from all | |||
</Directory> | |||
ErrorLog /var/log/httpd2/error_log | |||
LogLevel warn | |||
<IfModule log_config_module> | |||
CustomLog /var/log/httpd2/access_log common | |||
</IfModule> | |||
</VirtualHost> | |||
</source> | |||
Перезапустим веб-сервер {{cmd|service httpd2 restart}} | |||
И поставим его на автостарт {{cmd|chkconfig httpd2 on}} | |||
=== Заключение === | |||
Так как пользователю, создаваемому в данном руководстве, интерактивный вход в систему (доступ по ssh) не нужен, в целях обеспечения безопасности можно отключить шелл: | |||
{{cmd|usermod -s /dev/null crsusr}} | |||
На сервер хранилища конфигураций можно подключаться следующими способами: | |||
*http-подключение {{path|http://ip_or_dns_name/storage/repo.1ccr/name_of_repo}} | |||
*tcp-подключение {{path|tcp://ip_or_dns_name/name_of_repo}} | |||
Где '''name_of_repo''' имя хранилища конфигурации. | |||
{{Category navigation|title=1C|category=1C|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 13:10, 5 июля 2015
Сервер хранилища конфигураций
Проверено на конфигурациях:
- ALT Linux starter kit (Trientalis) i586
- 1С:Предприятие 8.3.5-1248 i386
- 1С:Предприятие 8.2.19-116 i386 (для работы во всех путях в конфигах привиденных в статье исправить 8.3 на 8.2)
Важные замечания
- Сервер хранилища конфигураций (crserver) является 32-битным приложением
- В поставках x86_64 иногда встречается crserver, но при этом не рекомендуется к использованию (разработчиком ПО)
Установка
Установить сервер хранилища конфигураций можно согласно инструкции по установке сервера 1С
Само приложение находится в пакете 1C_Enterprise83-crs-X.X.X-XXX.i386.rpm и этот пакет обязателен к установке со всеми зависямостями.
Настройка и запуск
Создаем пользователя от имени которого будет осуществлен запуск сервере хранилища конфигураций: adduser crsusr
Задаем ему пароль passwd crsusr
Создаем каталог для хранения файлов сервера хранилища конфигураций: su - crsusr -c "mkdir /home/crsusr/crepo"
В отличие от сервера 1С:Предприятие, разработчики не позаботились о создании init-скрипта для данного приложения. Поэтому предлагается использовать следующий скрипт: cat /etc/init.d/crserver
#!/bin/sh
# Init file for 1C 8.3 x86 Confiration Storage Server daemon
#
# chkconfig: - 35 98 12
# description: 1C 8.3 x86 \
# Confiration Storage Server.
# processname: crserver
# pidfile: /var/run/crserver.pid
# Do not load RH compatibility interface.
WITHOUT_RC_COMPAT=1
NAME=crserver
SRV_PORT="1542"
STORAGES_DIR="/home/crsusr/crepo"
BINDIR="/opt/1C/v8.3/i386"
NAMEUSER=crsusr
GROUPUSER=crsusr
PATH="${BINDIR}:${PATH}"
DAEMON=${BINDIR}/$NAME
DAEMON_ARGS="-port ${SRV_PORT} -d ${STORAGES_DIR}"
# Source function library.
. /etc/init.d/functions
PIDFILE=/var/run/$NAME/$NAME.pid
RETVAL=0
start()
{
if [ ! -d "/var/run/$NAME" ]; then
# Control will enter here if $DIRECTORY doesn't exist.
mkdir /var/run/$NAME
chown $NAMEUSER:$GROUPUSER "/var/run/$NAME"
else
if [ "stat -c '%U' /var/run/$NAME" != "$NAMEUSER" ]; then
chown $NAMEUSER:$GROUPUSER -R "/var/run/$NAME"
fi
fi
start-stop-daemon --start --chuid $NAMEUSER --make-pidfile --background --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
RETVAL=$?
return $RETVAL
}
stop()
{
start-stop-daemon --stop --pid $PIDFILE
RETVAL=$?
return $RETVAL
}
restart()
{
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
pgrep --pidfile "$PIDFILE" > /dev/null 2>&1 && echo "$NAME daemon running" || echo "$NAME daemon not running"
RETVAL=$?
;;
*)
msg_usage "${0##*/} {start|stop|restart|status}"
RETVAL=1
esac
exit $RETVAL
Параметры в скрипте рекомендуемые к изменению:
- Имя и первичная группа пользователя от которого будет запущен скрипт - NAMEUSER, GROUPUSER
- Каталог с файлами хранилища конфигураций - STORAGES_DIR
После добавления init-скрипта делаем его исполняемым chmod +x /etc/init.d/crserver
Добавляем его chkconfig --add crserver
И включаем на автозапуск chkconfig crserver on
Настройка доступа по ftp к файлам хранилища конфигураций
Устанавливаетм ftp сервер apt-get install proftpd
На данном сервере будет только один пользователь с ftp доступом, под ним же и запускается сервер
Из глобальных изменений в конфиге /etc/proftpd.conf были внесены только DefaultRoot ~/crepo
Остается только включить в /etc/xinetd.d/proftpd сервер proftpd - disable = no
Включем xinetd - chkconfig xinetd on
И перезапускаем же его service xinetd restart
Теперь, зная пароль пользователя crsusr, можно получить прямой доступ к файлам сервера хранилища конфигураций.
Настройка веб-доступа
Для доступа к серверу хранилища конфигураций из-вне достаточно удобно использовать веб-доступ.
Это позволяет настроить несколько серверов хранилищ (например версий 8.2 и 8.3 на различных виртуальных машинах) и через реверс-прокси дать к ним доступ используя различные доменные имена.
Установим веб сервер apache2 с модом itk, это позволит нам запустить веб-сервер от имени того же пользователя от которого запущен сервер хранилища конфигураций: apt-get install apache2-httpd-itk.
Создадим каталоги необходимые для работы: su - crsusr -c "mkdir /home/crsusr/www", su - crsusr -c "mkdir /home/crsusr/www/crs", su - crsusr -c "mkdir /home/crsusr/www/html"
Создадим файл-заглушку для веб-сервера su - crsusr -c "touch /home/crsusr/www/html/index.html", su - crsusr -c "touch /home/crsusr/www/crs/index.html"
Создадим файл-описание подключения к серверу хранилища конфигураций su - crsusr -c "touch /home/crsusr/www/crs/repo.1ccr"
Отредактируем и приведем его к виду: cat /home/crsusr/www/crs/repo.1ccr
<?xml version="1.0" encoding="UTF-8"?>
<repository connectString="tcp://127.0.0.1" />
Где connectString, строка подключения к серверу хранилища конфигураций 1С (все варианты подключения описаны в руководстве администратора)
Подключим модуль 1С необходимый для работы с веб-сервисами echo "LoadModule _1cws_module /opt/1C/v8.3/i386/wsap22.so" > /etc/httpd2/conf/mods-available/1cws.load, a2enmod 1cws
Приведем конфигурационный файл /etc/httpd2/conf/sites-available/default.conf к следующему виду:
<VirtualHost *>
ServerAdmin webmasterr@localhost.local
DocumentRoot "/home/crsusr/www/html"
AddHandler 1cws-process .1ccr
<IfModule mpm_itk_module>
AssignUserId crsusr crsusr
</IfModule>
Alias /storage /home/crsusr/www/crs
<Directory /home/crsusr/crs/www>
DirectorySlash Off
SetHandler 1cws-process
ManagedApplicationDescriptor /home/crsusr/www/crs/repo.1ccr
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/httpd2/error_log
LogLevel warn
<IfModule log_config_module>
CustomLog /var/log/httpd2/access_log common
</IfModule>
</VirtualHost>
Перезапустим веб-сервер service httpd2 restart
И поставим его на автостарт chkconfig httpd2 on
Заключение
Так как пользователю, создаваемому в данном руководстве, интерактивный вход в систему (доступ по ssh) не нужен, в целях обеспечения безопасности можно отключить шелл: usermod -s /dev/null crsusr
На сервер хранилища конфигураций можно подключаться следующими способами:
- http-подключение http://ip_or_dns_name/storage/repo.1ccr/name_of_repo
- tcp-подключение tcp://ip_or_dns_name/name_of_repo
Где name_of_repo имя хранилища конфигурации.