11

Мне нужно разрешить доступ к каталогу, связанному с sym, в ~/Sites из моего Apache. Я Symlinked каталоги, как это

ln -s ~/path/to/the/source/directory/ ~/Sites/source-link-here

Теперь, когда я запускаю запрос GET, я получаю ответ 403

curl http://localhost/~username/source-link-here/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /~username/source-link-here
on this server.</p>
...

Как я могу сказать Apache разрешить доступ к каталогу с символическими ссылками и как я могу сказать Apache разрешить это только для запросов, запущенных с localhost.

Любая помощь с благодарностью.

С наилучшими пожеланиями

robertj

5 ответов5

9

Вот запись в блоге, которую я написал, когда пытался понять, как сделать именно то, что вы пытаетесь сделать.

  1. Включите веб-общий доступ на MAC, перейдя в Системные настройки -> Общий доступ -> Установите флажок Включить веб-общий доступ
  2. Отредактируйте файл username.conf, расположенный в /private /etc /apache2 /users, и добавьте директиву FollowSymLinks:

    <Directory "/Users /yourUserName /Sites /"> Параметры Индексы MultiViews FollowSymLinks AllowOverride Нет Порядок разрешен, запрещен Разрешить для всех </Directory>
    
  3. Отредактируйте файл /private/etc/apache2/httpd.conf и убедитесь, что строка «# Виртуальные хосты» не закомментирована, например:

    Включить /private/etc/apache2/extra/httpd-vhosts.conf
    
  4. Отредактируйте файл /private/etc/apache2/extra/httpd-vhosts.conf и добавьте:

    <VirtualHost *:80> <Directory /Users/yourUserName/Sites/MyWebSite.com> Параметры +FollowSymlinks +SymLinksIfOwnerMatch AllowOverride All </Directory> DocumentRoot /Users /yourUserName /Sites /MyWebSite ServerName MyWebSite.local> /Virtual
    
  5. Отредактируйте файл /etc /hosts и добавьте его вверху:

    127.0.0.1 MyWebSite.local
    
  6. Создайте символическую ссылку, чтобы связать ваш каталог с кодом в каталоге сайтов.

    ln -s ~ /Code /MyWebSite ~ / Сайты /MyWebSite
    
  7. Перезапустите Apache

1

На самом деле необходимы только первые 2 шага из ответа Эмджая плюс перезапуск апача, вот что сработало для меня:

  1. Включите веб-общий доступ на MAC, перейдя в « Системные настройки» -> « Общий доступ» -> «Включить включенный общий веб-доступ».

  2. Отредактируйте файл username.conf расположенный в /private/etc/apache2/users и добавьте директиву FollowSymLinks :

    <Directory "/Users/yourUserName/Sites/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  3. проверьте настройки apache

    sudo apachectl -t

  4. перезапустить Apache

    перезапуск sudo apachectl

Теперь Apache будет обслуживать символические ссылки в вашем каталоге Sites .

1

Я получил 403 forbidden ошибки. Что решило мою проблему в httpd-vhosts.conf , я заменил приведенный ниже конфиг

<Location "/modulename">
  Order allow,deny
  Allow from all
</Location>

с

<Location "/modulename">
  Require all granted
</Location>

Сделал то же самое для всех тегов Location. Это решило вопрос разрешения.

0

Иногда это происходит, если:

  • Ваша исходная папка находится в файловой системе NTFS
  • Если вы используете уже созданную папку с другими правами доступа, возможно, от предыдущего владельца или установки.

Я решил эту проблему, создав новую папку в файловой системе ext4 и создав символическую ссылку на /var/www .

0

Options FollowSymLinks в httpd.conf для соответствующего контейнера

  1. Найдите строку DocumentRoot в conf, запомните ее значение. Проверьте содержимое <Directory "docroot here">...</Directory> для строки параметров. Если параметры отсутствуют - добавьте строку Options FollowSymLinks , если они существуют, но не имеют FollowSymLinks - добавьте этот параметр, чтобы иметь что-то вроде Options Indexes FollowSymLinks . Перезапустите Apache после изменения конфигурации. Результат теста, напишите здесь

  2. Читайте документы Apache

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .