Инструменты пользователя

Инструменты сайта


faq:linux:1c

Это старая версия документа!


1C Предприятие v8

Серверный вариант

Настройка локали

Вкратце: локаль на сервере должна быть русской, т.к. 1С ориентируется на дефолтную локаль системы, при чтении файлов в однобайтовой кодировке. Процесс по шагам:

  • добавим строку:
    /etc/locale.gen
    ru_RU.UTF-8 UTF-8
  • выставим локаль по-умолчанию (важно!):
    /etc/default/locale
    LANG=ru_RU.UTF-8
  • генерируем локали:
    locale-gen && update-locale

Установка PostgreSQL

Установка пакетов

Устанавливаем пакеты движка баз данных PostgreSQL:

  • добавляем секции contrib non-free в /etc/apt/sources.list
  • устанавливаем зависимости:
    apt-get --no-install-recommends install libicu44 libxslt1.1
  • скачиваем Etersoft PostgreSQL пропатченный для поддержки 1C с сайта «Этерсофт» ftp://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/Debian/
  • увеличиваем системные лимиты памяти: 1)
    echo "kernel.shmmax = 331010176" >> /etc/sysctl.d/shm.conf
    echo "kernel.shmall = 331010176" >> /etc/sysctl.d/shm.conf
    sysctl -p /etc/sysctl.d/shm.conf
  • устанавливаем скачанные пакеты:
    dpkg -i *.deb

Init-скрипт

Для нормального запуска в Debian необходимо доработать init-скрипты:

  • добавляем в начало скрипта строки
    /etc/init.d/postgresql
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:       postgresql
    # Required-Start: $network $remote_fs $syslog
    # Required-Stop:  $network $remote_fs $syslog
    # Default-Start:  2 3 4 5
    # Default-Stop:   0 1 6
    # Description:    PostgreSQL database
    ### END INIT INFO
    ...
  • добавляем в начало скрипта строки
    /etc/init.d/postgresql.outformat
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:       postgresql.outformat
    # Required-Start: $network $remote_fs $syslog
    # Required-Stop:  $network $remote_fs $syslog
    # Default-Start:  2 3 4 5
    # Default-Stop:   0 1 6
    # Description:    Helper for postgreSQL database
    ### END INIT INFO
    ...
  • добавляем в загрузку с учётом зависимостей
    update-rc.d -f postgresql remove
    update-rc.d postgresql defaults
  • создаем пустую базу данных
    /etc/init.d/postgresql initdb

Настройка движка

Для настройки понадобятся файлы postgresql.conf и pg_hba.conf:

  • настраиваем конфигурационный файл PostgreSQL 2)
    /var/lib/pgsql/data/postgresql.conf
    listen_addresses = '127.0.0.1'          # what IP address(es) to listen on;
    max_connections = 100                   # (change requires restart)
    shared_buffers = 64MB                   # min 128kB
    temp_buffers = 16MB                     # min 800kB
    work_mem = 128MB                                # min 64kB
    maintenance_work_mem = 256MB            # min 1MB
    fsync = off                             # turns forced synchronization on or off
    full_page_writes = off                  # recover from partial page writes
    wal_buffers = 256kB                     # min 32kB
    effective_cache_size = 1024MB
    log_destination = 'stderr'              # Valid values are combinations of
    logging_collector = on                  # Enable capturing of stderr and csvlog
    log_directory = 'pg_log'                # directory where log files are written,
    log_filename = 'postgresql-%a.log'      # log file name pattern,
    log_truncate_on_rotation = on           # If on, an existing log file of the
    log_rotation_age = 1d                   # Automatic rotation of logfiles will
    log_rotation_size = 0                   # Automatic rotation of logfiles will 
    autovacuum = on                 # Enable autovacuum subprocess?  'on' 
    autovacuum_naptime = 5min               # time between autovacuum runs
    datestyle = 'iso, dmy'
    lc_messages = 'ru_RU.UTF-8'                     # locale for system error message
    lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary formatting
    lc_numeric = 'ru_RU.UTF-8'                      # locale for number formatting
    lc_time = 'ru_RU.UTF-8'                         # locale for time formatting
    default_text_search_config = 'pg_catalog.russian'
    max_locks_per_transaction = 200         # min 10
    default_with_oids = on
    escape_string_warning = off
  • настраиваем уровень доступа к базам данных 3)
    /var/lib/pgsql/data/pg_hba.conf
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          md5
    # IPv6 local connections:
    host    all         all         ::1/128               md5
  • закомментируем бред в файле
    /var/lib/pgsql/.bash_profile
    [ -f /etc/profile ] && source /etc/profile
    CONFIG=/etc/sysconfig/postgresql
    PGDATA=/var/lib/pgsql/data
    [ -f "$CONFIG" ] && . "$CONFIG"
     
    #if [ -f /etc/debian_version ]; then
    #   grep 'en_US en_US.UTF8' /etc/locale.alias || locale-gen en_US && dpkg-reconfigure locales
    #fi
    export PGDATA
  • делаем ссылку на директорию с лог-файлами
    ln -s /var/lib/pgsql/data/pg_log /var/log
  • перезапускаем сервер баз данных
    /etc/init.d/postgresql restart
  • проверяем что демоны запустились и слушают порты

