LINUX.ORG.RU
ФорумAdmin

AltLinux apache2 не показывает страницу http://localhost/~test/

 


0

1

altlinux 10.4 рабочая станция

# apt-get install apache2
# a2enmod userdir
# systemctl enable --now httpd2
# systemctl start httpd2

В браузере вводим http://localhost, видим ‘It works!’ Создал юзера test с HOME=/home/test, поддиректорию public_html, и в ней простейшую страничку index.html. В браузере вводим http://localhost/~test или http://localhost/~test/index.html, получаем ‘Доступ запрещен’ и в /var/log/httpd2/error_log:

[Fri Feb 13 18:14:02.713011 2026] [core:error] [pid 4543:tid 4553] (13)Permission denied: [client 127.0.0.1:52878] AH00035: access to /~test/ denied (filesystem path '/home/test') because search permissions are missing on a component of the path

Вот права на директории и файл:

drwxr-xr-x 4 root root 4096 фев 13 17:48 /home
drwxr-xr-x 9 test test 4096 фев 13 17:51 /home/test
drwxr-xr-x 2 test test 4096 фев 13 18:33 /home/test/public_html
-rw-r--r-- 1 test test 198 фев 13 17:57 /home/test/public_html/index.html

И где тут ‘search permissions are missing on a component of the path’?

Перемещено hobbit из general



Последнее исправление: vicvol90 (всего исправлений: 6)

Хотел было обругать Alt, но оказалось, что он не виноват. Apache так не работает. По умолчанию в нём HTML файлы должны находиться в /var/www/html . Чтобы брать их из другой папки, Apache надо настроить. См.докуиентацию по Apache, что там написано про mod_userdir.Но это - не первоочнредная необходимость. Сначала надо почитать рекомендации про элементарную настройку Apache. Есть на русском языке.

Partisan ★★★★★
()
Ответ на: комментарий от Sylvia

Команды aa-status нет. Ни в $PATH, ни вообще в ОС. Судя по постам в Форуме AltLinux AppArmor есть в openSUSE и поддерживается в Ubuntu, но не в AltLinux, и, как пишет Модератор, поставить его нереально. SELinux тоже нет, нет конфига /etc/selinux/config, нет команд sestatus и setenforce. Да и зачем все это в Рабочей станции?

vicvol90
() автор топика
Ответ на: комментарий от Partisan

mod_userdir.so установлен (см.выше a2enmod userdir)

LoadModule userdir_module /usr/lib64/apache2/modules/mod_userdir.so
# Settings for user home directories
#
# Required module: mod_userdir

<IfModule userdir_module>
        #
        # UserDir: The name of the directory that is appended onto a user's home
        # directory if a ~user request is received.  Note that you must also set
        # the default access control for these directories, as in the example below.
        #
        UserDir public_html
        UserDir disabled root

        #
        # Control access to UserDir directories.  The following is an example
        # for a site where these directories are restricted to read-only.
        #
        <Directory "/home/*/public_html">
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

Я имел дело с apache2 в FreeBSD, новичок я только в Linux, тем более в AltLinux.

anonymous
()
Ответ на: комментарий от jura12

Пользователя и группы www-data в системе нет. Дочерние апачи бегут от apache2:apache2. Модуль userdir включен. Вообще весь конфиг собирается здесь из сложной мозаики кусочков, и при этом нет команды, которая показала бы весь конфиг, после всех include (идиотизм). apachectl -t -S DUMP_CONFIG, упомянутое где-то в результатах поиска, не работает. Но в данном конкретном случае несложно проследить: /etc/httpd2/conf/httpd2.conf:

