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

Подготовка сервера

1. Установка необходимого ПО

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

  • Apache — веб-сервер.
  • PHP — для обработки скриптов.
  • 1С:Предприятие — серверная часть 1С.

Установим Apache и PHP:

sudo apt update
sudo apt install apache2 php libapache2-mod-php

2. Установка сервера 1С:Предприятие

Если сервер 1С:Предприятие еще не установлен ознакомится с кго установкой можно в статье

3. Настройка Apache для работы с 1С

Для того чтобы Apache мог работать с базой 1С, необходимо настроить виртуальный хост и модуль mod_php.

Создание виртуального хоста

  1. Создайте новый конфигурационный файл для виртуального хоста:
sudo nano /etc/apache2/sites-available/1c.conf
  1. Добавьте следующий контент в файл:
<VirtualHost *:80>
    ServerAdmin admin@example_2.com
    ServerName 1c.example_2.com
    ServerAlias www.1c.example_2.com
    DocumentRoot /var/www/html/1с
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias "/1с" "/var/www/html/1с/"
<Directory "/var/www/html/1с/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/html/1с/default.vrd"
</Directory>
</VirtualHost>
  1. Активируйте виртуальный хост:
sudo a2ensite 1c.conf
sudo systemctl reload apache2

Настройка модуля PHP

Убедитесь, что модуль mod_php включен:

sudo a2enmod php7.4
sudo systemctl restart apache2

Включение поддержки 1с в apache

Создаем файл конфигурации модуля для 1с

sudo nano /etc/apache2/mods-enabled/1c.load

#1c load
LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.25.1374/wsap24.so"

4. Публикация базы 1С

Теперь, когда веб-сервер настроен, можно приступить к публикации базы 1С.

  1. Перейдите в каталог, где будет размещена база данных:
sudo mkdir -p /var/www/html/1с
sudo chown -R www-data:www-data /var/www/html/1с

Заведем файл конфигурации 1с

nano /var/www/html/1с/default.vrd

<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                base="/rtd"
                ib="Srvr=172.16.0.249;Ref=1c;">
        <ws pointEnableCommon="true"/>
        <standardOdata enable="false"
                        reuseSessions="autouse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
        <analytics enable="true"/>
</point>

Srvr=172.16.0.249 это у нас ip адрес сервера 1с

Ref=1c это у нас название базы которую мы публикуем

Так же для корректной работы 1с необходимо добавить запись в ваш dns сервер 172.16.0.249 на запись 1c.example_2.com

Настройте права доступа:

  1. Настройте права доступа:
sudo chmod  750 /var/www/html/1с

Включение птодержки ssl в apache

Для поддержки https будем использовать самоподписывающийся сертификат

Заведем папку где будет лежать сертификат

sudo mkdir /etc/apache2/ssl

И создадим сертификат

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/apache2/ssl/1c.example_2.com.key -out /etc/apache2/ssl/1c.example_2.com.crt

Создайте новый конфигурационный файл для виртуального хоста с поддержкой ssl

sudo nano /etc/apache2/sites-available/1c-ssl.conf

Добавьте следующий контент в файл:

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin webmaster@localhost
                ServerName 1c.example_2.com
                DocumentRoot /var/www/html/1c

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile /etc/apache2/ssl/1c.example_2.com.crt
                SSLCertificateKeyFile /etc/apache2/ssl/1c.example_2.com.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
                <Directory "/var/www/html/1c/">
                AllowOverride All
                Options None
                Require all granted
                SetHandler 1c-application
                ManagedApplicationDescriptor "/var/www/html/1c/default.vrd"
</Directory>

        </VirtualHost>
</IfModule>

Включение поддержки ssl в apache2

a2enmod ssl

Включение виртуального хоста

a2ensite 1c-ssl.conf