Публикация базы данных 1С Предприятия на WEB сервере Apache
Установка Apache и публикация базы 1С на web-сервере под Windows - дело достаточно простое, данным очерком попытаемся упростить подобную процедуру и для linux систем. Опытную установку будем производить на системе CentOS 5.8 в виртуальной машине при помощи VirtualBox (CentOS 5.8 взят только из-за малых потребностей в ресурсах, CentOS 6 также подойдет). База данных 1С@Предприятия будет использоваться на файлах.
Подготовительные мероприятия
Обновим систему:
yum update
Установим веб сервер (если он еще не установлен):
yum install httpd
зададим автоматический старт сервера Apache при помощи chkonfig:
chkconfig httpd on
запустим Apache:
/etc/init.d/httpd start
Заранее подготовим установочные файлы сервера 1С@Предприятия. Взять их можно с дисков ИТС, скачать с официального сайта 1с или других ресурсов. В нашем случае имеется архив сервера 1С предприятия для linux (rpm пакеты).
Установка сервера 1С@Предприятия
Итак, в нашей системе имеется пользователь alexandr, архив с файлами 1С@Предприятия расположен на рабочем столе. Начнем установку.
Распакуем архив и установим пакеты:
mkdir /home/alexandr/temp_1c mv /home/alexandr/Desktop/8.2.17.153_rpm.tar.gz /home/alexandr/Desktop/temp_1c/ cd /home/alexandr/Desktop/temp_1c tar xzvf 8.2.17.153_rpm.tar.gz rm 8.2.17.153_rpm.tar.gz
Убедимся, что архив распаковался:
ls
1C_Enterprise82-common-nls-8.2.17-153.i386.rpm 1C_Enterprise82-crs-8.2.17-153.i386.rpm 1C_Enterprise82-crs-nls-8.2.17-153.i386.rpm 1C_Enterprise82-server-8.2.17-153.i386.rpm 1C_Enterprise82-server-nls-8.2.17-153.i386.rpm 1C_Enterprise82-ws-8.2.17-153.i386.rpm 1C_Enterprise82-ws-nls-8.2.17-153.i386.rpm
Станем суперпользователем root:
su -
cd /home/alexandr/Desktop/temp_1c/
При помощи следующей команды установим все эти пакеты:
rpm -Uvh 1C_Enterprise82*.rpm
Отладка и запуск сервера 1С@Предприятия
Назначим директории с программой правильного владельца и группу:
chown -R usr1cv82:grp1cv82 /opt/1C
Запустим утилиту отладки и конфигурирования сервера 1С@Предприятия:
/opt/1C/v8.2/i386/utils/config_server /usr/share/fonts/
Получили в консоли сообщение о необходимых зависимостях:
/opt/1C/v8.2/i386/utils/config_server /usr/share/fonts/ Please install following package: libglib Please install following package: UnixODBC No truetype conversion utility found! Please install ttf2afm or ttf2pt1!
Установим необходимые пакеты
yum install unixODBC
подключим дополнительные репозитории (RPMForge и EPEL):
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install ttf2pt1
Снова проведем проверку:
/opt/1C/v8.2/i386/utils/config_server /usr/share/fonts/ Please install following package: libglib
Небольшое отступление
В принципе можно считать, что сервер 1С@Предприятие установлен и настроен. Результатом работы скрипта ( /opt/1C/v8.2/i386/utils/config_server) является создание настроечного файла type.xml в директории /opt/1C/v8.2/i386/conf/grcmncfg/. Убедимся так ли это:
ls /opt/1C/v8.2/i386/conf/grcmncfg/
type.xml
А как же неудовлетворенная зависимость libglib?
Здесь все просто. Откроем в текстовом редакторе файл /opt/1C/v8.2/i386/utils/config_server и найдем секцию со злободневным пакетом libglib:
######################################################## # checking nessessary libraries checkLib MagickWand Wand || checkLib Wand || askToInstall ImageMagick checkLib freetype || askToInstall FreeType checkLib gsf-1 || askToInstall libgsf checkLib glib-2.0 || askToInstall libglib checkLib odbc || askToInstall UnixODBC #-------------------------------------------------------
предпоследняя строка проверки зависимости и не дает нам покоя. С помощью штатных инструментов системы убедимся, что все в порядке:
rpm -qa |grep glib glibc-common-2.5-81.el5_8.7 glib2-devel-2.12.3-4.el5_3.1 glibc-2.5-81.el5_8.7 avahi-glib-0.6.16-10.el5_6 glibc-headers-2.5-81.el5_8.7 dbus-glib-0.73-10.el5_5 glibc-devel-2.5-81.el5_8.7 glib2-2.12.3-4.el5_3.1 NetworkManager-glib-0.7.0-13.el5
Наш пакет glib2-2.12.3-4.el5_3.1 установлен в системе!
Подготовка директории для баз данных
Директория по умолчанию для веб-сервера /var/www/html, создадим в ней папку base:
mkdir /var/www/html/base
соответственно в браузере мы будем набирать следующий адрес для доступа к приложению: http://nash_ip_adres/base
В директории /var/www/html/base будет располагаться сгенерированный системой файл default.vrd, в котором будет описана строка подключения к директории с базой 1С@Предприятия.
Создание директории для базы данных 1С@Предприятия
Внимание: первоначально данное решение было опробовано для использования в режиме многопользовательского доступа к базе многих внешних пользователей в режиме терминального доступа RX@Etersoft, запуская 1С@Предприятие под Wine@Etersoft.
cd / mkdir /pub
Access Control Lists, ACL
У каждого объекта: файла или каталога, только один владелец, и это хорошо, пока в системе всего один пользователь (кстати, root мы пользователем не считаем – он обычно не работает с системой, а только администрирует ее). А стоит появиться нескольким пользователям, которым нужно изменять файлы друг друга, все усложняется.
Нужен более тонкий контроль над тем, кто, что и где может делать. При нескольких условиях такое позволяют списки управления доступом (Access Control Lists, ACL), расширение большинства файловых систем (ФС) Linux. Для начала нужно ядро со встроенной поддержкой ACL – в любом ядре из дистрибутива она будет. Далее, ACL надо активировать при монтировании файловой системы. Чтобы ACL активировались при загрузке системы, откройте /etc/fstab и добавьте acl к списку опций монтирования файловой системы:
vi /etc/fstab
было
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0
стало
/dev/VolGroup00/LogVol00 / ext3 defaults,acl 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0
К каталогу /pub у нас будет обращаться веб сервер под пользователем apache и пользователь alexandr (также, на всякий случай, пользователя usr1cv82 добавим тоже), под которым мы положим туда свою базу данных. Назначим каталогу /pub доступ для этих пользователей:
setfacl -m u:apache:rwx -R /pub setfacl -m d:u:apache:rwx -R /pub setfacl -m u:alexandr:rwx -R /pub setfacl -m d:u:alexandr:rwx -R /pub setfacl -m u:usr1cv82:rwx -R /pub setfacl -m d:u:usr1cv82:rwx -R /pub
Дополнительно создадим ссылку в домашней папке пользователя alexandr для удобства:
ln -s /pub /home/alexandr/pub
Размещение базы данных
Настала пора поместить в директорию /pub нашу базу данных, которая в файловом варианте представляет собой тоже папку, содержащую бинарный файл 1Cv8.1CD, являющийся базой и несколько директорий со служебными файлами. Например, по мотивам "Видеоурок: Как разработать простое прикладное решение", мной (только приступившего к изучению платформы 1С@Предприятие) было создано прикладное решение "Ремонт насосов". Папка с базой данных имеет название kurs. копируем базу (в папке под названием kurs) в директорию /pub.
Настройка веб сервера для публикации базы 1С
Запустим конфигурационную утилиту, которая внесет изменения в файл /etc/conf/httpd.conf и создаст настроечный файл default.vrd. В последующих ваших экспериментах лучше править вручную эти файлы, так как при использовании повторно данной утилитой в файле /etc/conf/httpd.conf приходилось комментировать лишнюю строку #for requests without a known для удачного запуска веб сервера.
cd /opt/1C/v8.2/i386/
./webinst -apache22 -wsdir base -dir '/var/www/html/base/' -connStr 'File="pub/kurs"' -confPath /etc/httpd/conf/httpd.conf Публикация выполнена
- -wsdir – имя алиаса веб-сервера для соединения с базой, в последствии мы будем обращаться к ней набирая в браузере http://адрес.сервера/base
- -dir – директория где будут располагаться файлы web-интерфейса 1с (точнее один файл default.vrd);
- -connStr – строка соединения с базой 1с предприятия;
- -confPath – расположение конфигурационного файла web-сервера apache.
Задаем владельца для файла default.vrd:
chown apache:apache /var/www/html/base/default.vrd
Перезагрузим сервера 1с и апач:
/etc/init.d/httpd restart
/etc/init.d/srv1cv82 restart
Убедимся, что все сервисы (daemon, rmngr, rphost) удачно стартовали:
Пробный запуск
Откроем браузер и введем адрес (в нашем случае IP 192.168.1.4) http://192.168.1.4/base
|
|
Ключ защиты HASP
На страничке http://download.etersoft.ru/pub/Etersoft/HASP/last/CentOS/5/ найдем наш установочный пакет и инсталлируем его в систему:
rpm -Uvh http://download.etersoft.ru/pub/Etersoft/HASP/last/CentOS/5/haspd-3.3-eter4centos.i586.rpm
Проверим работу демона haspd:
/etc/init.d/haspd status Hardware protection keys support bundle. Etersoft (c) 2008-2012 HASPD package 3.3 with /dev/bus/usb support Aladdin HASP 4/HL/SRM driver status: kernel module aksparlnx is not loaded (WARNING: HASP LPT keys support is disabled! Run service haspd build if needed.) aksusbd is running winehasp is running hasplm is running hasplmd is running Daemon version: 1.14 (#7779) - key API (USB) version: 3.88 (parallel driver not available) Smartkey 3 USB/LPT driver status: skeyd is stopped SafeNet Sentinel status: usbsentinel is stopped SntlKeysSrvrlnx is stopped
Демон haspd имеет встроенный веб сервер доступный по адресу: http://localhost:1947
БАЗЫ ДАННЫХ 1С ПРЕДПРИЯТИЯ НА WEB СЕРВЕРЕ APACHE
|
|
|
|