Автор Тема: httpd2 проблема с доступом к конфигам виртуальных серверов.  (Прочитано 257 раз)

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 129
Здравствуйте.
Есть ALT Server 10.4. Устанавливаю ВЭБ-сервер "Консультант+". Собственно К+ зарегистрирован и работает. Нет доступа к нему по ВЭБ. Настройка по документации от производителя слово-в-слово. Однако по какой-то причине служба вэб-сервера не может прочитать конфиг виртуального сервера. Права на конфиг, доступный по ссылке, установлены как и для других подобных:
lrwxrwxrwx  1 root root   30 дек 29 11:45 online.conf -> ../sites-available/online.conf
drwxr-xr-x 18 root root 4096 сен 19 09:24 ../
lrwxrwxrwx  1 root root   37 фев 19  2025 000-default_https.conf -> ../sites-available/default_https.conf
lrwxrwxrwx  1 root root   33 фев 19  2025 ports_all.conf -> ../sites-available/ports_all.conf
lrwxrwxrwx  1 root root   31 фев 19  2025 000-default.conf -> ../sites-available/default.conf
Что ему не нравится не понятно.
Ругается, что не может прочитать данный конфиг.
....httpd2: Syntax error on line 174 of /etc/httpd2/conf/httpd2.conf: Could not open configuration file /etc/httpd2/conf/sites-enabled/online.conf: No such file or directory
Проверяю доступность файла от имени, от которого запускается собственно Апач:
#su - apache2 -s /bin/bash
-bash-4.4$ cat /home/consultant/ONLINE/cons/SYSTEM/online.conf
<VirtualHost *:8000>

ServerAdmin admin@site.ru

#Корневая директория ресурса онлайн-версии
DocumentRoot /home/consultant/ONLINE/cons
<Directory "/home/consultant/ONLINE/cons">
    Require all granted
</Directory>

#Перенаправление на online.cgi только запросов к online.cgi
#Все статические файлы будут обрабатываться самим apache2
ProxyPreserveHost On
ProxyPass /cgi/online.cgi http://127.0.0.1:8081/cgi/online.cgi


#Настройка стандартных потоков вывода и ошибок в стандартные файлы apache
ErrorLog /var/log/httpd2/error.log
CustomLog /var/log/httpd2/access.log combined
</VirtualHost>
Читается нормально.

Подскажите пожалуйста в какую сторону рыть?
Спасибо.

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 100
lrwxrwxrwx  1 root root   30 дек 29 11:45 online.conf -> ../sites-available/online.conf
drwxr-xr-x 18 root root 4096 сен 19 09:24 ../
lrwxrwxrwx  1 root root   37 фев 19  2025 000-default_https.conf -> ../sites-available/default_https.conf
lrwxrwxrwx  1 root root   33 фев 19  2025 ports_all.conf -> ../sites-available/ports_all.conf
lrwxrwxrwx  1 root root   31 фев 19  2025 000-default.conf -> ../sites-available/default.conf

Это вы показываете права на симлинки.
Посмотрите права на самих файлах, куда симлинки показывают.
« Последнее редактирование: 30.12.2025 08:55:54 от fraks »

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 100
....httpd2: Syntax error on line 174 of /etc/httpd2/conf/httpd2.conf:

