Я следил это руководство и я пытаюсь создать динамические хосты на 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-го сайта?
Возможны две причины:
Если в каталоге нет индекс документ (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">
Это работает?
Просто столкнулся с той же проблемой, и она оказалась настройкой по умолчанию в apache. в httpd.conf это
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
удалите строку «Запретить от всех» и перезапустите apache.
В сообщении об ошибке 403 указано, что доступ запрещен. Вы должны проверить права доступа к каталогу дерева вплоть до каталога сайта.
Убедитесь, что у пользователя, запускающего apache, есть разрешения на чтение и выполнение для каталогов и чтение для файлов.