Include conf/mods-enabled/*.load
Include conf/mods-enabled/*.conf
# ls -ld /etc/httpd2/conf/mods-enabled/userdir.load
lrwxrwxrwx 1 root root 30 фев 13 18:00 /etc/httpd2/conf/mods-enabled/userdir.load -> ../mods-available/userdir.load
# ls -ld /etc/httpd2/conf/mods-enabled/userdir.conf
lrwxrwxrwx 1 root root 30 фев 13 18:00 /etc/httpd2/conf/mods-enabled/userdir.conf -> ../mods-available/userdir.conf

Ну а ../mods-available/userdir.load и ../mods-available/userdir.conf я показывал выше. «Апач от пользователя плохо работает» - это чепуха. Что значит «плохо работает»? Либо работает, либо не работает. Во FreeBSD все работает - и userdir, и mod_rewrite, и виртуальный хостинг, и https, и suexec, … То, что происходит в AltLinux - это просто какой-то маразм. И это не единственный форум, где я задаю этот вопрос. К сожалению, на форуме AltLinux вообще не удалось зарегаться. В других местах не помогли. Аминь. Если бы не необходимость, ни в жизнь не стал бы связываться с AltLinux.

anonymous
()
Ответ на: комментарий от anonymous

К сожалению, на форуме AltLinux вообще не удалось зарегаться.

после регистрации надо просить в телеграмме чтоб твой ник активировали.

Во FreeBSD все работает - … и https

на Альт не работает certbot. и чинить они его не собираются.

Дочерние апачи бегут от apache2:apache2

вот и сделайте папки и файлы apache2:apache2

/etc/httpd2/conf/mods-enabled/userdir.conf

вот там проверьте чтобы папка назначения существовала и была с указанными правами.

в апаче надо читать логи. проверьте что пишут в папке /var/log/apache2/error.log . примерно так. если нет файлов логов то в конфиге надо прописать отдельной строкой.

«Апач от пользователя плохо работает» Что значит «плохо работает»? Либо работает, либо не работает.

я настраивал чтобы был http2 по специальной схеме . больше информации тут: Настройка Apache PHP для работы от пользователя по HTTP2

jura12 ★★★
()
Ответ на: комментарий от jura12

после регистрации надо просить в телеграмме чтоб твой ник активировали.

на нажатие ‘Зарегистрировать’ после ввода всех данных, капчи и решения арифметических примеров - никакой реакции, ни сообщений об ошибках, ни письма на заявленный имейл - ничего.

на Альт не работает certbot. и чинить они его не собираются.

Я пытаю http. Порт 443 пока даже не заявлен в Listen

вот и сделайте папки и файлы apache2:apache2

делал

вот там проверьте чтобы папка назначения существовала и была с указанными правами.

не понял. Все права в наличии, приводил в самом первом посте.

в апаче надо читать логи. проверьте что пишут в папке /var/log/apache2/error.log . примерно так. если нет файлов логов то в конфиге надо прописать отдельной строкой.

Логи я приводил еще в самом первом посте. Задавал все эти вопросы в чате своей компании, тоже никто помочь не может. В FreeBSD я много раз настраивал apache. Юзал userdir - это самое простое, виртуальный хостинг, mod_rewrite, suexec, HTTPS - все работало.

Смотреть конфиг, оказывается, можно так:

apachectl -DDUMP_DEBUG

(после -D нет пробела!) userdir конфиг там есть. Пробовал прямо в httpd2.conf включить LoadModule и весь конфиг userdir.conf - все то же. А на форум не записаться. Аминь.

vicvol90
() автор топика
Ответ на: комментарий от Sylvia

ALT Linux - это же rpm-based если не ошибаюсь? (sestatus) Значит проверять нужно SELinux политики. Можно временно отключить SELinux (setenforce 0), если заработало, включить обратно (setenforce 1), изменить контекст директории public_html.

axle_nix ★★
()
Последнее исправление: axle_nix (всего исправлений: 1)
Ответ на: комментарий от axle_nix

когда-то давно был rpm, наверное до сих пор и остается,
просто об apparmor/selinux бывают неожиданые запинки, если про них забывать, вот не прописали политики доступа к хомякам в профиль... легко

Sylvia ★★★★★
()
Последнее исправление: Sylvia (всего исправлений: 1)

да переходите уже на 11ю версию. Сроки поддержки в части обновлений по безопасности - для дистрибутивов «Альт Рабочая станция» 10 версий — 30 июня 2026. там может многое измениться.

jura12 ★★★
()
Ответ на: комментарий от jura12

Апач от пользователя плохо работает .

Апач от пользователя хорошо работает, если документацию читать. vicvol90.

    <IfModule mpm_itk_module>
        AssignUserId <user> <group>
    </IfModule>
И Апач соответствующий должен быть запущен: apache2-httpd-itk. Либо только этот пакет, без других вариантов apache2-httpd, либо через альтернативы должен быть выбран.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 3)
Ответ на: комментарий от AS

Апач от пользователя плохо работает .

Апач от пользователя хорошо работает, если документацию читать.

Вы недостаточно прониклись настройкой apache2. 1. http2 работает только при использовании mpm_event. А он не работает с mpm_itk. http1 устарел и медленно работает. 2. В документации про mpm_itk ничего не написано. Это добавка от пользователей.

jura12 ★★★
()
Ответ на: комментарий от AS

Проведи тесты и увидишь что http2 быстрее. Но вот http3 сомнителен. И апачи его пока не поддерживает.

Там ньюанс такой что mod_php работает быстрее чем php-fpm. И получается что http1 может быть быстрее http2.

jura12 ★★★
()
Последнее исправление: jura12 (всего исправлений: 1)
Ответ на: комментарий от jura12

Проведи тесты и увидишь что http2 быстрее.

Зачем? Если без теста не понять, какой в этом смысл? Оно, как бы, для восприятия человеком, а не для роботов.

А сайты тормозят больше от ненужных перекрёстных ссылок. Ага, всяких гуглесчётчиков, яндекс-анализаторов и т.п. Особенно когда ещё ТСПУ вмешается «ненавязчиво». Я тут на сайт Роскосмоса зашёл недавно и поржал от ссылки на ютуб, а ты «http2 быстрее». :-)

AS ★★★★★
()