Я следовалэто руководствои я пытаюсь создать динамические vhosts на 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 для anything.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
Сервер теперь работает (была проблема с каталогом журнала ошибок в файле конфигурации). Но все еще нет доступа к динамическим vhosts.
решение1
Каково содержание вашего второго сайта?
Возможны две причины:
Если каталог не имеетиндексЕсли документ (index.php, index.html, default.html и т. д.) и список каталогов не разрешены, Apache отобразит страницу ошибки 403.
Я заметил, что вы не включили ExecCGI в sites.dev. Не могли бы вы попробовать включить его?
Обновлено:Знак процента в пути ( /Users/harryg/Sites/sites/%1
) предназначен для mod_vhost_alias, но не правил Apache <Directory>
. Измените это:
<Directory "/Users/harryg/Sites/sites/%1">
К этому:
<Directory "/Users/harryg/Sites/sites">
Это работает?
решение2
Только что столкнулся с этой же проблемой, и оказалось, что это настройка по умолчанию в Apache. В httpd.conf есть следующее:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
удалите строку «Запретить всем» и перезапустите Apache.
решение3
Ошибка 403 сообщает об отказе в доступе. Вам необходимо проверить разрешения на каталог дерева вплоть до каталога сайта.
Убедитесь, что пользователь, запускающий Apache, имеет права на чтение и выполнение каталогов, а также на чтение файлов.