Установка сервера 1С 8.2 на Linux

Авторhtadmin

Установка сервера 1С 8.2 на Linux

1C_fВ очередной раз приходиться устанавливать Сервер 1C:Предприятие 8.2 на компьютер с установленой Ubuntu 12.04. Решил все это описать. Авось кому-нибудь да пригодиться.

Железо SuperMicro Server X8DTL-6. Клиент дал чистый сервер. Ну чтож мы 1с-ки решали и не такие задачи. Загружаю сервер. Он не видит жествких дисков. Захожу в биос дисков нет. Проверяю физически — стоят. Делаю сомотестирование железа. Диски есть. Наконец то до меня доходить что из физических дисков нужно создать raid масив? чтобы он определился как один логический диск.

Открываю google? начинаю позновать информацию про raid массивы. Выбор останавливаеться на raid5. Нахожу как запустить уилиту разметки диска. Создаю.

Дальше скачиваю Ubuntu Server 12.04. Утстанавливаю. Установка проходит в штатном режиме. Диска с ИТС под рукой не оказалось. Давно хотел попробовать установить сервер по мануалу от 1с. Ну чтож не судьба, будем ставить по мануалам из интернета.

Для начала настроим сеть
user@Server1C:sudo gedit /etc/network/interfaces
auto lo 
iface lo inet loopback 
auto eth0
iface eth0 inet static
address 192.168.10.9
netmask 255.255.255.0
gateway 192.168.10.7

Дальше нужно настроить DNS. DNS в линуксе настраиваеться в файле /etc/resolv.conf. У меня такого файла не оказалось. Поэтому я его создал.

user@Server1C: sudo su
root@Server1C: cat >> /etc/resolv.conf
nameserver 192.168.0.1
root@Server1C: exit
user@Server1C: sudo service networking restart

Дальше обновим информацию о пакетах и обновим систему
user@Server1C: sudo aptitude update 
user@Server1C: sudo aptitude safe-upgrade
Для удобства работы устанавливаю midnight comander
user@Server1C: apt-get install mc
user@Server1C: mc

И что я вижу? Вместо слов на русском квадратики. Хм..
user@Server1C: sudo dpkg-reconfigure console-setup

Заново настраиваем. Теперь все нормально.

 

Для начала нам нужно скачать Сервер 1С:Предприятие для платформы Debian с оффициального сайта 1С (users.v8.1c.ru), там же скачиваем deb пакеты PostgreSQL . Распаковываем накаченое в какую-нибудь дирректорию и переходим в нее.

И того у нас получился такой вот список пакетов:

 

1c-enterprise82-common_8.2.19-76_amd64.deb
1c-enterprise82-common-nls_8.2.19-76_amd64.deb
1c-enterprise82-server_8.2.19-76_amd64.deb
1c-enterprise82-server-nls_8.2.19-76_amd64.deb
1c-enterprise82-ws_8.2.19-76_amd64.deb
1c-enterprise82-ws-nls_8.2.19-76_amd64.deb
libecpg6_9.1.2-1.1C_amd64.deb
libecpg-compat3_9.1.2-1.1C_amd64.deb
libecpg-dev_9.1.2-1.1C_amd64.deb
libpgtypes3_9.1.2-1.1C_amd64.deb
libpq5_9.1.2-1.1C_amd64.deb
libpq-dev_9.1.2-1.1C_amd64.deb
postgresql-9.1_9.1.2-1.1C_amd64.deb
postgresql-9.1-dbg_9.1.2-1.1C_amd64.deb
postgresql-client-9.1_9.1.2-1.1C_amd64.deb
postgresql-contrib-9.1_9.1.2-1.1C_amd64.deb
postgresql-doc-9.1_9.1.2-1.1C_all.deb
postgresql-plperl-9.1_9.1.2-1.1C_amd64.deb
postgresql-plpython3-9.1_9.1.2-1.1C_amd64.deb
postgresql-plpython-9.1_9.1.2-1.1C_amd64.deb
postgresql-pltcl-9.1_9.1.2-1.1C_amd64.deb
postgresql-server-dev-9.1_9.1.2-1.1C_amd64.deb

