понеділок, 8 березня 2010 р.

Установка та запуск 1С:Предприятие + PostgreSQL на Linux (Centos 5.4)

Трохи розібрався. Починаємо спочатку.
 

Тут ми припускаємо,що нам вдалося поставити і настроїти Centos, ми маємо з'єднання з Інтернетом і вміємо запустити термінал. Безумовно, в першу чергу вирубаємо firewall та SELinux - безпека нас ... зараз не цікавить. Також можна організувати доступ до терміналу з Віндів, застосовуючи, наприклад, putty, і навіть достукатися до робочого столу gnome, настроївши vncserver.

Джерела і альтернативи
Цей матеріал зроблено на основі
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup/
http://wiki.etersoft.ru/PostgreSQL

Основні відмінності матеріалів: розгортання Postgres під український порядок сортування баз даних, застосування postgres@etersoft

Формуємо оточення
Почнемо з найнеобхідніших речей. Нам треба буде бігати по каталогах, і якщо у нас немає бажання постійно писати щось типу cd /home/user1/disrib/1c/postgre щоразу треба чи не треба, користуємося файловим менеджером Midnight Commander (mc).

Для того, щоби його встановити , використовуємо інсталятор yum. Це така хороша штука, котра сама знайде і завантажить те, що нам потрібно


# yum install mc
# mc
Тепер можемо бігати по файлах. Початківцю також варто враховувати, що Linux є чутливим до регістру, тому, коли сказано писати в команді -D, то мається на увазі саме -D, а не -d. Так само чутливі назви директорій та файлів.
Модифікований слоник
1С для роботи використовує модифіковану СУБД PostgreSQL. Отримати цю штуку можна таким чином
  • з сайту 1С, знадобиться пароль юзера 1С. Напевне, якщо будете ставити останню версію, то не матимете проблем. Тим не менше, в мене туди доступу немає, а знайдена версія postgresql-8.3.3-2.1C.i386 в результаті не могла створити базу, причому я вичитав що це нормально мовляв, кривий реліз потіпо...
  • зібрати руками з вихідного коду, наклавши патчі для 1С, котрі лежать на тому ж таки сайті 1С, але уже без паролю. Якщо для вас не становить проблемою всякі там make, patch і таке інше, можете пробувати
  • скачати готовий варіант з сайту etersoft.ru. Там окопалися спеціалісти з генної модифікації слонів, і під ці потреби їхній слон годится також. Postgresql беремо звідси. Цей варіант і розглянемо
Встановлення PostgreSQL

Перед встановленням
міняємо настройки у файлі в /etc/sysctl.conf:

kernel.shmall=134217728
kernel.shmmax=134217728
та активуємо їх командою sysctl -p
За допомогою mc переміщаємося в папку, де збережено postgres@etersoft rpm файли. Їх там три штука. Виконуємо установку командою

# rpm -ihv postgre*
Поставився сам postgresql. Його папка - /var/lib/pgsql Створився юзер postgres. Саме від імені цього юзера в подальшому буде запускатися процес сервера. І саме від цього юзера необхідно виконувати всі дії із самим сервером. Тому, для початку, встановимо власником папки /var/lib/pgsql користувача postgres

# chown -R postgres /var/lib/pgsql
Увага! не слід дотримуватися рекомендацій etersoft і виконувати запуск бази даних командою /etc/init.d/postgresql start база даних буде ініційована з установками для російської мови
Ініціалізуємо базу даних від імені користувача postgres з установками сортування бази даних для української мови, запускаємо сервер, ставимо його в автозагрузку, та міняємо пароль користувача postgres.
Увага! Міняємо пароль обов'язково, не сподівайтеся що ніхто нічого не помітить!

# su - postgres -c "initdb --locale=uk_UA.utf8 /var/lib/pgsql/data/"
# /sbin/service postgresql start
# chkconfig postgresql on
# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'new_pass'"
На цьому етапі настройка сервера баз даних postgresql закінчена. Можемо перевірити функціональність, створивши базу даних з використанням інструменту управління серверами 1С:Предприятие, запущеного на Windows, але з використанням серверу postgres на Linux.

Встановлення серверу 1C:Enterprise

