Краткое описание

Данная статья опишет процесс установки и первичной настройки 1С 8.1.

Данное руководство пригодно для небольших организаций с базами до 5-10 Гб, т.к. производительность работы будет на порядок ниже, чем при работе под ОС Microsoft Windows

Руководство

Предисловие

  • Я надеюсь, что вы уже скачали два файла: setuplin.rar и setuppln824.rar.
  • Перед началом установки убедитесь, что у вас не установлены пакеты libpq5 и libpq-dev (это оригинальные пакеты из репозитория). Если они установлены - очень много пакетов зависит от них, например apache2! Поэтому лучше устанавливать базу 1с на отдельный новый сервер. Ну или попробуйте их удалить, если вас устроит то, что будет удалено по зависимостям, то можно продолжать.
Удаление пакетов libpq5 и libpq-dev необходимо для того, чтобы не произошел конфликт между библиотеками из Ubuntu и входящими в состав PostgreSQL.

Необходимые и полезные файлы

Процесс установки

  • Поместить два архива (setuplin.rar, setuppln824.rar) в одну папку со скриптами convert_*.sh (пользователь от которого запускают скрипт должен иметь право на запись в директорию).
  • Итак, допустим мы в /tmp/1c
cd /tmp/1c
  • Скачаем и распакуем архив со скриптами:
wget "ftp://linvinus.ru/1c/converter.tar.gz"
tar zxvf converter.tar.gz
  • Вот что должно быть по команде ls -l
-rwxr--r-- 1 denis denis 10878 2008-05-25 11:52 convert_1c.sh*
-rw-r--r-- 1 denis denis  7881 2008-05-25 12:05 converter.tar.gz
-rwxr--r-- 1 denis denis 17002 2008-05-25 11:59 convert_postgres.sh*
-rw-r--r-- 1 denis denis 50969899 2007-12-25 11:52 setuplin.rar
-rw-r--r-- 1 denis denis 32828832 2007-07-12 11:44 setuppln824.rar
  • Если со временем названия архивов изменятся, то их нужно будет поправить в начале файла convert.sh

в переменной SETUP_FILES в переменной ONEC_BASES_DIR скрипта convert_postgres.sh прописана директория где будут базы 1с. (по умолчанию в /srv/pgsql) будьте внимательны, в указанной директории у вас должно быть достаточно места, в идеале база должна находиться на отдельном разделе.

  • Теперь запускаем скрипты конвертации из rpm в deb:
./convert_1c.sh

а затем:

./convert_postgres.sh

На все вопросы если вы с ними согласны отвечаем 'y'. Сообщения

Warning: Skipping conversion of scripts in package postgresql-server: postinst postrm preinst prerm
Warning: Use the --scripts parameter to include the scripts.

просто игнорируем. На остальные обращаем внимание, т.к. в этой статье предусмотрены не все ошибки

  • Конвертация из rpm в deb идёт без скриптов, т.к. скрипты установки rpm пакета в debian/ubuntu работают некорректно.

Но я создаю свои собственные которые выполняют те же действия:

  • Создаются пользователь и группа для запуска 1с сервера
groupadd grp1cv81
useradd -g grp1cv81  usr1cv81
  • Cоздаётся страртовый скрипт для запуска 1с. Я взял за основу скрипт из rpm и адаптировал его для запуска в Ubuntu.
  • Cоздаются пользователь и группа для postgres
groupadd -g 26 -o -r postgres
groupadd -g 26 -o -r postgres -u 26 postgres
  • создаётся страртовый скрипт для запуска postgres

Всё это в скриптах установки deb пакетов, так же как если бы это были оригинальные пакеты для debian|ubuntu. Также в пакете postgres-server создаются пара симлинков иначе будут ошибки:

postgres@temp1C:/tmp/1c$ initdb -D /bases/pgsql/data
initdb: error while loading shared libraries: libreadline.so.4: cannot open shared object file: No such file or directory
postgres@temp1C:/tmp/1c$ initdb -D /bases/pgsql/data
initdb: error while loading shared libraries: libtermcap.so.2: cannot open shared object file: No such file or directory
  • Для корректной работы postgres требуется увеличить параметр ядра shmmax. Для этого нужно выполнить команду:
sudo echo 256000000 >/proc/sys/kernel/shmmax
  • Для того, чтобы этот параметр был настроен после перезагрузки, нужно его прописать в конце файла /etc/sysctl.conf командой:
echo "kernel.shmmax=256000000" >>/etc/sysctl.conf
  • Затем нужно проинициализировать базу:
sudo -H -u postgres  /usr/bin/initdb -D /srv/pgsql/data

После этого в каталоге /srv/pgsql/data появятся файлы и директории.

  • Находим и изменяем значения следующий переменных в файле
sudo gedit /srv/pgsql/data/postgresql.conf
default_with_oids = on
stats_row_level = off
effective_cache_size = 512MB

,где 512Мб = половине оперативной памяти на сервере. (у меня было 1Gb)

  • В файл
sudo gedit /srv/pgsql/data/pg_hba.conf

добавляем адреса с которых можно подключаться к базе

local   all     postgres        trust
host    all         postgres         127.0.0.1/32          trust
host    all         postgres         192.168.1.0/24        trust
  • Теперь можно запустить базу командой
sudo /etc/init.d/postgresql start

Должно запуститься без ошибок.

  • И запустить сервер 1c командой:
sudo /etc/init.d/srv1cv81 start

Дополнительные моменты

После всего вышесказанного можно подключаться клиентом и создавать базу на сервере. Для того чтобы сбросить пароль на пользователя postgresql в базе данных, нужно выполнить следующие условия:

  • в файле pg_hba.conf должна быть строка:
host    all         all         127.0.0.1/32          trust
  • в файле pg_hba.conf должна быть закоментированна строка:
#host    all         all         0.0.0.0/0             md5

Затем нужно выполнить:

sudo psql -h localhost postgres postgres
alter user postgres with password 'postgres';
\q  для выхода


Ещё один момент: убедитесь что в файле /var/lib/locales/supported.d/local есть локаль en_US ISO-8859-1 Если нет, то добавьте и выполните команду:

sudo dpkg-reconfigure locales

Статьи

Источники

Обсуждение