Установка 1С Сервер 8.3.7 (i386 и x64) и PostgreSQL 9.4.x x64 на Ubuntu Server 14.04 x64

Рассматривается вариант установки 32-битного и 64-битного 1С Сервера 8.3.7 (на примере версии 8.3.7.1970), а также 64-битного PostgreSQL 9.4.x на 64-битный Ubuntu Server 14.04. Опционально приводятся варианты настройки Timezone и синхронизации времени, установки Apache 2.2, настройки файрвола UFW, установки OpenJDK 1.8 и включения режима отладки 1С Сервера на 64-битном Ubuntu Server 14.04.

Целью этой работы является обобщение методов установки и настройки 32- и 64-битного 1С Сервера 8.3.7, а также сервера базы данных PostgreSQL 9.4.x, на 64-битный Ubuntu Server 14.04.

Установка 32-битного 1С Сервера на 64-битный Ubuntu 14.04 — задача далеко не тривиальная из-за различия в архитектурах пакетов и требует для своего решения нестандартных подходов. Кроме этого, затронута тема установки Apache 2.2 на Ubuntu Server 14.04 вместо Apache 2.4, что также является непростой задачей. Необходимость наличия Apache 2.2 связана с тем, что версии платформы 1С 8.3.7 в режиме веб-клиента работают только с версией Apache 2.2, но не 2.4, входящей в стандартную конфигурацию Ubuntu 14.04.

Таким образом, приведенная статья должна позволить использовать на Ubuntu Server 14.04 x64 32- и 64-битный 1С Сервер 8.3.7 с веб-клиентом.

В статье использованы материалы статей об установке 1С Сервера и PostgreSQL.

Итак, начнем.

Установите Ubuntu Server 14.04 x64 с поддержкой OpenSSH и все дальнейшие действия будем производить через SSH-консоль.

1. Установка PostgreSQL 9.4.x.

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

sudo locale-gen en_US
(создаем локаль английского языка)
sudo locale-gen ru_RU
(создаем локаль русского языка)
sudo update-locale LANG=ru_RU.UTF8
(по-умолчанию устанавливаем локаль русского языка)
sudo dpkg-reconfigure locales
(переконфигурируем локали) 

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

sudo apt-get install libxslt1.1 ssl-cert

Установка PostgreSQL 9.4.2-1.1C:

Скачиваем необходимую версию библиотеки libicu (например, в каталог /tmp) и устанавливаем ее:

cd /tmp
wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu48_4.8.1.1-3ubuntu0.6_amd64.deb
sudo dpkg -i libicu48_4.8.1.1-3ubuntu0.6_amd64.deb

Скачиваем с сайта 1С все необходимые deb-файлы в каталог /tmp и устанавливаем их именно в такой последовательности:

cd /tmp
sudo dpkg -i libpq5_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-client-common_154.1.1C_all.deb
sudo dpkg -i postgresql-common_154.1.1C_all.deb
sudo dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb
sudo dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb

Установка PostgreSQL 9.4.x (на момент написания статьи 9.4.6) с сайта авторов сборки PostgreSQL для 1С (большое спасибо audion за ссылку):

Добавляем репозиторий 1c.postgrespro.ru:

sudo sh -c ‘echo «deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main» > /etc/apt/sources.list.d/postgrespro-1c.list’

Импортируем ключ репозитория и обновляем список пакетов:

cd /tmp

wget —quiet -O — http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C-92 | sudo apt-key add — && sudo apt-get update

Устанавливаем PostgreSQL:

sudo apt-get install postgresql-pro-1c-9.4

После установки любым из двух вариантов от имени суперпользователя в файле /etc/postgresql/9.4/main/pg_hba.conf строку для соединения через Unix-сокет

local all postgres peer
для пользователя postgres приводим к виду:
local all postgres trust

Для бОльшей безопасности от имени суперпользователя в файле /etc/postgresql/9.4/main/postgresql.conf строку
listen_addresses = ‘*’
приводим к виду:
listen_addresses = ‘localhost’

Это ограничит доступ к серверу базы данных PostgreSQL только внутри машины, на которой он установлен. Данное ограничение можно реальзовать только в случае, когда 1С Сервер и PostgreSQL установлены на одной машине. Если указанные сервера расположены на разных машинах, то необходимо оставить опцию listen_addresses = ‘*’ или вместо ‘*’ указать IP-адрес машины, на которой установлен 1С Сервер.

Перезапускаем сервис PostgreSQL:

sudo service postgresql restart

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

psql -U postgres -d template1 -c «ALTER USER postgres PASSWORD ‘password'»

От имени суперпользователя в файле /etc/postgresql/9.4/main/pg_hba.conf все методы аутентификации устанавливаем в значение md5, например:
local all postgres md5

Перезапускаем сервис PostgreSQL:

sudo service postgresql restart

ДОПОЛНЕНИЕ:

*Если забыли или не правильно установили локаль по-умолчанию перед установкой PostgreSQL или хотите изменить каталог размещения кластера базы данных:

После установки PostgreSQL кластер базы данных размещается в каталоге, который можно найти в файле /etc/postgresql/9.4/main/postgresql.conf в строке data_directory (обычно это /var/lib/postgresql/9.4/main). Если необходимо кластер базы данных разместить в другом каталоге, например в /var/lib/pgsql, то можно сделать следующее:

