Установка Apache на РедОС и публикация 1С по протоколу http

25.04.24

Администрирование - Администрирование веб-серверов

Статья описывает алгоритм установки, настройки и "сопряжения" с 1С веб-сервера Apache на РедОС. Статья, может, будет полезна тем, кто ищет в сети работающие алгоритмы установки веб-сервера и публикации на нем информационных баз 1С в контуре операционной системы РедОС. Помимо этого в статье рассмотрены некоторые спорные моменты, для анализа которых не удалось найти достаточно информации в сети.
Всем привет.
Хочу поделиться алгоритмом установки, настройки и сопряжения с 1С веб-сервера Apache на РедОС. Попутно попробую описать некоторые неочевидные моменты, о которые я набил шишки. Отмечу, что в Интернете много источников с описанием похожих алгоритмов, но мне так и не удалось найти тот, который на 100% отработал бы у меня – всегда один-два-несколько шагов отказывались вести себя согласно описанию. Поэтому решил создать свой. Заранее приношу извинения, если своими непрофессиональными терминами или фразами вызову глазные конвульсии у дорогих читателей. Ведь я 1С-ник и в навыках администрирования ОС, а тем более Linux, нахожусь пока в стадии любознательного эмбриона.
 
Итак, вводные:
 
  1. Есть сервер «srv******-linux» с развернутой ОС РедОС Муром 7.3.
  2. Есть мой ПК с Windows
  3. И есть задача: развернуть на сервере из п.1 веб-сервер Apache и опубликовать на нем базу 1С.
 
Решение:
 
  1. Нулевым шагом удаляю предыдущий установленный Apache, если он есть. Для этого последовательно выполняю несколько команд.
*Если выполнить только remove, то в системе останутся связанные файлы, которые могут мешать новой установке):
 
dnf remove httpd.x86_64     – удаляем основной пакет
dnf autoremove                    – удаляем зависимости
whereis httpd                        – проверяем оставшиеся зависимости
rm –rf <папки>                    – удаляем оставшиеся, выведенные на предыдущем шаге вручную
 
* Неочевидный момент: недостаточно, по-крайней мере у меня так было, удалять/устанавливать по названию пакета «httpd». Мне пришлось указать полное наименование пакета «httpd.x86_64»
 
  1. Ищу в репозитории пакет Apache для установки по имени «httpd».
*Да, именно «httpd», а не «apache». Ведь, как оказалось, это одно и то же. Просто, в ОС на RedHat прижилось название, которое использовали для краткости «http daemon» -> httpd, а ОС на Debian – apache. Неразбериха…
 
dnf search httpd
 
В результате найдено два пакета: 32х и 64х-разрядные
 
 
  1. Ставлю 64х-разрядный, на вопросы установщика отвечая “y”.
dnf install httpd.x86_64
 
  1. Открываю (если не открыт) для доступа с моего ПК порт на сервере, указанный в конфигурационном файле Apache. Для определения порта открываю конфигурационный файл:
 
cat /etc/httpd/conf/httpd.conf – на чтение, если просто узнать порт
nano /etc/httpd/conf/httpd.conf – на редактирование, если нужно прописать определенный порт
 
ищу строку “Listen…”
 
 
  1. Добавляю службу Apache в автозагрузку, запускаю и проверяю статус
systemctl enable httpd.service
systemctl start httpd.service
systemctl status httpd.service
 
 
  1. Проверяю работоспособоность Apache по обращению через браузер. Для этого в браузере на моем ПК пробую открыть страницу с адресом
http://<имя сервера, на котором развернут Apache>/
 
Если страничка отобразит что-то подобное, то Apache установлен корректно и порт открыт
 
 
  1. Ставлю коннектор 1С (компонент WS из дистрибутива платформы 1С). Нужен для публикации базы 1С.
 
chmod +x setup-full-8.3.23.2040-x86_64.run
./setup-full-8.3.23.2040-x86_64.run --mode unattended --disable-components client_full --enable-components ws
 
  1. Создаю папку для файла параметров подключения Apache к базе 1С. В моем случае база называется H******K.
 
mkdir /var/www/Enterprise1C
mkdir /var/www/Enterprise1C/H******K
 
  1. Создаю отдельную папку conf.1c и помещаю в нее пустой конфигурационный файл публикуемой базы
 
mkdir /etc/httpd/conf.1c
touch /etc/httpd/conf.1c/H******K.conf
 
  1. Настраиваю автоподключение файлов в основном конфигурационном файле Apache «httpd.conf». Для этого останавливаю службу Apache, открываю файл на редактирование, добавляю в конец файла строки и снова запускаю службу Apache.
systemctl stop httpd.service
nano /etc/httpd/conf/httpd.conf
 
 
systemctl start httpd.service
 
  1. Публикую базу с помощью инструмента webinst из папки с платформой 1С. При публикации использую ряд подготовленных параметров:
wsdir           - имя публикации (имя базы на сервере) – у меня «H******K»
dir               - каталог для коннектора 1С – у меня «/var/www/Enterprise1C/H******K»
connstr        - строка подключения к базе 1С – у меня «"Srvr=srv******;Ref=H******K"»(обращаю внимание, что синтаксис немного отличается от строки подключения в списке баз при открытии ярлыка 1С, плюс важен вид кавычек – именно «""»)
confPath     путь к файлу параметров взаимодействия Apache с 1С – у меня тот созданный пустой файл «/etc/httpd/conf.1c/H******K.conf»
 
Для указания одного из параметров инструмента публикации webinst выясняю версию Apache
 
