1C/CRS: различия между версиями
м (→Настройка доступа по ftp к файлам хранилища конфигуращий: объезд грабельки mw с "=" в шаблоне) |
|||
Строка 143: | Строка 143: | ||
=== Настройка веб-доступа === | === Настройка веб-доступа === | ||
Для доступа к серверу хранилища конфигураций из-вне достаточно удобно использовать веб-доступ. | |||
Это позволяет настроить несколько серверов хранилищ (например версий 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/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}} | |||
На данном этапе уже можно подключаться по адресу (для создания хранилища) {{path|http://ip_or_dns_name/storage/repo.1ccr/name_of_repo}} |
Версия от 01:01, 1 декабря 2014
Сервер хранилища конфигураций
Проверено на конфигурациях:
- ALT Linux starter kit (Trientalis) i586
- 1С:Предприятие 8.3.5-1248 i386
Важные замечания
- Сервер хранилища конфигураций (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"
Т.к. интерактивный вход данному пользователю не нуже можно отключить шелл: usermod -s /bin/bash crsusr
В отличие от сервера 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-скрипта добавляем его 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/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
На данном этапе уже можно подключаться по адресу (для создания хранилища) http://ip_or_dns_name/storage/repo.1ccr/name_of_repo