— создать дампы всех необходимых баз данных

— остановить сервис PostgreSQL:

sudo service postgresql stop

— удалить текущий каталог кластера базы данных:

sudo rm -rf /var/lib/postgresql

— установить пароль для UNIX-пользователя postgres:

sudo passwd postgres

— создать новый каталог кластера базы данных:

sudo mkdir /var/lib/pgsql

— установить UNIX-пользователя postgres владельцем каталога /var/lib/pgsql:

sudo chown -R postgres:postgres /var/lib/pgsql

— от имени UNIX-пользователя postgres инициализировать кластер базы данных с новым каталогом и новой локалью:

su postgres -c ‘/usr/lib/postgresql/9.4/bin/initdb -D /var/lib/pgsql —locale=ru_RU.UTF-8’

— от имени суперпользователя в файле /etc/postgresql/9.4/main/postgresql.conf изменить значение каталога кластера базы данных на новое размещение, т.е. в приведенном примере строку
data_directory = ‘/var/lib/postgresql/9.4/main’
нужно привести к виду
data_directory = ‘/var/lib/pgsql’
и сохранить файл 

— запустить сервис PostgreSQL:

sudo service postgresql start

— восстановить необходимые базы данных из дампов

*Если PostgreSQL переустанавливался после того, как был установлен 1С Сервер, и невозможно подключить клиент к инфобазе:

— перезапустите сервис PostgreSQL:

sudo service postgresql restart

— перезапустите сервис 1С Сервера:

sudo service srv1cv83 restart

или

— перезагрузите весь сервер с Ubuntu:

sudo reboot

2. Установка Timezone и синхронизация времени (опционально).

При необходимости установить Timezone и синхронизировать время операционной системы, необходимо выполнить следующие действия:

— сконфигурировать часовой пояс:

sudo dpkg-reconfigure tzdata
и выбрать необходимый часовой пояс

— установить ntp-протокол и произвести синхронизацию времени:

sudo apt-get install ntp
sudo service ntp stop
sudo ntpdate -s time.nist.gov
sudo service ntp start

3. Установка 64-битного 1С Сервера 8.3.7.

Устанавливаем необходимые зависимости:

sudo apt-get install imagemagick
sudo apt-get install unixodbc
sudo apt-get install ttf-mscorefonts-installer
(в процессе установки необходимо принять условия лицензионного соглашения)
sudo apt-get install libgsf-1-114

Скачиваем с сайта 1С все необходимые deb-файлы в каталог /tmp и устанавливаем их (логичной выглядит следующая последовательность установки):

cd /tmp
sudo dpkg -i 1c-enterprise83-common_8.3.7-1970_amd64.deb
(обязательно)
sudo dpkg -i 1c-enterprise83-common-nls_8.3.7-1970_amd64.deb
(опционально для поддержки дополнительных языков)
sudo dpkg -i 1c-enterprise83-server_8.3.7-1970_amd64.deb
(обязательно)
sudo dpkg -i 1c-enterprise83-server-nls_8.3.7-1970_amd64.deb
(опционально для поддержки дополнительных языков)
sudo dpkg -i 1c-enterprise83-ws_8.3.7-1970_amd64.deb
(опционально для работы веб-клиента)
sudo dpkg -i 1c-enterprise83-ws-nls_8.3.7-1970_amd64.deb
(опционально для поддержки дополнительных языков) 

Изменяем владельца каталога /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

Запускаем 1С Сервер:

sudo service srv1cv83 start

4. Установка 32-битного 1С Сервера 8.3.7.

Включаем поддержку архитектуры i386 и обновляем список пакетов:

sudo dpkg —add-architecture i386
sudo apt-get update

Устанавливаем необходимые зависимости в архитектуре i386:

sudo apt-get install imagemagick:i386
sudo apt-get install unixodbc:i386
sudo apt-get install ttf-mscorefonts-installer
(в процессе установки необходимо принять условия лицензионного соглашения) 

Версия i386 библиотеки libgsf-1-114 отсутствует в репозитории Ubuntu, однако имеется в репозитории Debian. Поэтому нам придется скачать эту библиотеку из репозитория Debian. Скачиваем версию i386 библиотеки libgsf-1-114 (например, в каталог /tmp) и устанавливаем ее именно в такой последовательности:

cd /tmp
wget http://ftp.us.debian.org/debian/pool/main/libg/libgsf/libgsf-1-common_1.14.36-1_all.deb
wget http://ftp.us.debian.org/debian/pool/main/libg/libgsf/libgsf-1-114_1.14.36-1_i386.deb
sudo dpkg -i libgsf-1-common_1.14.36-1_all.deb
sudo dpkg -i libgsf-1-114_1.14.36-1_i386.deb

Скачиваем с сайта 1С все необходимые deb-файлы в каталог /tmp и устанавливаем их (логичной выглядит следующая последовательность установки):