Пароли

Устанавливаем пароли:

  • блокируем пароль для системного пользователя
    usermod --lock postgres
  • устанавливаем пароль для пользователя баз данных
    su - postgres
    psql
    alter user postgres with password 'PASSWORD';
    \q
    exit

Резервное копирование

В комплекте с PostgreSQL идёт утилита резервного копирования pg_dumpall, которая по умолчанию делает резервные копии всех баз. Используя её и систему резервного копирования dirvish можно настроить ежедневного резервное копирование:

/etc/dirvish/postgresql_backup
#!/bin/bash
su --command '/usr/bin/pg_dumpall | gzip > /opt/postgresql/dumpall.gz' --login postgres

Установка сервера 1C

Установка пакетов

Устанавливаем сервер 1С предприятия:

  • устанавливаем зависимости:
    apt-get install imagemagick libgsf-1-114 unixodbc ttf-mscorefonts-installer t1utils libt1-5
  • скачиваем дистрибутив http://users.v8.1c.ru/version.jsp?id=Platform82&ver=8.2.16.362
  • распаковываем и устанавливаем:
    dpkg -i *.deb
  • chown -R usr1cv82. /opt/1C
  • запускаем скрипт проверки и настройки сервера 1C. В случае успеха на stdout не должно выводиться ничего:
    /opt/1C/v8.2/i386/utils/config_server
  • если при запуске 1С проявится ошибка Ошибка инициализации графической подсистемы, то устанавливаем пакет ttf2pt1 (нет в репозиториях Debian) 4)
    wget "http://altruistic.lbl.gov/mirrors/ubuntu/pool/universe/t/ttf2pt1/ttf2pt1_3.4.4-1.3_i386.deb" && sudo dpkg -i ttf2pt1*_i386.deb
  • проверяем, все ли пакеты установлены 5)
    /opt/1C/v8.2/i386/utils/config_server

Настройка 1С

Настраиваем ведение логов: 6)

  • создаём каталог
    mkdir /var/log/1c && chown usr1cv82. /var/log/1c
  • создаём конфиг
    /opt/1C/v8.2/i386/conf/logcfg.xml
    <config xmlns="http://v8.1c.ru/v8/tech-log">
            <dump create="true" location="/var/log/1c/dumps" prntscrn="true" type="2"/>
            <log history="72" location="/var/log/1c">
                    <event>
                            <eq property="name" value="EXCP"/>
                    </event>
                    <event>
                            <eq property="name" value="EXCPCNTX"/>
                    </event>
                    <event>
                            <eq property="name" value="PROC"/>
                    </event>
                    <event>
                            <eq property="name" value="ADMIN"/>
                    </event>
                    <event>
                            <eq property="name" value="MEM"/>
                    </event>
                    <event>
                            <eq property="name" value="LEAKS"/>
                    </event>
                    <property name="all"/>
            </log>
    </config>

Init-скрипт

Для нормального запуска в Debian необходимо доработать init-скрипт:

  • добавляем в начало скрипта строки
    /etc/init.d/srv1cv82
    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:       srv1cv82
    # Required-Start: $network $remote_fs $syslog postgresql
    # Required-Stop:  $network $remote_fs $syslog postgresql
    # Should-Start:   apache2
    # Should-Stop:    apache2
    # Default-Start:  2 3 4 5
    # Default-Stop:   0 1 6
    # Description:    1C v8 Enterprise System
    ### END INIT INFO
    ...
  • добавляем в загрузку с учётом зависимостей
    update-rc.d -f srv1cv82 remove
    update-rc.d srv1cv82 defaults
  • перезапускаем сервер 1C
  • проверяем что демоны запустились и слушают порты
faq/linux/1c.1391605079.txt.gz · Последнее изменение: 2022-02-19 17:51 (внешнее изменение)