Рейтинг:0

Решено: Apache не разрешает символические ссылки в /var/www.

флаг us

РЕШЕНИЕ (спасибо Дэну):

<Directory /var/www/exams>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

и

chmod -R 775 ~/Свилуппо
chown -R www-data ~/Sviluppo/mysite

ПЕРЕД РЕШЕНИЕМ

Я прочитал все остальные вопросы и не решил проблему. У меня есть сервер Ubuntu 21.10 с лампой (Apache 2.4.48). Я сделал символическую ссылку с помощью ln -s ~/Sviluppo/myWeb /var/www/myWeb и это нормально. Затем в apache сделал этот модуль:

    <VirtualHost *:80>
   ServerName myWeb
   DocumentRoot /var/www/myWeb/public
    <Directory /var/www/myWeb>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /error.log
    CustomLog /access.log combined
</VirtualHost>

И я включил его с помощью sudo a2ensite myWeb. Затем я установил привилегии с помощью

    sudo chown -R www-данные myWeb

Теперь у меня есть Запрещенный ошибка: у вас нет разрешения....

Но та же конфигурация работала у меня в Ubuntu 20.04. Кажется, что Apache не следует по символической ссылке!!! Что я могу проверить? Пока. Большое тебе спасибо.

флаг in
Это может быть связано с тем, что AppArmor блокирует доступ к каталогу, поскольку Apache ограничен ресурсами только в `/var/www` (несмотря на символическую ссылку). Если вы запустите `sudo systemctl disable apparmor` и перезапустите Apache, сможете ли вы правильно загрузить страницу? Если это так, вы можете изменить свой профиль AppArmor для Apache. Рекомендуется запустить AppArmor, если этот сервер подключен к Интернету, поэтому не оставляйте его выключенным слишком долго.
user2994206 avatar
флаг us
Большое спасибо за вашу помощь. Я отключил службу apparmor, но это не решило.
флаг ar
Пожалуйста, не указывайте РЕШЕНО в заголовке вопроса на этом сайте ответов на вопросы. Зеленой галочки ❑ достаточно. Вы можете ответить на свой вопрос ниже и пометить свой ответ как принятый ответ знаком ★ вместо ответа @Dan.
Рейтинг:1
флаг jp
Dan

В Apache 2.4 Заказ и позволять директивы были отменены в пользу Требовать директива.

В вашем случае вам нужно изменить две строки на следующие:

Требовать все предоставленные

Даже после внесения этого изменения убедитесь, что www-данные пользователь имеет доступ для чтения к ~/Свилуппо/myWeb каталог, если вы все еще сталкиваетесь с проблемой.

Apache также потребуется разрешение на выполнение в родительских каталогах, чтобы иметь возможность пройти по пути.

chmod о+х ~/
chmod o+x ~/Свилуппо

ВНИМАНИЕ: Имейте в виду, что последние две команды предоставляют любому пользователю вашей системы доступ к вашему домашнему каталогу. Поэтому, если это общая система, я бы рекомендовал разместить код вашего сайта где-то за пределами вашего домашнего каталога и предоставить доступ на чтение/запись вашему пользователю и доступ на чтение к www-данные пользователя в этом каталоге.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.