Установка 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

См. также

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

Внешняя обработка, подходит для любых конфигураций. Поддерживает apache и iis! Публикуйте базы легко и просто!

1 стартмани

22.11.2024    1431    30    Rafael-87    34    

31

Администрирование веб-серверов Сервера Системный администратор Программист Абонемент ($m)

WEB приложение для управления сеансами сервера 1С, имеет адаптивный web интерфейс. Возможности: удаление сеансов; завершение rphost процессов; запуск службы 1С сервера (если остановлена). Используется авторизация BasicAuth с защитой от брутфорса. Поддерживает работу по http https протоколам.

1 стартмани

08.11.2024    553    7    gortrex    2    

3

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

Ошибка 1С веб-сервис IIS. Ошибка доступа к файлу...183(0x000000B7) Невозможно создать файл, так как он уже существует.

27.09.2024    731    California_Dreaming    0    

3

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

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

09.05.2024    2523    artemusII    1    

10

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

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

06.05.2024    1803    lostcay    0    

6

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    1492    1    0    

9

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

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

1 стартмани

07.04.2023    20994    VPanin56    54    

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

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

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

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

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

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

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

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

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