httpd v
 
у меня оказалась 2.4, в зависимости от версии указываем параметр apache2, apache22 или apache24
заходим в каталог платформы 1С и выполняем публикацию
 
cd /opt/1cv8/x86_64/8.3.23.2040
 
./webinst -publish –apache24 -wsdir H******K -dir /var/www/Enterprise1C/H******K -connstr "Srvr=srv******;Ref=H******K" -confPath /etc/httpd/conf.1c/H******K.conf
 
В результате в папке «/var/www/Enterprise1C/H******K» появится файл «default.vrd» и будет заполнен ранее пустой файл «etc/httpd/conf.1c/H******K.conf»
 
  1. Проверяю публикацию. Для этого захожу на своем ПК в браузер и открываю страницу по пути «http://srv******-linux/H******K/». Если база открылась в веб-режиме, то публикация прошла успешно.
     
  2. Если при проверке страница зависает или выводится сообщение

    Connection error
    by reason:
    server_addr=tcp//****************; Permission denied...

    То необходимо на сервере с Apache отключить SELinux. Для этого в  конфигурационном файле SELinux нужно изменить параметр «SELINUX=»

    nano /etc/selinux/config



    И перезагрузить сервер.
Надеюсь, что материал статьи окажется кому-то полезным и позволит сэкономить драгоценное время.

Ред ОС Apache веб-сервер httpd

См. также

Настройка работы 1C и Apache по протоколу https на РедОС (nginx)

Администрирование веб-серверов Системный администратор Бесплатно (free)

В материале описан порядок действий по настройке Apache для работы по защищенному протоколу HTTPS c 1С на операционной системе РедОС с выпуском сертификата SSL.

09.05.2024    1162    artemusII    1    

9

Публикация на Open Server Panel

Администрирование веб-серверов Системный администратор Программист Бесплатно (free)

Инструкция, как опубликовать веб-сервис с помощью OSPanel.

06.05.2024    791    lostcay    0    

5

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    15070    VPanin56    46    

77

Публикатор 1С. Как публиковать базы с комфортом

Администрирование веб-серверов Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.03.2023    7357    85    Segate    5    

27

Midnight Commander, установленный с Entware, не выполняет команды и не запускает файлы

Администрирование веб-серверов Linux Системный администратор Программист Бесплатно (free)

Столкнулся с проблемой, установил на роутер Midnigt Commander с репозитория Entware, при попытке выполнения команды программа пишет ошибку "The shell is already running a command". Данная публикация описывает способ решения этой проблемы.

20.03.2023    3733    Eugen-S    2    

3

Контейнер Docker для размещения публикации базы 1С на разных платформах

Администрирование веб-серверов Системный администратор Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Появилась необходимость развернуть на одном хосте две публикации базы, но не на одной платформе, а на разных. Тут я расскажу, как это сделать для версии 8.3.22.1704.

02.02.2023    3871    Sney_Kice    1    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nomad_irk 76 25.04.24 09:46 Сейчас в теме
Не хватает про включение SSL и доменную авторизацию :)
4. artemusII 36 25.04.24 11:29 Сейчас в теме
(1) В планах, обязательно будет!
user2003281; +1 Ответить
2. starik-2005 3051 25.04.24 10:25 Сейчас в теме
1. А зачем удалять старый апач?
2. А зачем run-файл делать исполняемым? Просто sh blabla...run.
3. Опубликовать можно прям из конфигуратора, как в винде.
4. Ну и 80-й порт - это стандартный порт. Зачем лезть в конфиги, чтобы его посмотреть? Лезть в конфиги нужно для того, чтобы его поменять. Ну и всегда есть netstat -tl (ну или вообще netstat -ltnop, чтобы по полной).
Torin; kuntashov; +2 Ответить
5. artemusII 36 25.04.24 11:53 Сейчас в теме
(2)
А зачем удалять старый апач?

Скорее всего для опытных специалистов это действие лишнее, но в моем случая я в какой-то момент случайно удалил каталог /etc/httpd/. При переустановке пакета каталог почему-то не восстанавливался. В итоге помогло только "тотальное" удаление. Поэтому для надежности я теперь при установке буду удалять прошлую версию.

(2)
2. А зачем run-файл делать исполняемым? Просто sh blabla...run.

Тоже, пока не хватает углубленных знаний, выполняю для "надежности". Ведь эта команда не мешает, но на практике в какие-то моменты ее не хватало:)

(2)
Опубликовать можно прям из конфигуратора, как в винде

Да верно, НО... Во-первых, в дальнейшем планирую полностью отказаться от Windows, а во-вторых - хочу уметь все действия выполнять через консоль.

(2)
Ну и 80-й порт - это стандартный порт. Зачем лезть в конфиги, чтобы его посмотреть

Тоже, пока не хватает углубленных знаний, выполняю для "надежности" :) заодно, это действие напоминает, что нужно проверить доступность порта.
3. kuntashov 449 25.04.24 10:45 Сейчас в теме
Тоже не очень понял трюка с удалением )
6. cheshirshik 65 02.05.24 09:54 Сейчас в теме
А где https? Где включение отладки на сервере?
7. artemusII 36 02.05.24 20:28 Сейчас в теме
(6) «А где https?»
Это в процессе

«Где включение отладки на сервере»
Этого материала полно в сети. Но, если очень нужно, то могу и по включению отладки опубликовать материал)
8. cheshirshik 65 02.05.24 20:37 Сейчас в теме
(7) не полная инструкция.
Оставьте свое сообщение