Введение: Зачем нужна отдельная установка PostgreSQL для 1С?
Представь, что ты разворачиваешь сервер для 1С:Предприятие. Часто стандартный репозиторий Ubuntu предлагает не самую свежую версию PostgreSQL, а для стабильной работы 1С может потребоваться конкретная сборка, оптимизированная или рекомендованная разработчиками. Установка PostgreSQL с сайта 1С — это гарантия совместимости и часто более простой путь получения нужных версий библиотек. В этой статье мы разберем этот процесс от А до Я, попутно затронув основы установки сайта на Ubuntu и настройки веб-сервера Apache.
Подготовка сервера Ubuntu
Перед тем как начать установку PostgreSQL с сайта 1С, необходимо подготовить операционную систему. Базовая установка сайта на Ubuntu (в нашем случае — сервера приложений) начинается с обновления пакетов.
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl gnupg2 software-properties-common
Добавление репозитория PostgreSQL от 1С
1С предоставляет собственные репозитории с сертифицированными сборками СУБД. Это ключевой шаг для нашей задачи.
# Импортируем ключ репозитория
wget -qO - https://repo.1c.ru/1c_repo.key | sudo apt-key add -
# Добавляем репозиторий в систему (для Ubuntu 22.04 Jammy)
sudo sh -c "echo 'deb https://repo.1c.ru/distribs/1c/1c-ppa jammy main' > /etc/apt/sources.list.d/1c-ppa.list"
# Обновляем список пакетов
sudo apt update
lsb_release -cs.
Установка и базовая настройка PostgreSQL
Теперь можно установить саму СУБД. Мы выберем версию 15, которая на момент написания актуальна для большинства конфигураций 1С.
# Устанавливаем PostgreSQL 15 и клиентские утилиты
sudo apt install -y postgresql-15 postgresql-client-15
# Проверяем статус службы
sudo systemctl status postgresql@15-main.service
# Запускаем и добавляем в автозагрузку
sudo systemctl enable --now postgresql@15-main.service
Настройка аутентификации и создание пользователя для 1С
По умолчанию PostgreSQL использует peer-аутентификацию для локальных пользователей. Для удобства удаленного администрирования и работы 1С изменим метод на md5.
# Переходим под пользователя postgres
sudo -u postgres psql
-- В консоли PostgreSQL создаем пользователя и базу для 1С
CREATE USER user_1c WITH PASSWORD 'Ваш_Надежный_Пароль';
CREATE DATABASE db_1c OWNER user_1c ENCODING 'UTF8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8' TEMPLATE template0;
-- Даем все права пользователю на его базу
GRANT ALL PRIVILEGES ON DATABASE db_1c TO user_1c;
-- Выходим
\q
Теперь отредактируем основной конфигурационный файл, чтобы разрешить подключения.
# Резервное копирование конфига
sudo cp /etc/postgresql/15/main/pg_hba.conf /etc/postgresql/15/main/pg_hba.conf.backup
# Редактируем файл аутентификации
sudo nano /etc/postgresql/15/main/pg_hba.conf
Найди строки, начинающиеся с "local" и "host", и приведи их к следующему виду для локальных и сетевых подключений:
# TYPE DATABASE USER ADDRESS METHOD
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
# Для доступа из внутренней сети (при необходимости)
host all all 192.168.1.0/24 md5
Также нужно разрешить PostgreSQL слушать не только локальный интерфейс. Открой файл postgresql.conf:
sudo nano /etc/postgresql/15/main/postgresql.conf
Найди и раскомментируй/измени строку:
listen_addresses = 'localhost, 192.168.1.10' # Укажи IP твоего сервера
После всех изменений перезагрузи службу:
sudo systemctl restart postgresql@15-main.service
Apache: установка сайта на Ubuntu и интеграция
Если твоя инфраструктура подразумевает веб-доступ к сервисам 1С (например, через веб-клиент или HTTP-сервисы), потребуется Apache установка сайта (виртуального хоста). Apache часто используется как прокси или для раздачи статики.
# Устанавливаем Apache2
sudo apt install -y apache2
# Проверяем работу
sudo systemctl status apache2
# При необходимости открой порт 80/443 в фаерволе
sudo ufw allow 'Apache Full'
Базовый виртуальный хост для будущих сервисов
Создадим простой конфиг, который можно будет адаптировать под 1С или другие веб-приложения.
sudo nano /etc/apache2/sites-available/1c-server.conf
ServerName your-server-domain.com # Или IP-адрес
ServerAdmin admin@example.com
DocumentRoot /var/www/1c-server
ErrorLog ${APACHE_LOG_DIR}/1c-error.log
CustomLog ${APACHE_LOG_DIR}/1c-access.log combined
# Пример директивы для запрета доступа к служебным файлам БД
Options -Indexes
AllowOverride All
Require all granted
# Здесь позже можно добавить проксирование на сервер 1С:Предприятие
# ProxyPass / http://localhost:8080/
# ProxyPassReverse / http://localhost:8080/
Активируем сайт и перезагружаем Apache:
sudo a2ensite 1c-server.conf
sudo a2dissite 000-default.conf # Отключаем дефолтный сайт при необходимости
sudo systemctl reload apache2
Сравнение методов установки PostgreSQL
Давай подытожим, чем отличается установка из репозитория 1С от стандартного метода Ubuntu.
| Критерий | Репозиторий 1С | Стандартный репозиторий Ubuntu |
|---|---|---|
| Гарантия совместимости | Высокая (тестируется 1С) | Средняя/Низкая |
| Актуальность версий | Специфичные, стабильные для 1С | Общие, могут быть новее |
| Простота обновления | Через apt, централизованно |
Через apt |
| Наличие всех компонентов | Часто есть нужные расширения | Могут потребоваться доп. пакеты |
Часто задаваемые вопросы (FAQ)
Можно ли использовать эту инструкцию для установки сайта на Ubuntu под управлением 1С?
Да, эта инструкция создает инфраструктурную основу. После установки PostgreSQL и Apache ты можешь установить сервер 1С:Предприятие (например, из того же репозитория 1С командой sudo apt install 1c-enterprise-server), а затем настроить Apache в качестве reverse proxy для веб-клиента 1С, указав в конфиге виртуального хоста директивы ProxyPass на порт, который слушает сервер 1С (обычно 8080 или 1541).
Какие основные ошибки возникают при настройке соединения 1С с PostgreSQL?
- Ошибка аутентификации: Проверь
pg_hba.confи правильность пароля пользователя. - Сервер не слушает сетевые интерфейсы: Убедись, что в
postgresql.confпараметрlisten_addressesсодержит нужный IP или '*'. - Проблемы с локалью: При создании базы обязательно указывай локаль 'ru_RU.UTF-8', иначе возможны ошибки сортировки строк.
- Брандмауэр: Не забудь открыть порт PostgreSQL (по умолчанию 5432) в фаерволе, если подключение идет с другого хоста.
Что делать, если пакеты из репозитория 1С не находятся после добавления?
1. Убедись, что кодовое имя дистрибутива в файле sources.list.d/1c-ppa.list верное. 2. Попробуй очистить кэш apt: sudo apt clean && sudo apt update. 3. Проверь доступность репозитория вручную, перейдя в браузере по URL, указанному в файле списка источников. Возможно, для твоей версии ОС нужен другой путь.
Apache или Nginx — что лучше для 1С?
Оба варианта жизнеспособны. Apache традиционно используется в связке с 1С из-за простоты настройки модуля proxy. Nginx часто выбирают для высоконагруженных систем из-за его асинхронной архитектуры. Для большинства типовых задач установка сайта на Ubuntu с Apache будет проще и быстрее. Nginx потребует дополнительной настройки для проксирования динамического контента.
Заключение и дальнейшие шаги
Итак, мы прошли полный путь: от добавления репозитория 1С до установки PostgreSQL, ее настройки для работы с 1С и базовой подготовки веб-сервера Apache. Теперь у тебя есть готовый, изолированный сервер базы данных, который можно использовать для развертывания информационных баз 1С:Предприятие.
Следующими логичными шагами будут:
- Установка самого сервера 1С:Предприятие из того же репозитория.
- Создание информационной базы и настройка соединения с нашей PostgreSQL.
- Детальная настройка виртуального хоста Apache для проксирования запросов к веб-клиенту или HTTP-сервисам 1С.
- Настройка бэкапов базы данных (например, с помощью
pg_dumpи cron). - Оптимизация параметров PostgreSQL (
shared_buffers,work_mem) под ресурсы твоего сервера.
Такой подход обеспечивает стабильную, предсказуемую и хорошо интегрируемую среду для бизнес-приложений на платформе 1С.