MyTetra Share
Делитесь знаниями!
Установка и настройка 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


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования