Публикация базы 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.
Создание виртуального хоста
- Создайте новый конфигурационный файл для виртуального хоста:
sudo nano /etc/apache2/sites-available/1c.conf
- Добавьте следующий контент в файл:
<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>
- Активируйте виртуальный хост:
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С.
- Перейдите в каталог, где будет размещена база данных:
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
Настройте права доступа:
- Настройте права доступа:
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