cd /tmp
sudo dpkg -i 1c-enterprise83-common_8.3.7-1970_i386.deb
(обязательно)
sudo dpkg -i 1c-enterprise83-common-nls_8.3.7-1970_i386.deb
(опционально для поддержки дополнительных языков)
sudo dpkg -i 1c-enterprise83-server_8.3.7-1970_i386.deb
(обязательно)
sudo dpkg -i 1c-enterprise83-server-nls_8.3.7-1970_i386.deb
(опционально для поддержки дополнительных языков)
sudo dpkg -i 1c-enterprise83-ws_8.3.7-1970_i386.deb
(опционально для работы веб-клиента)
sudo dpkg -i 1c-enterprise83-ws-nls_8.3.7-1970_i386.deb
(опционально для поддержки дополнительных языков)
sudo dpkg -i 1c-enterprise83-crs_8.3.7-1970_i386.deb
(опционально для функционирования хранилища конфигураций) 

Изменяем владельца каталога /opt/1C:

sudo chown -R usr1cv8:grp1cv8 /opt/1C

Запускаем 1С Сервер:

sudo service srv1cv83 start

5. Установка Apache 2.2 (опционально, большое спасибо oldcopy за рекомендацию).

От имени суперпользователя добавим в список следующие репозитории:

— переключаемся в консоль суперпользователя:

sudo -i

— добавляем репозитории:

cat <<EOF >> /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu precise main restricted universe
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted universe
deb http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse
EOF

— редактируем или создаем файл /etc/apt/preferences.d/preferences, добавляя в него следующие строки:

Package: apache2* 
Pin: release n=precise 
Pin-Priority: 900

— выходим из консоли суперпользователя:

exit

— обновляем список пакетов:

sudo apt-get update

— устанавливаем Apache 2.2:

sudo apt-get install apache2

— проверяем версию установленного Apache:

apache2 -v

6. Настройка файрвола UFW (опционально).

Для обеспеспечения бОльшей безопасности желательно настроить и включить файрвол UFW. Для этого необходимо выполнить следующие дествия:

sudo ufw allow ssh
или
sudo ufw allow 22
(если для протокола SSH используется порт 22) 

sudo ufw allow 80
(для доступа по HTTP-протоколу)

sudo ufw allow 443
(для доступа по HTTPS-протоколу)

sudo ufw allow 1540
sudo ufw allow 1541
sudo ufw allow 1560:1591/tcp
(для работы 1С Сервера, если кластер серверов установлен со стандартными значениями портов)

sudo ufw enable
(включаем файрвол) 

7. Установка OpenJDK 1.8 (опционально).

При необходимости запуска java-приложений (в том числе из 1С), можно установить OpenJDK 1.8 следующим образом:

— добавляем ppa-репозиторий и обновляем список пакетов:

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

— устанавливаем OpenJDK:

sudo apt-get install openjdk-8-jdk
(для установки JDK)
или
sudo apt-get install openjdk-8-jre
(для установки только JRE)

— актуализируем Java-машину (если ранее уже была установлена младшая версия Java):

sudo update-alternatives —config java

— актуализируем Java-компилятор (если ранее уже была установлена младшая версия Java):

sudo update-alternatives —config javac

— проверяем установленную версию Java:

java -version

8. Включение режима отладки 1С Сервера (опционально).

Останавливаем сервис 1С Сервера:

sudo service srv1cv83 stop

От имени суперпользователя редактируем файл /etc/init.d/srv1cv83, а именно — находим следующую строку:

#SRV1CV8_DEBUG=

раскомментируем ее и присвоим значение 1 так, чтобы получилась следующая строка:

SRV1CV8_DEBUG=1

сохраняем файл /etc/init.d/srv1cv83 и запускаем сервис 1С Сервера:

sudo service srv1cv83 start

На клиентской машине в меню конфигурации «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» включаем следующие пункуты:

«Устанавливать режим разрешения отладки»

«Начинать отладку при запуске»

9. Параметры для создания информационной базы на сервере и подключения к ней.

От имени суперпользователя необходимо отредактировать файл /etc/hosts таким образом, чтобы в нем была строка:

IP адрес машины, на которой установлен 1С Сервер hostname -f hostname, например:
192.168.0.111 test.example.com test
(промежутки должны быть пробелами, а не табами) 

На клиентской WINDOWS-машине от имени администратора в файл C:WindowsSystem32driversetchosts необходимо добавить строку, указанную выше, например:
192.168.0.111 test.example.com test

При создании информационной базы в консоли Администрирования 1С Серверов в качестве сервера базы данных желательно указывать localhost (допустимо указывать hostname машины, на которой запущен PostgreSQL и 1С Сервер, и который прописан в файле C:WindowsSystem32driversetchosts). Данная рекомендация действительна только для случая, когда 1С Сервер и PostgreSQL находятся на одной машине. В противном случае вместо localhost необходимо указывать hostname машины, на которой установлен PostgreSQL.

При подключении к созданной информационной базе в качестве кластера серверов желательно указывать hostname машины, на которой запущен 1С Сервер и который прописан в файле C:WindowsSystem32driversetchosts (для Windows-клиентской машины), а в качестве информационной базы в кластере — имя информационной базы, указанное при ее создании. Если кластер серверов запущен на не стандартных портах, то в качестве кластера серверов указать hostname:port, например srv1c:1741.


Проверяем состояние сервисов на Ubuntu-сервере:

service postgresql status