user@Server1C: cd/home/user/какая_нибудь_дирректория

Найчиный горьким опытом работы с Linux системами, чтобы не тереть времени сразу открываю пакеты postgresql, смотрю зависимости идоустанавливаю то что нужно.

user@Server1C:  sudo apt-get install libpq5

user@Server1C:  sudo apt-get install libssl0.9.8

user@Server1C:  sudo apt-get install libperl5.14

И так далее, пока все зависимости не будут удовлетворены.

Пакет postgresql-plperl-9.1_9.1.2-1.1C_amd64.deb требует libperl5.10, но у нас ее в дистрибутиве нет и из репозитория libperl5.10 тоже уже не ставить. Так что при помощи скрипта спиуиального скрипта, который я опубликую в другой раз, отредактируем этот пакет и укажем, что ему нужно не libperl5.10, а libperl5.14.

Теперь настроим параметры SHMMAX SHMMIN. Для этого воспользуемся вот этим скриптом.

#!/bin/bash

# simple shmsetup script
page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall
Добавляем две строки которые вывес крипт в файл  /etc/sysctl.conf.

user@Server1C: sudo gedit  /etc/sysctl.conf

Далее обновляем данные параметры командой echo «2147483648» > /proc/sys/kernel/shmmax, и анологично для shmmall. делаем так чтобы параметры применились без перезагрузки. Но чтобы это сделать прейдеться залоггиниться как root, выполнив команду sudo su.

Пробуем установить postgressql:

user@Server1C: sudo dpkg -i postgresql-*.deb

Перезагрузим систему, на всякий случай.

PostgresSQL нам уже создал пользователя postgres, вот только кто бы знал его пароль. /Так что просто поменяем.

user@Server1C: sudo passwd postgres

Создадим пользователю каталог

user@Server1C: sudo su

root@Server1C: sudo mkdir /home/postgres

Переходим в каталог этого пользователя:

root@Server1C: cd /home/postgres

root@Server1C:/home/postgres: chown -R postgres .
root@Server1C:/home/postgres: chmod -R go=u,go=w .
root@Server1C:/home/postgres: chmod -R go= .
root@Server1C:/home/postgres: exit\

root@Server1C:/home/postgres: exit

user@Server1C: su postgres

Создаем директорию для нашей БД PostgreSQL:

postgres@Server1C: mkdir 1CBase

Инициализируем:

postgres@Server1C:/home/postgres$ /usr/lib/postgresql/9.1/bin/initdb -D 1CBase

И запускаем:

postgres@Server1C: /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgresql start

Сервер PostgreSQL запущен. При установке PostgreSQL у меня автоматом создалась папка /var/log/postgresql. Ее для лога я использую.

Теперь зададим пароль для пользователя postgres в базе данных:

postgres@Server1C: psql
\password
\q
postgres@Server1C: exit
Устанавливаем сервер 1С:Предприятия. Переходим в папку с пакетами сервера.
user@Server1C: sudo dpkg -i 1с-*.deb

Переходим к запуску 1С.

Переходим в дирректорию конфигурации 1С сервера:
user@Server1C: cd /opt/1C/v8.2/x86_64/utils

И запускаем конфигурационный файл:

user@Server1C: sudo ./config_server

Скорее всего ответ будет таким
Can not detect font directory, please specify it!
не обнаружен каталог с нужными шрифтами. Ну у нас его и нет
user@Server1C: sudo apt-get install ttf-mscorefonts-installer
Опять запустим утилиту ./config_server

No truetype conversion utility found! Please install ttf2afm or ttf2pt1!
user@Server1C: sudo apt-get install t1utils libt1-5
user@Server1C: wget http://launchpadlibrarian.net/15135677/ttf2pt1_3.4.4-1.4_amd64.deb
user@Server1C: sudo dpkg -i ttf2pt1/ttf2pt1_3.4.4-1.1_amd64.deb
И еще раз
user@Server1C:sudo ./config_server

Запуск 1С сервера:

user@Server1C:sudo /etc/init.d/srv1cv82 start

Кажется все, рестартуем нашу  убунту, чтобы убедиться, что и постгрес и 1С-сервер запускаются при старте системы.

netstat -atn|grep 0.0.0.0:15
должны увидеть что-то типа
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1561            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1562            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1563            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN
А у меня получилось вот
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1561            0.0.0.0:*               LISTEN

Часть служб не запустилась. Что делать?
От имени пользователя «usr1cv82» должно быть запущено три процесса: ragent, rmngr и rphost. После имен процессов идут номера портов, на которых они работают. Если процесса не три, а один (такое почему-то иногда бывает, но только при первоначальном запуске), то делаем:
  invoke-rc.d srv1cv82 stop Удаляем каталог «.1cv82» в домашней директории пользователя usr1cv82. И перезапускаем сервер заново. Должно стать все нормально.
Не помогло

Включим логи для сервера 1С:Предприятия. Для этого создадим каталог для хранения логов:
user@Server1C: sudo mkdir /var/log/1c
user@Server1C: sudo chown usr1cv82:grp1cv82 /var/log/1c
И создадим специальный xml-файл со следующим содержимым:
user@Server1C: sudo touch /opt/1C/v8.2/x86_64/conf/logcfg.xml
user@Server1C: chown usr1cv82:grp1cv82 /opt/1C/v8.2/x86_64/conf/logcfg.xml
user@Server1C: cat /opt/1C/v8.2/x86_64/conf/logcfg.xml
<?xml version=»1.0″ encoding=»UTF-8″?>

<config xmlns=»http://v8.1c.ru/v8/tech-log»>
<log location=»/var/log/1c/» history=»168″>
<event>
<eq property=»name» value=»EXCP»/>
</event>
<event>
<eq property=»name» value=»EXCPCNTX»/>
</event>
<event>
<eq property=»name» value=»PROC»/>
</event>
<event>
<eq property=»name» value=»ADMIN»/>
</event>
<event>
<eq property=»name» value=»SC0M»/>
</event>
<event>
<eq property=»name» value=»C0NN»/>
</event>
<event>
<eq property=»name» value=»QERR»/>
</event>
<property name=»all»/>
</log>
</config>
Выяснил причину. Сервер не мог разрешить свое имя в ip адрес. Прописал имя сервера и ip адрес нужной карты(у меня их две воткнуто в сервер) в файле /etc/hosts. Все запустилось.

Переопределяем локаль для того, чтобы избежать ошибок:

user@Server1C: sudo ln -s /usr/lib/locale/en_US.utf8 /usr/lib/locale/en_US
user@Server1C: sudo ln -s /usr/share/locale/en /usr/share/locale/en_US
user@Server1C: sudo locale-gen en_US

Дальше устанавливаем ключ защиты 1С следующим образом:

user@Server1C: sudo aptitude install ia32-libs
user@Server1C: wget http://ftp.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/12.04/haspd_3.3-eter5ubuntu_amd64.deb
user@Server1C: sudo dpkg -i hasp*.deb

Все.

Ну и на последок скрипт для автозапуска postgresql

#!/bin/sh
. /lib/lsb/init-functions
 
case $1 in
restart)
sudo -u postgres -H /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgresql/pg.log stop
sudo -u postgres -H /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgresql/pg.log start
;;
start)
    if [ -d /var/run/postgresql ]; then
        chmod 2775 /var/run/postgresql
    else
install -d -m 2775 -o postgres -g postgres /var/run/postgresql
    fi
    sudo -u postgres -H /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgresql/pg.log start
;;
stop)
sudo -u postgres -H /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgressql/pg.log stop
;;
status)
sudo -u postgres -H /usr/lib/postgresql/9.1/bin/pg_ctl -D /home/postgres/1CBase -l /var/log/postgresql/pg.log status
;;
*)
echo start|stop|restart
return 1;
;;
esac

ну и
update-rc.d postgresql defaults

Об авторе

htadmin administrator

Оставить комментарий

Войти с помощью: