В очередной раз приходиться устанавливать Сервер 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 . Распаковываем накаченое в какую-нибудь дирректорию и переходим в нее.
И того у нас получился такой вот список пакетов:
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
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: 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
Переходим к запуску 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
Включим логи для сервера 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″?>
Переопределяем локаль для того, чтобы избежать ошибок:
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
esac ну и
Об авторе