Если все ОК, то статус должен быть «online».

service srv1cv83 status

Если все ОК, то должны быть следующие статусы:

— Init script: STARTED

— Ragent RUNNING

При необходимости проверяем статус файрвола:

service ufw status

Если файрфол запущен, то статус должен быть «start/running».


На этом установку и настройку 1С Сервера + PostgreSQL + Ubuntu 14.04 завершаем.

66 Comments

  1. WKBAPKA

    за труды

    Reply
  2. baracuda

    Все пакеты последние, а значит актуальные на текущий момент. Лайк.

    Reply
  3. zabaluev

    Для нормального использования Linux надо все операции по установке автоматизировать, написав командный файл.

    Установка сервера 1с должна проходить так:

    1. Предварительно копируем все дистрибутивы и командный файл в определенную папку.

    2. Запускаем командный файл.

    3. Отвечаем на пару-тройку вопросов батника.

    4. Все, сервер поднят и настроен.

    Также нужно настроить оптимально PostgreSQL, так как с дефолтными настройками работает очень медленно.

    И никаких технических проблем для специалиста Линукс написать нужный скрипт нет.

    Сделайте полезное дело.

    Reply
  4. vikdes

    (3) zabaluev, спасибо за рекомендацию по поводу установки скриптом — попробую оформить в виде скрипта.

    Что касается оптимизации PostgreSQL — это очень обширная тема, выходящая далеко за рамки преложенной статьи. В общем случае такая оптимизация зависит от аппаратного обеспечения (например, от объема RAM, SSD или HDD, на одной машине с 1С Сервером или на разных и т.д.), результатов анализа планов выполнения запросов, использования режима управляемых блокировок в коде 1С-приложения, и т.п. Таким образом, автоматизировать оптимизацию PostgreSQL, на мой взгляд, не представляется возможным.

    Reply
  5. shard

    Благодарю за отладку на сервере. Про оптимизацию постгре уже много копий поломано, однозначного рецепта нет: параметры зависят от железа, содержимого баз и требований пользователей. Дополнил бы описанием параметра data_directory разве что.

    Reply
  6. vikdes

    (5) shard, в п.1 сделал ДОПОЛНЕНИЕ об изменении data_directory и локали

    Reply
  7. cssprite

    (4) тут Простой тестовый сервер 1С 8.3 на Debian за 30 минут (Автоматическая установка на Debian x64 сервера PostgreSQL.1C + 1С + Apache и публикация тестовой БД ) я публиковал скрипт автоматической установки, вдруг что пригодится, когда свой будешь делать.

    Reply
  8. Danila-Master

    Спасибо за статью.

    Во многих источника рекомендуют пересобирать Postgres из-за библиотеки libicu52.

    Сам же прибегаю к тому же методу, что и в статье, что лучше установить libicu48, и не порится.

    Reply
  9. audion

    Опыт показывает, что PostgreSQL практически всегда лучше собирать из исходников. Вот тут камрад starik-2005 все грамотно и подробно показал http://infostart.ru/public/460864/ . Если нет желания морочить голову, можно поставить PostgreSQL Professional, подключив репозитории https://www.postgrespro.ru/products/1c_build (сборка от самих создателей патчей О. Бартунова и Ф. Сигаева).

    Что же касается оптимизации PostgreSQL, это «отдельная большая тема», есть калькуляторы для первичной настройки и куча информации для тонкой.

    Автору статьи: полезный материал, однозначно интересно и актуально. Было бы неплохо дополнить рекомендациями по разбивке дискового пространства, в т.ч. по разнесению каталогов БД и pg_xlog на разные физические массивы, что дает существенный прирост производительности по IO. Но, впрочем, если все это на RAID1 или 10 из серверных SSD, то, наверное, ничего разбивать и не потребуется. В любом случае плюс, большое спасибо!

    Reply
  10. vikdes

    (9) audion, огромное спасибо за ссылку на сайт авторов сборки PostgreSQL для 1С — уже добавил этот способ установки в статью. По поводу разбивки диска — я использую только SSD, поэтому такой необходимости не возникало (в серверах сейчас уже ставят SSD по 1,6 ТБ)

    Reply
  11. marat10

    Может сделают виртуальную машину с установленным всем, где надо будет айпишник только указать.

    Reply
  12. neoxil

    Спасибо! Очень дельная статья.

    Правда, очень не хватает раздела про установку драйверов ключа защиты.

    Reply
  13. vikdes

    (12) neoxil, раздел про ключ защиты добавлять не планируется, т.к. мы используем только программные лицензии и не имеем опыта с USB-ключами. Кроме этого, если сервер, на который устанавливается 1С Сервер — это VPS или арендованный Dedicated server, то, как-правило, у Вас не будет физического доступа к нему и Вы не сможете вставить USB-ключ, т.е. будете использовать программные лицензии.

    Reply
  14. vikdes

    (11) marat10, спасибо — хорошая мысль. Постараюсь подготовить VM и куда-то выложить.

    Reply
  15. Dragonim

    (3) zabaluev,

    Скрипт:

    1. кладём всё указанное в статье в те же каталоги что и автор

    2. создаём файл 1с.sh

    3. в файл 1c.sh первой строчкой пишим: #!/bin/bash

    4. все остальные строчки пишем так же как они указанны в статье с новой строки

    5. запускаем скрипт из под рута

    В общем случае оптимальная настройка PostgreSQL идёт из коробки.

    Настройка PostgreSQL под свои задачи не разбираясь что, где и как: http://pgtune.leopard.in.ua/

    Настройка PostgreSQL под свои задачи разбираясь что, где и как: http://postgresql.leopard.in.ua/

    Reply
  16. oldcopy

    Как автор статей на которые ссылались и из которых взята определенная часть материала внесу свои замечания.

    1. Установка Apache таким образом — это прибивание гвоздями нужной версии. В то время как есть штатный инструмент apt pinning. После того как мы добавили репозитории от precise в /etc/apt/preferences.d/preferences пишем:

    Package:apache2*

    Pin: release n=precise

    Pin-Priority: 900

    После чего обязательно apt-get update

    и apt-get install apache2

    При этом вы не прибиты к конкретной версии, а можете спокойно обновляться в рамках поддержки 12.04 (LTS).

    2. По поводу скрипта. Во первых это не разу ни Linux-way, где админ полностью управляет своей системой и знает что делает у него вот этот файл или вон та настройка. Во вторых запускать чужие скрипты очень и очень небезопасно, одно дело случайный косяк, а совсем другое, если какой нибудь шутник запихнет в cron на первое января что нибудь типа rm -rf /*

    3. По поводу оптимизации и тонкой настройки Postgres. На небольших внедрениях, когда используется типовая база которой просто стало мало файлового режима, настройки из коробки достаточно оптимальны, во всяком случае существенной выгоды от оптимизаций вы не получите. Выгоды на копейку, напортачить можно на рубль. На больших базах требуется индивидуальный подход и минимальные познания в PGSQL. На мой взгляд лучше никак не трогать Postgres, чем делать непонятно что, непонятно для чего и непонятно зачем, что будет с 90% читателей. Которые будут крутить настройки не понимая их значения только потому что в мануале так написано.

    4, Зачем UFW, если есть iptables? И что, вы собираетесь этот сервер выставлять напрямую наружу без промежуточного файрвола? И по большому счету файрвол там не нужен, как таковой, все равно практически все, кроме порта PGSQL вам надо держать открытым наружу, а больше там ничего и нет. Любой сканер это покажет. Т.е. вы открыли то, что уже открыто и не закрыли ничего, что не нужно.

    Reply
  17. tr10d

    Как обновлять Postgres и сервер 1С?

    Reply
  18. dr2c

    (17) tr10d, Запускаете те-же пакеты (в той-же последовательности) обновленной версии- все замениться

    Reply
  19. dr2c

    Вот не пойму принципиальность порядка установки пакетов сервера 1С (x64) я вот ставлю в такой последовательности:

    dpkg -i 1c-enterprise83-common_8.3.8-1479_amd64.deb

    dpkg -i 1c-enterprise83-ws_8.3.8-1479_amd64.deb

    dpkg -i 1c-enterprise83-ws-nls_8.3.8-1479_amd64.deb

    dpkg -i 1c-enterprise83-common-nls_8.3.8-1479_amd64.deb

    dpkg -i 1c-enterprise83-server_8.3.8-1479_amd64.deb

    dpkg -i 1c-enterprise83-server-nls_8.3.8-1479_amd64.deb

    Все запускается и работает!

    Reply
  20. oldcopy

    (19) Последовательность не имеет значения, их можно вообще ставить кучей: dpkg -i *.deb, пакетный менеджер разберется сам.

    С postgres такой фокус не проходит, так как он подтянет нужные зависимости из реп и вы получите сборную солянку: тут пакет из 1С, тут штатный. Самое интересное, что все это работает, но только не с 1С.

    Reply
  21. vikdes

    (16) oldcopy, большое спасибо за совет по установке Apache 2.2 — в статье уже поменял на этот вариант. По пп. 2 и3 — полностью поддерживаю. Что касается UFW — рекомендации по нему в статье являются опциональными (например, если по каким-либо причинам были закрыты используемые порты), сам по себе UFW — это только конфигурационная утилита файрвола и никаким образом не отменяет функционирования iptables.

    Reply
  22. oldcopy

    (21) Здесь добавьте пробел (после двоеточия):

    Package: apache2*

    А то кто нибудь прямо так скопипастит.

    По поводу UFW — я не против, но как-то больше привык к iptables, там хоть синтаксис сложнее, зато с первого взгляда все понятно.

    Reply
  23. vikdes

    (22) oldcopy, подправил код, спасибо.

    Reply
  24. PVG_73

    Надо взять на заметку, на всякий пожарный….

    Reply
  25. MAlexey

    Провел неделю в попытке установить 32 битный сервер 1С на Ubuntu server 14.04 64 бит.

    Делаю все по данному мануалу, но веб-клиент не работает.

    Судя по вопросам в интернете, такая схема не живет, т.к. веб-клиенту 1С сервер 32 бит, требуется Апач 2.2 и той же разрядности.

    В противном случае апач не поднимет клиента, а мы получим ошибку wsap22.so: wrong ELF class: ELFCLASS32

    Как решить такое остается проблемой.

    Reply
  26. Mitya.Info

    а почему на сайте нет пакета для другой архитектуры? i386???? ((( (https://releases.1c.ru)

    )

    Reply
  27. Irwin

    Поставил платформу 8.3.8 на Ubuntu Server 14.04. Выскакивает ошибка:

    Платформа: 1С:Предприятие 8.3 (8.3.8.1652)

    Ошибки:

    ———————————————————————————

    20.05.2016 0:01:46

    Ошибка загрузки библиотеки libfontconfig.so по причине:Библиотека не обнаружена.

    Часть функций будет недоступна.

    Обратитесь к разделу справочной системы «1С:Предприятие — Работа пользователя –

    Особенности работы в Linux – Внешние библиотеки»

    При этом конфигуратор запускается, база разворачивается. Но при попытке запуска в режиме управляемого приложения выскакивает ошибка. В режиме запуска обычного приложения все ОК.

    dpkg -s libfontconfig1

    Показывает следующее:

    Package: libfontconfig1

    Status: install ok installed

    Priority: optional

    Section: libs

    Installed-Size: 512

    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>

    Architecture: amd64

    Multi-Arch: same

    Source: fontconfig

    Version: 2.11.94-0ubuntu1

    Provides: libfontconfig

    Depends: fontconfig-config (= 2.11.94-0ubuntu1), libc6 (>= 2.14), libexpat1 (>= 2.0.1), libfreetype6 (>= 2.2.1)

    Description: generic font configuration library — runtime

    Fontconfig is a font configuration and customization library, which

    does not depend on the X Window System. It is designed to locate

    fonts within the system and select them according to requirements

    specified by applications.

    .

    This package contains the runtime library needed to launch applications

    using fontconfig.

    Original-Maintainer: Keith Packard <keithp@debian.org>

    Подскажите, в чем проблема?

    Reply
  28. alena-curkova

    (27) Irwin, Добрый день! Подскажите пожалуйста, вы решили данную проблему? Я к сожалению натолкнулась на такую же.

    Reply
  29. denisros

    (28) alena-curkova, Была подобная проблема на Ubuntu 16.04, но у меня просто библиотеки libfontconfig.so и libWand.so по каким то причинам не установились (не было видно в ldconfig -p).

    Помогло

    sudo apt-get install libfontconfig1

    и общий

    apt-get install imagemagick

    Reply
  30. user613320_dimka11

    Приветствую, спасибо за развернутую статью. Разрешите уточнить один момент.

    Установил Ubuntu 14.04, сделал все по статье с обновлениями и локалью. Далее устанавливал PostgreSQL двумя способами, описанными в данном мануале (Ubuntu переставлял каждый раз для того). И вот после того, как выставляю метод авторизации «trust», меняю пароль, выставляю md5 и даю команду «sudo service postgresql restart» выдает ошибки, что пользователь postgres не прошел проверку по паролю. Несколько сообщений такого рода выскакивает: postgres@postgres не прошел проверку по паролю, метод входа соответствует строке 85 — local all postgres md5. При этом сам сервис все таки стартует, т.к. удается поставить pgadmin как на эту, так и на удаленную машину и подключиться к серверу, поставить сервер 1С и развернуть тестовую базу. Стоит обращать внимания на данные сообщения? Каждый раз при рестарте сервера их порядка 6-8 штук.

    Reply
  31. lcnet

    Приветствую!

    Все отлично написано, все взлетело (со второго раза) )))

    Есть одно НО…

    В статье упомянут веб-сервер, но ничего дельного не сказано про его установку и настройку. Уже 3 дня бьюсь с апачем, не хочет стартовать после публикации базы, ругается нанеправильный параметр «order» и не могу понять то не так.

    Вроде нашел похожую статью забугорную, где говорилось что что-то неправильное в путях, но не разобрался .

    Было бы хорошо, если бы была расписано как подружить апач или нгинкс с 1с-кой.

    Спасибо.

    Reply
  32. lcnet

    Вопрос отпал сам собой…

    В инструкциях указан неправильный конфиг апача, указал правильный и все завелось!

    Ура!!!

    Reply
  33. BadMadJohn

    Спасибо. Отличная работа. Первый раз установил ubuntu и по статье по порядку поставил postgresql и сервер 1С х64. К сожалению ничего почти не понял, что делал, но все заработало с первого раза.

    Текущая версия 1С уже работает с апачи 2.4. Дополните пож-та статью какие действия надо проделать для установки этой версии, я так понимаю должно быть еще проще.

    Reply
  34. oldcopy

    Просто apt-get install apache2, без всех подготовительных процедур.

    Reply
  35. BadMadJohn

    Спасибо, разобрался, поднял уже веб сервер и опубликовал базу. Еще подскажите пож-та, как настроить автозапуск postrgresql. При запуске или рестарте сервера служба не запускается, вручную запускается без проблем.

    И еще интересно было бы узнать, как возможно загрузить базу из dt непосредственно на сервере. Сейчас у меня виртуальная машина с ubuntu в локальной сети с моей Windows машиной. Я создал базу через консоль администрирования серверов с windows машины, потом открыл ее конфигуратором и загрузил базу. Но как загрузить базу на сервер находящийся в облаке, с открытым только 443 портом для доступа через Web. Планирую на амазоне AWS EC2 поднять сервер 1С, передать на него через WinSCP дтшник, а что дальше делать, слабо представляю себе.

    Reply
  36. oldcopy

    (35) Хм, вообще то Postgres должен сам взлетать, но попробуйте:

    update-rc.d postgresql defaults

    По поводу сервера. На сервере базу из DT загрузить нельзя, это можно сделать только из клиентского приложения. Т.е. на сервер нужно будет установить GUI, клиент 1С и т.д. и т.п.

    Но есть способ проще. Если у вас есть виртуалка на Ubuntu, то просто выгрузите базу Postgres в дамп, а на сервере загрузите ее. Подробнее можно прочитать в нашей статье: https://interface31.ru/tech_it/2013/07/rezervnoe-kopirovanie-bez-dannyh-postgresql.html

    Reply
  37. BadMadJohn

    попробовал update-rc.d postgresql defaults, не помогло

    Переустановил ubuntu и сделал снова все по порядку пока без сервера 1С и остальных пунктов. Postgresql все равное не стартует автоматом. Куда копать? Отличие у меня только в том что у меня Ubuntu Server 16.04.2 LTS

    Reply
  38. oldcopy

    Принципиальной разницы быть не должно. Тогда давайте разбираться, что вы сделали не так.

    Проверьте /etc/postgresql/9.4/main/start.conf там должна быть выставлена опция auto.

    Потом проверьте каталоги rcN.d, там должны быть скрипты запуска для postgres.

    Сделайте cat /var/log/syslog | grep postgres — получите выжимку из лога относящуюся к postgres, а там уже надо смотреть и думать.

    Reply
  39. starik-2005

    (37)

    попробовал update-rc.d postgresql defaults, не помогло

    Попробуйте sudo update-rc.d postgresql defaults

    Автозагрузка

    Пропишем наш сервер в автозагрузку. Для этого нужно:

    Скоприовать файлик из каталога сборки «contrib/start-scripts/linux» в каталог «/etc/init.d/». Выполним «sudo cp ./contrib/start-scripts/linux /etc/init.d/postgres».

    Сделать файл исполняемым «sudo chmod +x /etc/init.d/postgres»

    Выполнить «sudo update-rc.d postgres defaults» для обновления информации об автозагрузке.

    Ну и финальное «sudo service postgres start»

    Источник: http://infostart.ru/public/460864/

    Reply
  40. BadMadJohn

    В /etc/postgresql/9.4/main/start.conf есть только одна строка auto

    в каталогах rcN.d с 1 по 6 есть файл скриптов

    Лог выдал следующее:

    Лог
    Reply
  41. oldcopy

    Сейчас попробую воспроизвести ситуацию на тестовом стенде. Вы версию Postgres от 1С ставили или PostgresPro?

    Reply
  42. BadMadJohn

    Пробовал и от 1С и от PostgresPro. И то и то на чистый снимок VM с обновлениями и локалью ставил. В обоих вариантах служба при загрузке системы не стартует

    Reply
  43. oldcopy

    В общем удалось воспроизвести ситуацию на сборке PostgresPro, сборка от 1С заработала нормально. Косяк связан с systemd, которая заменила старую систему автозагрузки. Видимо в 16.04 что-то недокрутили в плане совместимости, так как в Debian 8 (в котором тоже systemd) все работает нормально. Лечится тоже просто:

    systemctl enable postgresql

    Reply
  44. starik-2005

    (42) а как Вы ставили PostgresPRO? Добавили репу, апдейтнули и накатили или качали что-то ручками?

    Reply
  45. oldcopy

    Строго по официальной инструкции: добавил репозиторий, поставил ключ, обновил список пакетов, поставил пакет. Все зависимости он тянет автоматом. Главное чтобы локаль системы стояла ru_RU.UTF8.

    Проблема там (в 16.04) исключительно в systemd, точнее в параметрах совместимости, хотя с учетом того, что Ubuntu шла «своим путем», через upstart, то все может быть. Собственно из-за этих чудес мы уже давно перешли на Debian на рабочих серверах.

    Reply
  46. starik-2005

    (45) просто у меня на виртуалке не было проблем со стартом постгреса. Возможно из-за того, что я устанавливал версию 9.5.1 — она, на мой взгляд, производительнее.

    Reply
  47. oldcopy

    Я ставил 9.4 сугубо для «чистоты эксперимента», 9.5 вполне уже может учитывать все тонкости systemd в Ubuntu и проблем с ней быть не должно. Также показателен один момент, при установке на 16.04 версия 9.4 выкидывает предупреждение: «неизвестная версия 16.04», возможно поэтому что-то куда-то не дописывается и возникает нестыковка.

    Reply
  48. BadMadJohn

    Спасибо ребята, помогли. Я то же обращал внимание что при установке postgresql выдавал сообщение о неизвестной ему версии 16.04, надо было сразу вам об

    этом написать.

    Сейчас на работе, виртуалки моей рядом нет что бы проверить. Я так понял лечится проблема вводом команды в консоле systemctl enable postgresql? Или это надо в каком-то файле systemmd такую строку прописать? Прошу простить за такие вопросы, я с линуксом только начал свое знакомство.

    Reply
  49. oldcopy

    Вводом в консоли от имени суперпользователя или через sudo.

    Reply
  50. Robbi

    Отличная статья

    Но не очень понял про apache.

    Связка ведь не будет работать с wsap22.so если поставили 1С 32 bit

    Reply
  51. oldcopy

    (50) Не будет, нужен и apache 32-бит.

    Reply
  52. BadMadJohn

    Команда systemctl enable postgresql помогла.

    Кстати попробовал поставить версию postgresql 9.5, она тоже не заводится при загрузке.

    Так же вылечилось вводом systemctl enable postgresql.

    Reply
  53. ZevS

    Кстати вместо танцев с бубном вокруг libgsf-1-114, достаточно просто ввести

    sudo apt-get install libgsf-bin

    он там в библиотеке есть и установится сразу из Убунты

    Reply
  54. user760028

    Доброе время суток. Подскажите как одновременно поставить 32x и 64x сервер одновременно и именно одно и того же релиза. ос Ubuntu server 16.04.2 x64 1с 8.3.9

    Reply
  55. Alex2521

    Отличная статья, собрал связку Ubuntu16.04.2 + PostgreSQL 9.6.3. + 1C Сервер, пол года работает как часы.

    Reply
  56. maxx

    Тоже вопрос остался если ставим сервер 1С 32 битный на 64 Ubuntu, то какой и как надо ставить Apache (32 или 64) , что опубликовать базу 1С

    Reply
  57. der_mensch

    (56)Без разницы, это независящие друг от друга экосистемы. У меня обслуживается серв на центосе, там 64-битные сервер предприятия и апач, а другой серв — на винде, там 64-битный сервер предприятия и 32-битный апач.

    Reply
  58. oldcopy

    (57) Да нет, разница есть. Разрядность Апача и библиотеки wsap22 (wsap24) должны совпадать. На винде такие фокусы реализуются проще, в Линуксе надо смотреть, что там по зависимостям требуется.

    Reply
  59. oldcopy

    В общем посмотрел. Если в Windows wsap2x.dll входит в состав клиентской платформы, т.е. при условии того, что стоит сервер 64-бита и платформа 32-бита связка Сервер 64 + Апач 32 будет нормально работать.

    В Linux пакет 1c-enterprise83-ws требует 1c-enterprise83-common, его же требует и сервер. Т.е. для связки Сервер 32 и Апач 64 (иные варианты для Linux не имеют смысла) нужно установить две версии 1c-enterprise83-common — i386 и amd64, в теории должно работать. Но могут быть и фокусы, в зависимости от того, насколько корректно 1С будет работать с такой конфигурацией. В общем надо пробовать.

    Reply
  60. der_mensch

    (58)Да, по библиотекам момент упустил.

    Reply
  61. igee12

    (59), ну как, пробовали?

    Reply
  62. t72mityai

    День добрый, подскажите чайнику, пытаюсь скачать 1С командой wget https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.10.2639&path=Platform8_3_10_2639server.deb32.tar.gz скачивается «version_file?nick=Platform83&ver=8.3.10.2639&path=Platform8_3_10_2639server.deb32.tar.gz», что не так?

    Reply
  63. oldcopy

    (62) Вообще-то живая ссылка там совсем другая:

    https://dl03.1c.ru/public/file/get/id

    где id — длинный такой цифробуквенный «хвост».

    Reply
  64. t72mityai

    (63) Большое спасибо, а как узнать id?

    Reply
  65. oldcopy

    (65) А потом кто-то сделает:

    apt-get upgrade 

    и будет очень весело…

    Если уж советуете подключить репозиторий от другого выпуска, то советуйте грамотно, например, через apt-pinning.

    Кроме того, Postgres от 1C требует именно определенную версию пакета и с libicu55 нормально работать не будет. Поэтому проще взять пакет из репозитория, скажем отсюда: http://archive.ubuntu.com/ubuntu/pool/main/i/icu/

    Reply
  66. olezhe

    (66) Вы правы.

    Я уже сам сделал

    apt-get upgrade 

    Хотя сломалось у меня другое, а именно postgresql 10.

    После этого я использовал совет отсюда: https://1c-programmer-blog.ru/platforma/ustanovka-servera-1s-i-postgresql-na-ubuntu-server.html

    Вот он:

    Раньше пакет «postgresql-common» входил в состав дистрибутива который размещался на сайте «1С», теперь же (начиная с PostgreSQL 9.6.3-1.1C) этот пакет нужно устанавливать из стандартных репозиториев.

    Тут возникает небольшое затруднение, связанное с тем, что мы устанавливаем PostgreSQL 10: на данный момент стандартный репозиторий содержит неподходящую для PostgreSQL 10 версию пакета «postgresql-common».

    Чтобы исправить это нужно создать файл /etc/apt/sources.list.d/pgdg.list и записать в него строку, для Ubuntu 16.04:

    deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

    для Ubuntu 18.04:

    deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

    Затем нужно выполнить следующие команды:

    wget —quiet -O — https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add —

    sudo apt-get update

    После этого можно установить нужную нам версию пакета «postgresql-common»:

    sudo apt-get install postgresql-common

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *