|
|||||||
Установка и настройка 1С 8.2 на Debian Linux 7.4 - Настройка сети, установка 1С, установка PostgeSQL
Время создания: 23.06.2014 11:34
Автор: Сергей Степанов AKA Xintrea
Текстовые метки: 1С, предприятие, установка, настройка, Linux, Debian, PostgreSQL
Раздел: Компьютер - Windows - 1С - 1С и Linux
Запись: xintrea/mytetra_syncro/master/base/1403508881bfvprahjdv/text.html на raw.github.com
|
|||||||
|
|||||||
Здесь написана последовательность действий, которую я совершал при настройке 1С в Debian Linux 7.4. Настройка сети на две сетевые карточки Если к серверу 1С подключаются как из локальной сети предприятия, так и из интернета, то обычно на сервере 1С имеются две сетевых карточки. Предположим, что интерфейс eth0 служит для подключения пользователей 1С через интернет, а интерфейс eth1 - это соединение по локальной сети. Для этого в файле /etc/network/interfaces прописано: # The loopback network interface auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address <IP сервера, интернет> netmask <маска сервера, интернет> gateway <шлюз сервера, интернет> auto eth1 allow-hotplug eth1 iface eth1 inet static address <IP сервера, внутренняя сеть> netmask <шлюз сервера, внутренняя сеть> Внимание! Шлюз (gateway) можно задавать только для одного интерфейса. И этот интерфейс должен быть первым. Позже добавлено: В разделе auto eth1 добавлено правило маршрутизации для возможности работать из другой локальной подсети: post-up route add -net 172.16.180.0 netmask 255.255.255.0 gw 10.158.0.3 (команда для Windows была бы route -p add 172.16.180.0 mask 255.255.255.0 10.158.0.3) В файл /etc/network/run/ifstate добавлена строка: eth1=eth1 Перезапуск интерфейса осуществляется командами: ifdown eth1 ifup eth1 Установка сервера 1С Установлены пакеты сервера 1С, в следующей последовательности: 1c-enterprise82-common_8.2.19-83_i386.deb 1c-enterprise82-common-nls_8.2.19-83_i386.deb 1c-enterprise82-server_8.2.19-83_i386.deb 1c-enterprise82-server-nls_8.2.19-83_i386.deb 1c-enterprise82-ws_8.2.19-83_i386.deb 1c-enterprise82-ws-nls_8.2.19-83_i386.deb 1c-enterprise82-crs_8.2.19-83_i386.deb 1c-enterprise82-crs-nls_8.2.19-83_i386.deb Установку пакетов можно проверить с помощью команды: dpkg --list '1c-*' Если возле каждого пакета стоит ii, значит пакет установлен. Далее для проверки попытался запустить config_server: /opt/1C/v8.2/i386/utils/config_server ls: невозможно получить доступ к /lib/libc-*.so: Нет такого файла или каталога Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ... file -C [-m magicfiles] file [--help] /opt/1C/v8.2/i386/utils/config_server: line 149: [: =: ожидается использование унарного оператора /opt/1C/v8.2/i386/utils/config_server: line 193: [: слишком много аргументов /opt/1C/v8.2/i386/utils/config_server: line 193: [: слишком много аргументов /opt/1C/v8.2/i386/utils/config_server: line 193: [: слишком много аргументов /opt/1C/v8.2/i386/utils/config_server: line 193: [: слишком много аргументов /opt/1C/v8.2/i386/utils/config_server: line 193: [: слишком много аргументов Can not detect font directory, please specify it! Попробовал следующее решение. В файле /opt/1C/v8.2/i386/utils/config_server в начало функции getLibPath добавил (справедливо для 32-х битных систем): checkPath lib/i386-linux-gnu $ARCH && { echo /usr/lib/i386-linux-gnu; return; } И в функции checkInstalledLibs в начало добавлено: SYSTEM_LIB_PATH="/usr/lib" И в файл /etc/ld.so.conf.d/libc.conf добавил строку: /usr/lib И запустил ldconfig. Снова попробовал запустить проверку конфигурации сервера, вроде заработало: # /opt/1C/v8.2/i386/utils/config_server Please install following package: ImageMagick Please install following package: FreeType Please install following package: libgsf Please install following package: libglib Please install following package: UnixODBC Can not detect font directory, please specify it! Установил пакет imagemagick. После установки пакета imagemagick, данный скрипт всеравно ругается, что пакета нет. Попробовал сделать следующее: 1. В файл /etc/ld.so.conf.d/libc.conf добавил строчку: /usr/lib 2. Выполнил команду ldconfig 3. В скрипте /opt/1C/v8.2/i386/utils/config_server в функции checkInstalledLibs закомментировал: #SYSTEM_LIB_PATH="/usr/lib" После этого стал такой вывод: # /opt/1C/v8.2/i386/utils/config_server Please install following package: libgsf Please install following package: libglib Please install following package: UnixODBC Can not detect font directory, please specify it! Были доустановлены пакеты: apt-get install libgsf-1-common libgsf-bin libglib2.0-bin libglib2.0-0 unixODBC После чего не видно библиотек только у двух пакетов: # /opt/1C/v8.2/i386/utils/config_server Please install following package: libgsf Please install following package: libglib Can not detect font directory, please specify it! Проверяльщик пытается найти библиотеки в каталоге /usr/lib/i386-linux-gnu, а они лежат в каталоге /lib/i386-linux-gnu. Поэтому для решения проблемы надо создать линки: ln -s /usr/lib/libgsf-1.so.114.0.21 /usr/lib/i386-linux-gnu/libgsf-1.so ln -s /lib/i386-linux-gnu/libglib-2.0.so.0 /usr/lib/i386-linux-gnu/libglib-2.0.so Осталась проблема со шрифтами. Нужны микрософтовкие шрифты, которые микрософт рапространяет бесплатно. Добавляем пакет: apt-get install cabextract В файл /etc/apt/sources.list добавляем репозитарий contrib, в котром находится инсталлятор шрифтов deb http://mirror.yandex.ru/debian/ wheezy contrib deb-src http://mirror.yandex.ru/debian/ wheezy contrib Обновляем кеш пакетов: apt-get update Устанавливаем шрифты: apt-get install ttf-mscorefonts-installer Снова проверяем конфигурацию сервера 1С. На этот раз другая ошибка: # /opt/1C/v8.2/i386/utils/config_server No truetype conversion utility found! Please install ttf2afm or ttf2pt1! Тут проблема такая же что и CentOS 5.8 - таких пакетов в Debian 7.4 просто нет. Однако программа ttf2afm находится в пакете texlive-binaries. Устанавливаем его: apt-get install texlive-binaries После чего проверка через /opt/1C/v8.2/i386/utils/config_server будет проходить без ошибок. Установка специальной версии PostgreeSQL сервера Его пакеты можно взять на сайте Etersoft: http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/7.0/libpq5.2-9.0eter_9.0.4-eter17debian_i386.deb http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/7.0/postgre-etersoft9.0-contrib_9.0.4-eter17debian_i386.deb http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/7.0/postgre-etersoft9.0-seltaaddon_9.0.4-eter17debian_i386.deb http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/7.0/postgre-etersoft9.0-server_9.0.4-eter17debian_i386.deb http://ftp.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/7.0/postgre-etersoft9.0_9.0.4-eter17debian_i386.deb Эти файлы можно скачать с помощью wget. В процессе установки потребуется докустановить следующие пакеты: apt-get istall libicu48 libxslt1 При установке *server* пакета, будет выдана ошибка: Настраивается пакет postgre-etersoft9.0-server (9.0.4-eter17debian) … update-rc.d: using dependency based boot sequencing insserv: warning: script 'postgresql' missing LSB tags and overrides insserv: warning: script 'postgresql.outformat' missing LSB tags and overrides insserv: warning: script 'srv1cv82' missing LSB tags and overrides insserv: There is a loop between service exim4 and postgresql if stopped insserv: loop involving service postgresql at depth 2 insserv: loop involving service exim4 at depth 1 insserv: loop involving service sendsigs at depth 4 insserv: exiting now without changing boot order! update-rc.d: error: insserv rejected the script header Говорят, что это ни на что не влияет, просто нет LSB заголовков в скриптах в каталоге /etc/init.d. Добавлено позже: из-за этих ошибок невозможно прописать сервис в автозагрузку ни через update-rc.d postgresql defaults ни через chkconfig postgresql on Поэтому надо в каждый проблемный скрипт (/etc/init.d/postgresql, /etc/init.d/postgresql.outformat, /etc/init.d/srv1cv82) добавить заголовок вида: ### BEGIN INIT INFO # Provides: postgresql # Required-Start: $remote_fs $syslog $network # Required-Stop: $remote_fs $syslog $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: postgresql # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO В каждом таком заголовке надо поменять Provides и Short-Description. Настройка PostgreSQL сервера Для проверки запуска можно выключить и включить SQL-сервер (выполнять из-под рута): # service postgresql stop Stopping postgresql service: [PASSED] # service postgresql start 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 Тут показывается ошибка и сразу объясняется как ее решить. Открываем файл /etc/sysctl.conf и там прописываем: kernel.shmmax = 134217728 После чего надо перезагрузить серверное железо, так как в этом файле меняются параметры ядра. После перезагрузки при ручном старте PostgreSQL никаких ошибок выдаваться не будет. Далее надо остановить PostgreSQL. Меняем права на каталог данных нашей базы данных: chown -R postgres:postgres /var/lib/pgsql Прописывание сервисов в автозагрузку Потребуется выполнить команды: update-rc.d postgresql defaults update-rc.d postgresql.outformat defaults update-rc.d srv1cv82 defaults |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|