За допомогою mc переміщаємося в папку, де збережено 1С rpm файли.Я застосовую версію 8.1.15-14 серверу 1С. Проводимо установку командою

# rpm -ihv 1С*

Створено користувача usr1cv81, від його імені буде запускатися сервер 1С. Під цим же іменем до сервера будуть під'єднуватися користувачі. Відповідно, необхідно надати цьому користувачу права власника на директорію сервера 1С. Потім слід поставити сервер 1с в автозавантаження та запустити його


# chown -R usr1cv81 /opt/1C/
# chkconfig srv1cv81 on
# /sbin/service srv1cv81 start

Увага! В одному з мануалів дається порада після установки сервера 1С здійснити такі команди:

/etc/rc.d/init.d/srv1cv81 stop
/opt/1C/v8.1/x86_64/ragent -daemon
/etc/rc.d/init.d/srv1cv81 restart

Не зрозуміло, для чого це потрібно, і в мене після виконання другої команди сервер не стартився. Можливо, я не розумію змісту команди **** -daemon, а можливо, слід таки утриматися від виконання цих команд.

Робота з оснащенням 1С для керування сервером. Проблема hosts

В даний момент ми отримали робочу систему 1С+PostgreSQL. Ніби можна радісно запускати 1С і створювати там бази даних. На ділі висипається широка категорія різноманітних глюків. Всі вони пов'язані із тим, що клієнтська 1С не може працювати із цим сервером тільки за ІР, вона працює тільки за іменем сервера. Тобто, ми не можемо створити кластер серверів, вказавши тільки ІР, наприклад, 192.168.1.150 (це ІР сервера де встановлено 1С+PostgreSQL). Система працює тільки за іменем. Один з мануалів рекомендує активувати службу Samba і створити спільний ресурс. У мене це не спрацювало.
Як альтернативу, можна спробувати прописати сервер напряму. Для цього на машині-клієнті під Windows слід пов'язати ім'я серверу. За замовчуванням, після установки Centos надає серверу ім'я localhost.localdomain. Редагуємо файл %SYSTEMROOT%\system32\drivers\etc\hosts, вносимо туди строку: 192.168.1.150 localhost.localdomain Зрозуміло, що під %SYSTEMROOT% мається на увазі місце встановлення Windows, котре в 99% випадків являється "c:\windows". Після цього можна приступати до роботи із сервером, створення баз даних.

!Увага Саме на цьому етапі на голову може впасти багато шишок. Те, що мій сервер називається localhost.localdomain та його ІР 192.168.1.150 справедливо тільки для мене, у Вас можуть бути інші імена та адреси. Пригадую, що довго довбався, написавши в hosts 192.168.1.150 freedom, як радили в одному з каментів. Нічого мені той freedom не допоміг.

!Увага Цей метод годится тільки для "попробувати". У промисловій експлуатації буде не до того, щоби прописувати hosts на кожній клієнтській машині. В мене вирішення поки немає, шукайте виходи, і якщо знайдете, відкоментіть мені.

!Примітка Створюючи базу даних, як ім'я серверу баз даних можемо застосовувати localhost, тому що в даному випадку це інструкція для серверу 1С де шукати сервер баз даних. користувач серверу баз даних - postgres, пароль той, який ми встановили при зміні паролю.

На майбутнє

Не потрібно забувати про наступне
  • наш сервер незахищений, брендмауер та SElinux відключений. Якщо їх включити, то відповідно, слід дозволити роботу певних портів. Я догадуюсь, яких саме, але зараз мені влом все це перевіряти. Перевірю - напишу;
  • ми не будемо прописувати hosts на кожній клієнтській машині. Треба шукати вирішення;
  • є ціла проблема із тим щоби настроїти postgres на максимальну для Вашого заліза продуктивність. Це все питання окремого дослідження;
  • процес установки можна полегшити, якщо написати скріпт, котрий сам виконає всі оті команди. На практиці, він повинен запитати місцезнаходження дистрибутивів, і виконати процес установки самостійно. Мені кажуть про Perl. Маючи час і бажання...

Успіхів!

Немає коментарів:

Дописати коментар

Прихильники