Freebsd+1C_ent8.1+PGSQL

Discussion in 'Безопасность и Анонимность' started by delux, 19 Jul 2009.

?
  1. Да

    100.0%
  2. Нет

    0 vote(s)
    0.0%
  1. delux

    delux Elder - Старейшина

    Joined:
    11 Jun 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    4
    все делалось на свеже поставленной freebsd
    />uname -r
    7.2-STABLE

    ==================================================
    ИНТЕРМЕЦЦО 1 подготовка системы к эмуляции 1с платформы
    ==================================================
    ставим эмулятор Linux
    />cd /usr/ports/emulators/linux_base-fc6/ ; make install clean
    в /etc/fstab прописываем файловую систему Linux
    procfs /proc procfs rw 0 0
    linprocfs /compat/linux/proc linprocfs rw 0 0
    />echo compat.linux.osrelease=2.6.16 >> /etc/sysctl.conf
    />echo linux_enable=\"YES\" >> /etc/rc.conf
    подгружаем модуль Linux
    />kldload linux
    монтируем
    />mount /compat/linux/proc

    ==================================================
    Установка платформы 1с
    ==================================================
    Для установки нам потребуются два файла (ТРВ в помощь, вбиваем 1c 8.1.13.41 ставим галочки Программы и (поиск только в названиях) )
    1C_Enterprise-common-8.1.13-41.i386.rpm 12147kb
    1C_Enterprise-server-8.1.13-41.i386.rpm 36850kb
    копируем их в удобную для нас директорию
    и распаковываем их командой rpm2cpio | cpio -id
    />rpm2cpio 1C_Enterprise-common-8.1.13-41.i386.rpm | cpio -id
    появляется каталог opt/ переместим его в нужное место
    />mv opt/ /usr/compat/linux/
    />rpm2cpio 1C_Enterprise-server-8.1.13-41.i386.rpm | cpio -id
    появится 2 каталога etc/ и opt/ заходим в созданный каталог /opt
    />cd opt/1C/v8.1/i386/
    копируем его содержимое в рабочую директорию
    />cp * /usr/compat/linux/opt/1C/v8.1/i386/
    из каталога etc/ переносим все в нужные директории
    />cp etc/sysconfig/srv1cv81 /usr/compat/linux/etc/sysconfig/
    />cp etc/init.d/srv1cv81 /usr/compat/linux/etc/init.d/
    создаим скрипт запуска сервера 1с (thanks for fos;)
    />touch /usr/local/etc/rc.d/1csrv ; chmod 555 /usr/local/etc/rc.d/1csrv
    />cat /usr/local/etc/rc.d/1csrv
    #!/bin/sh
    echo -n ' 1csrv'
    case "$1" in
    start)
    su -l user1c -c "/compat/linux/opt/1C/v8.1/i386/ragent -daemon"
    ;;
    stop)
    killall -9 ragent; killall -9 rphost; killall -9 rmngr
    ;;
    *)
    echo "Usage: `basename $0` {start|stop}" >&2
    exit 64
    ;;
    esac
    exit 0
    создадим пользователя от имени которого будут работать наши демоны
    pw useradd user1c
    далее подправим в /etc/passwd хом. дир. для свеже созданного юзера
    на /usr/compat/linux/usr/1cv8usr

    ==================================================
    ИНТЕРМЕЦЦО 2 подготовка порта pgsql для работы с 1с
    ==================================================
    ставим необходимые порты
    />cd /usr/ports/textproc/flex/ && make install clean ; cd /usr/ports/devel/bison/ && make install clean ; cd /usr/ports/devel/readline/ && make install clean ; cd /usr/ports/devel/icu/ && make install clean
    подготавливаем work дир. и опции с которыми будем собирать, опции можно не использовать
    />cd /usr/ports/databases/postgresql83-server/ ; make patch
    нам понадобится 3 патча от 1с
    описание патчей http://v8.1c.ru/overview/postgres_patches_notes.htm
    получаем патчи и лечим их
    #когда редактирование файла происходит в windows (DOS format)
    #в конце каждой строки символ перехода на новую строку в формате LFCF, в шестнадцатеричной системе символ #выглядит как 0x0D. При добавлении патча данные символы дают сбой и патч толком не ставится.
    #лечим так:
    #данная команда удаляет ненужные символы в конце строки
    #cat patch.patch | tr -d "\r" > patch.patch
    />cd /usr/ports/databases/postgresql8.3-server/work/postgresql-8.3.7/
    />fetch http://v8.1c.ru/overview/postgresql_patches/1c_FULL_83-0.19.patch ; cat 1c_FULL_83-0.19.patch | tr -d "\r" > 1c_full.patch ; rm -rf 1c_FULL_83-0.19.patch
    />fetch http://v8.1c.ru/overview/postgresql_patches/postgresql-1c-8.3.patch ; cat postgresql-1c-8.3.patch | tr -d "\r" > pgsql-1c-8.3.patch ; rm -rf postgresql-1c-8.3.patch
    />fetch http://v8.1c.ru/overview/postgresql_patches/applock-1c-8.3.1.patch ; cat applock-1c-8.3.1.patch | tr -d "\r" > applock.patch ; rm -rf applock-1c-8.3.1.patch
    накладываем патчи
    />patch -p0 < 1c_full.patch ; patch -p0 < pgsql-1c-8.3.patch ; patch -p0 < applock.patch

    ==================================================
    Установка и настройка PGSQL
    ==================================================
    ставим pgsql
    />cd ../.. ; make install
    ставим необходимые библиотеки нужны для работы 1c
    />work/postgresql-8.3.5/contrib ; gmake all && gmake install
    иницилизируем pgsql
    />/usr/local/etc/rc.d/postgrsql initdb
    добавляемый в /etc/rc.conf информацию необходимую для запуска после ребута
    postgresql_enable="YES"
    postgresql_class="postgres"
    postgresql_initdb_flags="--encoding=UTF-8 --lc-collate=C"
    дописываем, тюнингуем /etc/sysctl.conf
    kern.ipc.shmall=32768
    kern.ipc.shmmax=134217728
    kern.ipc.semmap=256
    дописываем, тюнингуем /boot/loader.conf
    kern.ipc.semmni=256
    kern.ipc.semmns=512
    kern.ipc.semmnu=256
    #написанное выше вступит в силу после ребута
    #чтобы не перезагружать делаем так
    #echo значение_подставляем_сюда >/proc/sys/kernel/опция_для_значения
    определяем локаль
    в /etc/login.conf добавляем
    postgres:\
    :lang=ru_RU.UTF-8:\
    :setenv=LC_COLLATE=C:\
    :tc=default:

    pgsql|Russian pgsql:\
    :charset=UTF-8:\
    :lang=ru_RU.UTF-8:\
    :tc=default:
    даём команду на перестройку базы данных
    />cap_mkdb /etc/login.conf
    меняем локаль для пользователя pgsql
    />pw usermod -n pgsql -L pgsql
    делаем символическую ссылку чтобы 1с создавала базы без ошибок
    />ln -s /usr/share/locale/en_US.UTF-8 /usr/share/locale/en_US
    меняем пароль для доступа к базам
    правим /usr/local/pgsql/data/pg_hba.conf
    host all all 0.0.0.0/0 md5 на host all all 0.0.0.0/0 trust
    запускаем сервер
    /usr/local/etc/rc.d/postgresql start
    />psql -h localhost postgres pgsql
    Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
    Type: \copyright for distribution terms
    \h for help with SQL commands
    \? for help with psql commands
    \g or terminate with semicolon to execute query
    \q to quit
    postgres=#ALTER USER pgsql ENCRYPTED PASSWORD 'welcome';
    postgres=#\q
    меняем обратно в /usr/local/pgsql/data/pg_hba.conf
    host all all 0.0.0.0/0 trust на md5

    ==================================================
    postgresql.conf
    ==================================================
    составляем конфиг /usr/local/pgsql/data/postgresql.conf
    пример рабочего конфига(thanks for fos)
    # Путь к конфигам:
    data_directory = '/usr/local/pgsql/data'
    hba_file = '/usr/local/pgsql/data/pg_hba.conf'
    ident_file = '/usr/local/pgsql/data/pg_ident.conf'
    listen_addresses = '*'
    max_connections = 100
    # Дополнительный буфер между диском и процессами Postgre SQL.
    # Не следует указывать слишком большой объем,
    # т.к. еще существует системный Кэш, контролируемый ОС.
    # Значения:
    # Средний объём данных и 256.512 МБ доступной памяти: 16.32 МБ
    # Большой объём данных и 1.4 ГБ доступной памяти: 64.256 МБ
    shared_buffers = 64MB
    # Буфер под временные объекты, в основном для временных таблиц.
    # Можно установить порядка 16 МБ
    temp_buffers = 20MB
    # Количество одновременно подготавливаемых транзакций.
    # Для работы 1С этот параметр значения не имеет.
    max_prepared_transactions = 5
    # Специальная память, используется для сортировки и
    # кэширования таблиц, для одного запроса.
    # При задании этого параметра следует учитывать количество
    # конкурентых запросов, выполняемых в один момент времени.
    # При памяти 1.4Gb рекомендуется устанавливать 32.128MB
    work_mem = 32MB
    # Память использующаяся для операций VACUUM, CREATE INDEX,
    # ALTER TABLE и FOREGIN KEY.
    # Следует устанавливать большее значение, чем для work_mem.
    # Слишком большие значения приведут к использованию свопа.
    # При памяти 1.4Gb рекомендуется устанавливать 128.512MB
    maintenance_work_mem = 128MB
    # Специальный стек для сервера, в идеале он должен совпадать
    # с размером стека, выставленном в ядре ОС. Установка большего значения
    # чем в ядре может привести к ошибкам. Рекомендуется устанавливать 2.4MB
    max_stack_depth = 2MB
    # Максимальное количество таблиц, для которых будет отслеживаться
    # свободное место. Выставите параметр в соответствии с количеством
    # таблиц в вашей базе с запасом.
    max_fsm_relations = 5000
    # Количество блоков, для которых будет хранится информация о свободном месте.
    # Информация хранится в разделяемой памяти, для каждой записи требуется
    # по 6 байт. Использование этого параметра позволяет избежать использования
    # VACUUM FULL для базы, достаточно будет VACUUM. Этот параметр должен быть
    # не меньше чем 16*max_fsm_relations. Данный параметр задается автоматически
    # при создании базы утилитой initdb. Можно задать его и вручную: в качестве
    # начального приближения можно взять половину от среднего количества записей,
    # изменяемых (UPDATE или DELETE) между запусками команды VACUUM.
    max_fsm_pages = 100800
    # Данный параметр отвечает за сброс данных из кэша на диск при завершении
    # транзакций. Если установить его значение fsync=off, то данные не будут
    # записываться на дисковые накопители сразу после завершения операций.
    # Это может существенно повысить скорость операций insert и update, но
    # есть риск повредить базу, если произойдет сбой (неожиданное отключение
    # питания, сбой ОС, сбой дисковой подсистемы). Используйте эту возможность
    # только если у вас имеются надежные ИБП и программное обеспечение,
    # завершающее работу системы при низком заряде батарей.
    fsync = on
    # Метод который используется для принудительной записи данных на диск.
    # Если fsync=off, то этот параметр не имеет значения. Возможные значения:
    # open_datasync . запись данных методом open() с опцией O_DSYNC
    # fdatasync . вызов метода fdatasync() после каждого commit
    # fsync_writethrough . вызывать fsync() после каждого commit игнорирую
    # паралельные процессы
    # fsync . вызов fsync() после каждого commit
    # open_sync . запись данных методом open() с опцией O_SYNC
    # Не все методы доступны на определенных платформах. По умолчанию устанавливается
    # первый, который доступен в системе.
    wal_sync_method = fsync
    # Установите данный параметр в off, если fsync=off
    full_page_writes = on
    # Количество памяти используемое в SHARED MEMORY для ведения транзакционных логов.
    # При доступной памяти 1.4GB рекомендуется устанавливать 256.1024kb
    wal_buffers = 256kB
    # Передает данные планировщику запросов об объеме памяти, которая используется
    # ОС для кэширования файлов, для одного запроса.
    effective_cache_size = 512MB
    # Устанавливает глубину статистики по таблицам. БОльшие значения могут повысить
    # время выполения команды ANALYZE, но улучшат построение плана запроса.
    # Рекомендуется устанавливать порядка 100
    default_statistics_target = 100
    # Включает или отключает использование планером ограничений CONSTRAINT в таблицах
    # при построении запросов. Рекомендуется установить значение on, при этом, если
    # Вы изменяете CONSTRAINT у таблиц, необходимо обновить их статистику выполнив
    # ANALYZE, в противном случае будут построены неверные планы запросов.
    constraint_exclusion = on
    # логи
    log_destination = 'syslog'
    syslog_facility = 'LOCAL0'
    syslog_ident = 'postgres'
    log_truncate_on_rotation = on
    # Включать ли автовакуум, устанавливать on
    autovacuum = on
    # Пауза между запусками Автовакуума. Зависит от того, как часто обновляются данные
    # в ваших таблицах. Может соствлять порядка 5min, по умолчанию 1min
    autovacuum_naptime = 5min
    # Формат даты
    datestyle = 'iso, dmy'
    # Кодировка
    lc_messages = 'ru_RU.UTF-8'
    lc_monetary = 'ru_RU.UTF-8'
    lc_numeric = 'ru_RU.UTF-8'
    lc_time = 'ru_RU.UTF-8'
    # Дефолтовая конфигурация для текстовго поиска
    default_text_search_config = 'pg_catalog.russian'
    # Время жизни взаимных блокировок. Установить порядка 2 секунд.
    deadlock_timeout = 2s
    # Количество блокировок за одну транзакцию: установить порядка 200-250
    max_locks_per_transaction = 200
    # end of file

    ==================================================
    Финальная часть
    ==================================================
    запускаем сервисы 1с и pgsql
    (ошибок быть не должно, но все же закиньте в /etc/rc.conf
    rc_info="YES"
    rc_debug="YES")
    />/usr/local/etc/rc.d/postgresql start
    />/usr/local/etc/rc.d/1csrv start
    смотрим процессы 1с
    />ps aux | grep ragent
    />ps aux | grep rph
    />ps aux | grep rmn
    определяем статус pgsql
    />/usr/local/etc/rc.d/postgresql status
    (логи pgsql лежат в /var/log/message)
    на любой машине где есть 1с установленная заходим в консоль управления серверами 1с
    создаем БД прописываем пути и пароли
    пробуем зайти в 1с

    ==================================================
    тема очень интересная, но я не раскрыл установку HASP ключа (в организации всего 8 клиентов)
    макс. возможна работа до 12 клиентов включительно

    описание подключения клиентов напишу позже
     
    #1 delux, 19 Jul 2009
    Last edited: 21 Jul 2009
    3 people like this.
  2. Flegmatique

    Flegmatique Banned

    Joined:
    6 Jul 2009
    Messages:
    7
    Likes Received:
    9
    Reputations:
    0
    оформление ужасное
     
  3. оlbaneс

    оlbaneс Moderator

    Joined:
    5 Nov 2007
    Messages:
    1,376
    Likes Received:
    1,094
    Reputations:
    356
    ага, консоль напоминает. фряшники совсем одичали.

    п.с. правило оформления статей читал?
    Вот пример структуры статьи:
    Цитата:
    [Название статьи] - заголовок статьи
    (альтернативное название - расшифровка названия) - по усмотрению.
    [Вступление] или [Intro] - кратко, что вас побудило написать статью и т.д
    [Используемые термины] - кратко, наиболее важные - по усмотрению.
    [Подготовка и Постановка задачи] - тут Вы указываете необходимые инструменты (софт, железо и т.п.)
    [Реализация или Практическое использование] - тут Вы можете показать на конкретном примере, что излож. материал работает.
    [Заключение или Итоги] - тут Вы пишите, например, замечания по статье, рекомендации, благодарности и т. п.
    [Ссылки] - линки по теме, на используемый материал.
     
    _________________________
    #3 оlbaneс, 20 Jul 2009
    Last edited: 20 Jul 2009
  4. delux

    delux Elder - Старейшина

    Joined:
    11 Jun 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    4
    оформление поправлю
     
  5. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Не хватает ссылок для скачивания файлов (на TPB ничего нет) ;)
    А также недостаточно инфы о подключении.
    Просто если такие статьи пишутся, то они пишутся для людей непонимающих, а таким сложно сразу разобраться даже с подключением, ни разу не видев консоль 1с-ки
     
    #5 ronald, 20 Jul 2009
    Last edited: 20 Jul 2009
  6. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    На TPB нету Этого файла ;)
    И напиши про подключение клиентов, чтобы было совсем брильянтово.
     
  7. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    На ТРВ только версия под окошки! вот результат поиска http://thepiratebay.org/search/1c%208.1.13.41%20/0/99/300
     
  8. delux

    delux Elder - Старейшина

    Joined:
    11 Jun 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    4
    ronald там есть платформа под красную шапку
     
  9. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    42
    Reputations:
    6
    Извиняюсь, просто не заметил, как скачал увидел.
    Там просто категория окошковых программ
     
  10. delux

    delux Elder - Старейшина

    Joined:
    11 Jun 2008
    Messages:
    29
    Likes Received:
    9
    Reputations:
    4
    пробовал кто-нибудь ?
    комьюнити oпишите баги