Целью этой работы является обобщение методов установки и настройки 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:\Windows\System32\drivers\etc\hosts необходимо добавить строку, указанную выше, например:
192.168.0.111 test.example.com test
При создании информационной базы в консоли Администрирования 1С Серверов в качестве сервера базы данных желательно указывать localhost (допустимо указывать hostname машины, на которой запущен PostgreSQL и 1С Сервер, и который прописан в файле C:\Windows\System32\drivers\etc\hosts). Данная рекомендация действительна только для случая, когда 1С Сервер и PostgreSQL находятся на одной машине. В противном случае вместо localhost необходимо указывать hostname машины, на которой установлен PostgreSQL.
При подключении к созданной информационной базе в качестве кластера серверов желательно указывать hostname машины, на которой запущен 1С Сервер и который прописан в файле C:\Windows\System32\drivers\etc\hosts (для 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 завершаем.