В Google можно найти кучу статей на вышеуказанную тему. Но в комментариях к этим статьям пишут что у многих установленная по инструкции связка не работает. Решил попробовать сам, устанавливал 1C 8.2 сервер + Postgres@Etersoft 8.4.4 на базе Ubuntu Server 10.04.3 i386. Во избежание проблем, новичкам советую при установке сервера, выбирать русскую локаль по-умолчанию. У меня все завелось...
Для тех кто плохо разбирается в линуксе, настоятельно рекомендую устанавливать все по инструкции. И очень-очень внимательно... Если что-то не получается максимально подробно описывайте вашу проблему. В ином случае вы не дождетесь нормального ответа.
1. Итак у вас имеется установленный Ubuntu Server 10.04.3 (При установке не выбирайте установку стандартного постгреса). Сразу же поставьте последние обновления:
sudo apt-get update
sudo apt-get dist-upgrade
2. Дистрибутивы можно скачать из интернета сразу на сервер или скопировать заранее скачанные дистрибутивы через самбу. Я предполагаю, что самба может быть настроена не у всех, потому воспользуемся флешкой. Берем флешку, закидываем в нее заранее скачанные дистрибутивы в отдельные папки:
1с
postgres
hasp
Перед этим заранее распаковав дистрибутивы из архивов.
3. Создаем директорию, к которой будем монтировать флешку:
sudo mkdir /opt/1cinstall
4. Подключаем флешку к серверу, просматриваем как она подключилась:
sudo fdisk -l
У меня это sdb1, теперь монтируем флешку сразу в папку 1с:
mount /dev/sdb1 /opt/1cinstall
5. Проверяем что намонтировали:
ls /opt/1cinstall
Т.к. на моей флешке ничего не было кроме папок с дистрибутивами, отобразились только они:
1с
postgres
hasp
2. Установка PostgreSQL@Etersoft 8.4.4.
1. Во время установки постгреса нам потребуются права рута, потому переходим в режим рута:
sudo -i
2. На данный момент последняя стабильная версия от Etersoft это 8.4.4, ее то мы и будем устанавливать. Переходим в папку postgres:
cd /opt/1cinstall/postgres
Проверяем что есть в папке:
ls
Должно быть четыре пакета:
libpq5.2-8.4eter_8.4.4-eter2ubuntu_i386.deb
postgresql-8.4eter-contrib_8.4.4-eter2ubuntu_i386.deb
postgresql-8.4eter-server_8.4.4-eter2ubuntu_i386.deb
postgresql-8.4eter_8.4.4-eter2ubuntu_i386.deb
3. Меняем параметр ядра linux SHMMAX на 128Мб, насколько я знаю делать это надо на 32-битной машине:
echo "kernel.shmmax = 134217728" >> /etc/sysctl.conf
echo "kernel.shmall = 134217728" >> /etc/sysctl.conf
Применяем изменения:
sysctl -p
4. Меняем id у группы tape (Группа tape занимает необходимый нам id - 26, при установке постгреса, этот номер id нам потребуется для вновь создаваемой группы postgres), на любой свободный который у вас имеется в наличии:
groupmod -g 1002 tape
5. Далее создаем сим-линк на библиотеку libreadline.so.6.1, которая на потребуется для нормальной работы постгреса:
cd /lib
ln -s libreadline.so.6.1 libreadline.so.5
6. Устанавливаем дополнительные библиотеки:
apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16
7. Переходим в папку с дистрибутивом постгреса:
cd /opt/1cinstall/postgres
8. Устанавливаем постгрес:
dpkg -i *.deb
9. Даем права на папку pgsql пользователю и группе postgres:
chown postgres:postgres /var/lib/pgsql
Кто не уверен, проверьте сменился ли владелец папки:
ls -l /var/lib
В выведенном на экран списке найдите папку pgsql, ее свойства должны быть примерно такими (на дату создания папки не обращайте внимания ):
drwxr-xr-x 4 postgres postgres 4096 2011.02.18 10:09
10. Запускаем постгрес:
service postgresql start
Если постгрес уставлен правильно, то вы увидите сообщение:
Initializing database: DONE
Starting postgresql service: DONE
11. Задаем пароль пользователю postgres:
passwd postgres
12. Задаем пароль внутреннему пользователю постгрес, предварительно авторизировавшись под postgres:
su -l postgres
psql
alter user postgres with password 'YOUR_PASSWORD';
\q
exit
Где YOUR_PASSWORD - пароль который вы хотите задать для внутреннего пользователя постгрес.
13. Также нам необходимо настроить pg_hba.conf. Но перед этим сделаем бэкап этого файла:
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.default
Открываем pg_hba.conf:
nano /var/lib/pgsql/data/pg_hba.conf
Находим следующие строки:
#IPv4 local connections:
#host all all 127.0.0.1/32 ident
Раскомментируем вторую строку и приведем к следующему виду:
#IPv4 loca connections:
host all postgres 127.0.0.1/32 md5
Этой правкой мы дали разрешение пользователю postgres коннектиться с любой базой с локального хоста, при этом требуется пароль.
14. Теперь рассмотрим значения параметров в файле postgresql.conf, файл расположен в той же папке, что и pg_hba.conf. Параметры зависят от многих факторов, настраиваются индивидуально и служат для обеспечения максимальной производительности. Хотя и по умолчанию база будет работать (не забывайте перед правкой делать бэкап):
-
listen_addresses = ‘127.0.0.1′ - если соединения с базой будут только с локального хоста, то надежнее сделать именно так, чтобы порт 5432 слушался только на адресе 127.0.0.1.
-
fsync = off - значение on сильно снижает производительность, поскольку все транзакции непосредственно пишутся на жесткий диск без использования кэширования, но повышается надежность. Значение off есть смысл устанавливать, когда установлены надежные диски и надежный же UPS.
-
effective_cache_size = 2048MB на моем компьютере 4Гб ОЗУ, поэтому я предположил, что этот параметр надо выставить в половину ОЗУ, как рекомендует 1С для постгреса 8.2
-
work_mem = 16MB насколько я понимаю, этот параметр зависит от среднего размера таблиц, в любом случае, для тонкой настройки надо тестировать на конкретном сервере с конкретной базой.
Более подробно о настройках pg_hba.conf и postgresql.conf можно почитать здесь и здесь.
15. Перезагружаем постгрес:
service postgresql restart
Вы должны получить примерно следующее сообщение:
Stopping postgresql service: DONE
Starting postgresql service: DONE
Если вы увидели вышеуказанное сообщение, значит мы правильно установили и настроили постгрес.
3. Установка сервера 1С:Предприятие 8.2.14.533
1. Теперь нам предстоит установка 1С сервера. Переходим в из папки postgres в папку 1c:
cd /opt/1cinstall/1c
2. Устанавливаем пакеты:
dpkg -i 1c*.deb
3. Устанавливаем дополнительные пакеты, которые необходимы для нормальной работы сервера:
apt-get install imagemagick ttf-mscorefonts-installer libgsf-1-114 texlive-base unixodbc
4. Далее нам необходимо проверить, все ли пакеты необходимые для корректной работы сервера 1С установлены. Сделать это можно с помощью утилиты config_server, которая входит в комплект дистрибутива сервера 1С. Переходим в каталог утилиты и запускаем config_server:
cd /opt/1C/v8.2/i386/utils
./config_server
Утилита минут на пять задумалась... Это значит, что сервер 1С настроен правильно и больше ничего не нужно для нормального функционирования.
5. Теперь добавим локаль. Переходим в папку locale:
cd /usr/lib/locale
ln -s en_US.utf8 en_US
cd /usr/share/locale
ln -s en en_US
6. Даем пользователям 1С сервера права на запись:
chown -R usr1cv82:grp1cv82 /opt/1C
7. Добавляем сервер 1С в автозапуск:
update-rc.d srv1cv82 defaults
Вы должны получить следующий выхлоп:
Adding system startup for /etc/init.d/srv1cv82 ...
/etc/rc0.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc1.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc6.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc2.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc3.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc4.d/K20srv1cv82 -> ../init.d/srv1cv82
/etc/rc5.d/K20srv1cv82 -> ../init.d/srv1cv82
Это означает что вы добавили 1С сервер в автозагрузку. Если вы не получили этого сообщения, значит что то сделали неправильно. Точно следуйте инструкции и все получится.
8. Перезагружаем сервер. reboot Проверяем запускаются ли при старте системы постгрес и сервер 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
9. Так же можно для профилактики проверить, все ли процессы сервера запущены нормально:
ps aux|grep 1c
От имени пользователя usr1cv82 должно быть запущено три процесса: ragent, rmngr и rphost. После имен процессов идут номера портов, на которых они работают:
usr1cv82 762 0.0 2.3 104408 12080 ? Ssl 14:41 0:01 /opt/1C/v8.2/i386/ragent -daemon
usr1cv82 765 0.0 3.5 147068 18068 ? Sl 14:41 0:04 /opt/1C/v8.2/i386/rmngr -port 1541
usr1cv82 785 0.0 13.9 312112 70828 ? Sl 14:41 0:03 /opt/1C/v8.2/i386/rphost -range 1560:1591 -reghost 1cserver -regport 1541 -pid 0277dd48-5d08-11e0-bb9c-0800273075f1
10. Также нам необходим веб-сервер apache, без него нельзя реализовать новые возможности 1С:Предприятия 8.2. У меня apache был установлен вместе с пакетом LAMP, еще на этапе установки ОС. Если же у вас его нет, установим его:
apt-get install apache2
Если вы не планируете использовать apache для других целей, то он готов к работе с 1С сервером. Все сервер 1С:Предприятие готов к работе.
4. Установка драйвера HASP с менеджером лицензий
sudo -i
2. Монтируем флешку, как это было указано в главе "Подготовка сервера". Переходим в папку с дистрибутивами HASP-драйверов:
cd /opt/1cinstall/hasp
3. Устанавливаем скачанные пакеты:
dpkg -i *.deb
4. Выключаем сервер:
shutdown -h now
5. Ставим ключ, включаем сервер. Загружаются только те драйверы, ключ для которых вставлены в сервер. Проверить работает ли HASP-ключ можно командой:
sudo service haspd status
Установка на x64 машине
Поскольку некоторые программы в пакете haspd являются 32-битными, в системедолжна быть установлена поддержка 32-битных программ. В Ubuntu это пакет ia32-libs.
5. Создание базы, на рабочей станции.
1. Для начала укажем параметры сервера в hosts:
192.168.11.4 1cserver
Где 192.168.11.4 - ip адрес машины на которой установлен 1С сервер, а 1cserver - имя машины на которой установлен 1С сервер. Файл hosts находится в директории:
%SystemRoot%\system32\drivers\etc
2. Через оснастку Администрирование серверов 1С Предприятия, оснастка находится в:
Меню Пуск » Программы » 1С Предприятие 8.2 » Дополнительно
Создадим центральный сервер:
Указываем параметры вновь создаваемого сервера 1С:
Где 1cserver - имя машины на которой установлен 1С сервер
Далее создадим базу на 1С сервере, через добавление новой базы данных в клиенте 1С:
Указываем псевдоним БД, т.е. имя которое будет отображаться в списке доступных БД:
Указываем параметры вновь создаваемой БД, сервер на котором БД будет создана, пользователя через которого будем коннектиться и др.:
Где 1cserver - netbios имя нашего сервера, base - имя создаваемой базы, postgres - пользователь постгреса.
Основные настройки закончены, остальное не так важно и настраивается индивидуально:
Основные моменты: толстый клиент - все обработки и вычисления производятся на стороне клиента, тонкий клиент - вычисления производятся на стороне сервера.
Теперь попробуйте запустить конфигуратор и загрузить туда какие-нибудь данные. У меня процесс прошел на ура:
6. Настройка веб-сервера Apache для доступа к БД 1С:Предприятие.
1. Итак веб-сервер apache установлен, в наличии имеем корневой каталог:
/var/www
Где находится единственный файл:
index.html
Для начала создадим в корневом каталоге apache, папку base:
mkdir /var/www/base
Где base - имя базы данных к которой необходимо настроить доступ посредством веб-сервера apache.
2. Добавляем в httpd.conf необходимые данные о базе данных, с помощью скрипта webinst, входящего в состав пакета 1С сервера. Для этого переходим в каталог:
cd /opt/1C/v8.2/i386
Запускаем скрипт с необходимыми параметрами:
./webinst -apache22 -wsdir base -dir '/var/www/base' -connStr 'Srvr="1cserver";Ref="base";' -confPath /etc/apache2/httpd.conf
Где base - имя БД к которой настраиваем доступ, 1cserver - имя сервера на котором установлен 1С сервер.
При успешном выполнении скрипта вы должны получить выхлоп:
Установка успешно выполнена.
acp: /etc/apache2/httpd.conf
rd: /var/www/base
vd: /etc/apache2/httpd.conf
Также можно проверить правильность настроек, просмотрев что прописалось в файл httpd:
LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"
# 1c publication
Alias "base" "/var/www/base/"
AllowOverride None
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/base/default.vrd"
В каталоге базы вы должны найти файл default.vrd, следующего содержания:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/base"
ib="Srvr="1cserver";Ref="base";"/>
Где 1cserver - имя сервера на котором находится 1С сервер, base - имя БД к которой настраиваем доступ, а " - кавычки написанные кодом.
3. Теперь даем права на директорию:
chown -R www-data:www-data /var/www/base
4. Перезагружаем apache:
service apache2 restart
5. В браузере на клиентской машине отключаем блокировку всплывающих окон. Пробуем пройти по адресу:
http://1cserver/base
Где base - имя БД к которой мы настроили доступ, а 1cserver - имя сервера на котором настроен веб-сервер Apache. Видим следующее:
6. Чтобы решить эту проблему нам необходимо с помощью оснастки "Администрирование серверов 1С Предприятия" в свойствах БД, дать разрешение серверу 1С выдавать лицензии:
Если вы сделали все правильно, то откроется база к которой мы настраивали доступ:
По факту работа через браузер, это работа с помощью тонкого клиента, а для этого конфигурация должна поддерживать работу в режиме управляемого приложения. Иначе никак...
7. В статье использовались материалы с:
Автор: baklan | Pg1C | 02.05.2010, 20:42
1С:Предприятие 8.2 и СУБД PostgreSQL 8.3.7 на Ubuntu Server 9.04
Автор: Ruslan Khissamov | 1C-PRO | 29.10.2009, 17:51
Оптимизация работы Postgre SQL
Автор: Andrey Igorevich | Wiki Etersoft | 2010.08.04, 19:52
Настройки Postgresql для 1с
Автор: SeaSun | 1CLinux | 2010.10.13, 02:23:22