Вот же он пишет почему не может прочитать.
Синтаксическая ошибка в файле  /etc/httpd2/conf/httpd2.conf в строке 174.

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 129
Вот же он пишет почему не может прочитать.
Синтаксическая ошибка в файле  /etc/httpd2/conf/httpd2.conf в строке 174.
В 174-й строке конфига прописана папка с конфигами динамически добавляемых виртуальных серверов:
Include conf/sites-enabled/*.confАпач не может прочитать конфиг online.conf веб версии "Консультант+".
В реальности файл online.conf выглядит так:
# ll /home/consultant/ONLINE/cons/SYSTEM/online.conf
-rwxrwxr-x+ 1 consultant consultant 802 дек 29 14:34 /home/consultant/ONLINE/cons/SYSTEM/online.conf

У Апача достаточно реальных прав на чтение конфигурационного файла.

Куда ему стукнуть? Или как проверить доступность конфигов для апача?
Спасибо за внимание.
#su - apache2 -s /bin/bash
-bash-4.4$ cat /home/consultant/ONLINE/cons/SYSTEM/online.conf
<VirtualHost *:8000>

ServerAdmin nagornyj.an@sud.kchgov.ru

#Корневая директория ресурса онлайн-версии
DocumentRoot /mnt/samba/share/cons/consultant/ONLINE/cons
<Directory "/mnt/samba/share/cons/consultant/ONLINE/cons">
    Require all granted
</Directory>

#Перенаправление на online.cgi только запросов к online.cgi
#Все статические файлы будут обрабатываться самим apache2
ProxyPreserveHost On
ProxyPass /cgi/online.cgi http://127.0.0.1:8081/cgi/online.cgi


#Настройка стандартных потоков вывода и ошибок в стандартные файлы apache
ErrorLog /var/log/httpd2/error.log
CustomLog /var/log/httpd2/access.log combined
</VirtualHost>
-bash-4.4$

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 100
при загрузке конфигов из

Include conf/sites-enabled/*.conf

lrwxrwxrwx  1 root root   30 дек 29 11:45 online.conf -> ../sites-available/online.conf


Судя по этому линку он пытается прочитать файл по такому пути

/etc/httpd2/conf/sites-enabled/online.conf -> ../sites-available/online.conf

Не понял как апач должен добраться до файла

/home/consultant/ONLINE/cons/SYSTEM/online.conf

Кроме того, у вас там такой текст конфига проглядывает
#su - apache2 -s /bin/bash
-bash-4.4$ cat /home/consultant/ONLINE/cons/SYSTEM/online.conf
<VirtualHost *:8000>

ServerAdmin nagornyj.an@sud.kchgov.ru

#Корневая директория ресурса онлайн-версии
DocumentRoot /mnt/samba/share/cons/consultant/ONLINE/cons
<Directory "/mnt/samba/share/cons/consultant/ONLINE/cons">
    Require all granted
</Directory>
...

Апач точно может из примонтированных папок контент выдавать?

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 129
В реальности папка на /mnt/samba/share/cons/consultant/, но она виртуально примонтирована /home/consultant/
Смена путей ничего не даёт. И не может по идее дать. Для этого и придумали в линуксе такую "файловую" систему.
#su - apache2 -s /bin/bash - этим я показал, что процесс апача имеет все возможности для доступа к содержимому конфигурационного файла.
Буду рад любой конструктивной критике и полезной информации.
Спасибо за внимание.

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 100
#su - apache2 -s /bin/bash - этим я показал, что процесс апача имеет все возможности для доступа к содержимому конфигурационного файла.

То что процесс имеет возможность, не гарантирует того что он будет этот делать.
К примеру, настройка апача FollowSymlinks разрешает/запрещает ходить по симлинкам, хоть это апачу и доступно.
Не удивлюсь что есть настройка запрещающая брать файлы не из локальных дисков.
« Последнее редактирование: 03.01.2026 01:34:46 от fraks »

Оффлайн DiarIgesVolos

  • Участник
  • *
  • Сообщений: 1
Коллеги, тут проблема не в правах и не в содержимом конфига, а в "пути", по которому Apache пытается его открыть.

Apache ругается конкретно на это:

"Could not open configuration file /etc/httpd2/conf/sites-enabled/online.conf: No such file or directory"

При этом вы проверяете другой файл:

"/home/consultant/ONLINE/cons/SYSTEM/online.conf"

Это не один и тот же путь.

Что происходит на самом деле

1. В (/etc/httpd2/conf/httpd2.conf) (или через Include) подключается:

   (/etc/httpd2/conf/sites-enabled/online.conf)

2. В (sites-enabled) у вас симлинк:

   (online.conf -> ../sites-available/online.conf)

3. Но:

- либо файла (/etc/httpd2/conf/sites-available/online.conf) физически не существует
- либо симлинк битый
- либо Apache не видит путь из-за ошибок в каталоге выше

Apache не читает (/home/consultant/... напрямую — он читает только то, что подключено через Include).

Почему "cat" от имени apache2 ничего не доказывает

Вы проверили:

(cat /home/consultant/ONLINE/cons/SYSTEM/online.conf)

Это лишь показывает, что:

- файл существует
- пользователь `apache2` может его читать

Но Apache не знает об этом файле, пока он не лежит (или не подключён) в (sites-available / sites-enabled).

Что проверить пошагово

1. Проверьте реальный файл:

   (bash
   ls -l /etc/httpd2/conf/sites-available/online.conf
   )

2. Проверьте симлинк:

   (bash
   ls -l /etc/httpd2/conf/sites-enabled/online.conf
   )

3. Если файла нет — скопируйте или переместите конфиг:

   (bash
   cp /home/consultant/ONLINE/cons/SYSTEM/online.conf \
      /etc/httpd2/conf/sites-available/online.conf
   )

4. Убедитесь, что каталог доступен Apache:

   (bash
   namei -l /etc/httpd2/conf/sites-available/online.conf
   )

5. Проверка конфига:

   (bash
   apachectl -t
   )

Дополнительно (частая ошибка в ALT)

В ALT Linux `httpd2` жёстко ограничен AppArmor/SELinux-политиками, если они включены.
Если файл лежит вне стандартных путей "/etc/httpd2/" — Apache его просто не видит, даже при "777".

Поэтому все виртуальные хосты должны лежать в (/etc/httpd2/conf/sites-available).

  • - Ошибка не про права
    - Apache не находит файл по ожидаемому пути
    - "cat" из "/home/..." — нерелевантен

Решение: положить "online.conf" в "sites-available" и проверить симлинк

Если нужно — могу подсказать правильную схему для К+ под ALT Server 10.4 с учётом их веб-обвязки.
Ready VPS - ready-vps.com - Инфраструктура под задачи любого масштаба. Услуги: - VDS/VPS на SSD или NVMe — на выбор, под нагрузку - Виртуальный хостинг — для лендингов и небольших проектов. География: - Дата-центры TIER-III в Европе - Выбор локации под вашу аудиторию - Низкий пинг + соответствие локальным требованиям к данным (GDPR и др.)

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 129
Создал симлинк вручную и проверил доступность:
# ll /etc/httpd2/conf/sites-available/online.conf
lrwxrwxrwx 1 root root 47 дек 29 11:44 /etc/httpd2/conf/sites-available/online.conf -> /home/consultant/ONLINE/cons/SYSTEM/online.conf

# ll /etc/httpd2/conf/sites-enabled/online.conf
lrwxrwxrwx 1 root root 47 янв 12 11:52 /etc/httpd2/conf/sites-enabled/online.conf -> /home/consultant/ONLINE/cons/SYSTEM/online.conf


# namei -l /etc/httpd2/conf/sites-available/online.conf
f: /etc/httpd2/conf/sites-available/online.conf
drwxr-xr-x root       root       /
drwxr-xr-x root       root       etc
drwxr-xr-x root       root       httpd2
drwxr-xr-x root       root       conf
drwxr-xr-x root       root       sites-available
lrwxrwxrwx root       root       online.conf -> /home/consultant/ONLINE/cons/SYSTEM/online.conf
drwxr-xr-x root       root         /
drwxr-xr-x root       root         home
drwxrwxr-x consultant consultant   consultant
drwxrwxr-x consultant consultant   ONLINE
drwxrwxr-x consultant consultant   cons
drwxrwxr-x consultant consultant   SYSTEM
-rwxrwxr-x consultant consultant   online.conf

Апач таки не запускается:
httpd2: Syntax error on line 174 of /etc/httpd2/conf/httpd2.conf: Could not open configuration file /etc/httpd2/conf/sites-enabled/online.conf: No such file or directory
# cat /etc/httpd2/conf/sites-enabled/online.conf
<VirtualHost *:8000>

ServerAdmin nagornyj.an@sud.kchgov.ru

#Корневая директория ресурса онлайн-версии
DocumentRoot /mnt/samba/share/cons/consultant/ONLINE/cons
<Directory "/mnt/samba/share/cons/consultant/ONLINE/cons">
    Require all granted
</Directory>

#Перенаправление на online.cgi только запросов к online.cgi
#Все статические файлы будут обрабатываться самим apache2
ProxyPreserveHost On
ProxyPass /cgi/online.cgi http://127.0.0.1:8081/cgi/online.cgi


#Настройка стандартных потоков вывода и ошибок в стандартные файлы apache
ErrorLog /var/log/httpd2/error.log
CustomLog /var/log/httpd2/access.log combined
</VirtualHost>

В 174-й строке /etc/httpd2/conf/httpd2.conf соответственно:
Include conf/sites-enabled/*.conf
Звыняйте, но лыжи не едут....  8-| 8-| 8-|

Цитировать
Если нужно — могу подсказать правильную схему для К+ под ALT Server 10.4 с учётом их веб-обвязки.
Похоже, что это логичный выход из данной ситуации.
Огромное спасибо за терпение и внимание.

P.S. Скопировал (не ссылку) файл конфига online.conf в /etc/httpd2/conf/sites-enabled/. Апач запустился, но сервис http://192.168.1.2:8000/cgi/online.cgi?req=home&rnd=0.4605823249443454 503 Service Unavailable
No server is available to handle this request.
« Последнее редактирование: 12.01.2026 15:13:55 от AndreyNag »

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 100
P.S. Скопировал (не ссылку) файл конфига online.conf в /etc/httpd2/conf/sites-enabled/. Апач запустился,

Ну т.е. апач не берет конфигов которые лежат не в его папке, симлинки не прокатывают.

но сервис http://192.168.1.2:8000/cgi/online.cgi?req=home&rnd=0.4605823249443454 503 Service Unavailable
No server is available to handle this request.

Соответственно, я бы подложил по указанному пути дефолтный файл-затычку от апачевского сайта и посмотрел, может ли апач работать с файлами сайта которые лежат тоже как-то не локально.
Если работает - копать в сторону К+.
Если не работает - смотреть разницу в версиях апача, что было добавлено с тех пор как К+ под апачем работал, и наверняка там найдется что в чем-то усилили безопасность, и то что было  можно раньше - теперь нельзя. Ну и искать параметр у апача который снижает эту безопасность, возможно что такой добавили.
Искать такой параметр лучше в актуальной доке, т.к. в неактуальной этого параметра может еще не быть.

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 129
Постепенно продвигаюсь в решении вопроса.
Как оказалось ключевая служба выключена в процессе экспериментов. Отсутствовала ссылка на службу systemctl link /home/consultant/ONLINE/cons/SYSTEM/online-pool.targetВ общем с костылями, но К+ запустился.
Копаю дальше....  ;-D