Через VirtualBox мне нужно получить доступ к виртуальным хостам хоста (Mac OS X 10.6) через гостевые ОС (Windows XP и 7).
Я могу получить доступ к localhost
URL-адрес и можете увидеть структуру каталогов ~/Username/Sites
папки из гостевых ОС через локальный URL-адрес хоста, моего Mac, в гостевом браузере, но получаю ошибку 403, когда я пытаюсь углубиться в структуру файлов, например, mymacsname.lcoal/~Username/Sites
доступен, но я получаю 403
когда я просматриваю ymacsname.lcoal/~Username/Sites/somewebsite/
.
NB: Я также получаю 403
когда я пытаюсь получить доступ ymacsname.lcoal/~Username/Sites/somewebsite/
из браузера моего Mac (хоста).
Редактировать:
Я проверил журналы доступа в ОС хоста (Mac), и, как ни странно, если я перейду в каталог без .htaccess
файл я получаю "HTTP/1.1" 200 1935
ответ и я могу либо просматривать индекс этого каталога, либо я обслуживаю его веб-страницу по умолчанию. Если есть .htaccess
файл в каталоге я получаю "HTTP/1.1 403 247"
ответ!
Это сужает большую часть проблемы до .htaccess
файл, так что я буду продолжать исследования по этому поводу, я очень благодарен за вашу помощь!
Перередактировать
Двигаясь дальше, это может быть проблема с моим .htaccess
с mod_rewrite
правила. Я включил свой .htaccess
код ниже, казалось бы, как и должно, что он перенаправляет браузер на /Users/Jay/Sites/chassis/library/bootstrap.php
но, похоже, у меня нет прав на доступ к этому файлу (bootstrap.php
).
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/public/index.html !-f
RewriteRule ^$ library/bootstrap.php [L]
RewriteRule ^$ public/index.html [L]
RewriteRule ^([a-z0-9/-]+)$ library/bootstrap.php?url=$1 [L,QSA]
Так близко! Пожалуйста, помогите мне решить эту проблему!
Повторное редактирование
Если это поможет, вот отрывок из моего основного файла конфигурации Apache (/private/etc/apache2/httpd.conf
):
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Это определенно была проблема с разрешениями.
Решено добавляя:
<Directory />
Options +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
к /private/etc/apache2/extra/httpd-vhosts.conf
.
Мне также нужно было отредактировать файл hosts в гостевых ОС (Windows XP и 7) следующим образом:
192.168.123.123 somevhost
192.168.123.123 someothervhost.dev
Если указан IP-адрес ОС хоста и somevhost
… - это имя виртуального хоста в ОС хоста.
Мне нужно было настроить ОС хоста на использование статического IP-адреса, как если бы он был назначен DHCP, вам пришлось бы редактировать файл хоста в гостевой ОС каждый раз, когда IP-адрес вашей ОС хоста менялся.
Эти веб-сайты действительно помогли:
http://support.microsoft.com/kb/972034#LetMeFixItMyselfAlways
http://mark-kirby.co.uk/2008/setting-up-virtual-hosts-on-os-x-leopard/
Возможно, вы захотите начать с проверки журналов доступа веб-сервера, чтобы увидеть, что на самом деле ему передается - как успешные, так и неудачные.