Назад | Перейти на главную страницу

Динамический vhost, выдающий 403, запрещено на OSX Apache

Я следил это руководство и я пытаюсь создать динамические хосты на OSX, разрешив foo.dev перейти в веб-папку /foo. Моя разница в том, что я использую ~/Sites в качестве моей веб-папки вместо Mac HD, как в руководстве. Он использует dnsmasq, который, как мне кажется, установлен и работает правильно.

Итак, в моей папке ~ / Sites у меня есть:

home
sites
|-foo
|-bar

Мой httpd-vhosts.conf выглядит так:

<Virtualhost *:80>
DocumentRoot "/Users/harryg/Sites/home"
ServerName home.dev
UseCanonicalName Off
ErrorLog "logs/home/error.log"
<Directory "/Users/harryg/Sites/home">
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
</Virtualhost>

<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites/%1">
    Options FollowSymLinks
    #Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride None
    Allow from all
</Directory>
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>

Первый vhost работает нормально и собирается home.dev приводит к примеру index.php файл, который у меня есть в корне этого vhost.

Второй виртуальный хост просто выдает ошибку 403 Forbidden для something.dev, независимо от того, существует ли папка для поддомена .dev.

Любые идеи?

Редактировать:

Последние записи журнала

Журнал ошибок Apache:

[Wed Dec 18 00:45:37 2013] [error] [client 127.0.0.1] File does not exist: /Users/harryg/Sites/home/favicon.ico
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server configuration: /Users/harryg/Sites/sites/test/, referer: http://home.dev/
[Wed Dec 18 00:45:45 2013] [error] [client 127.0.0.1] client denied by server 

Сервер теперь работает (проблема с каталогом журнала ошибок в файле конфигурации). Но по-прежнему не могу получить доступ к динамическим хостам.

Каково содержание вашего 2-го сайта?

Возможны две причины:

  1. Если в каталоге нет индекс документ (index.php, index.html, default.html и т. д.) и перечисление каталогов не допускается, Apache отобразит страницу с ошибкой 403.

  2. Я заметил, что вы не включили ExecCGI в sites.dev. Не могли бы вы его включить?

Обновлено: Процент входа в путь (/Users/harryg/Sites/sites/%1) предназначен для mod_vhost_alias, но не для Apache <Directory> правила. Измените это:

<Directory "/Users/harryg/Sites/sites/%1">

К этому:

<Directory "/Users/harryg/Sites/sites">

Это работает?

Просто столкнулся с той же проблемой, и она оказалась настройкой по умолчанию в apache. в httpd.conf это

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

удалите строку «Запретить от всех» и перезапустите apache.

В сообщении об ошибке 403 указано, что доступ запрещен. Вы должны проверить права доступа к каталогу дерева вплоть до каталога сайта.

Убедитесь, что у пользователя, запускающего apache, есть разрешения на чтение и выполнение для каталогов и чтение для файлов.