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

Локальный хост Apache VHost не работает на OSX

Я уже довольно давно работал с VHosts над моим клиентом OSX. В последнее время пробовал использовать http://localhost для доступа к /Library/WebServer/Documents но он продолжает перенаправлять меня в мой блог. Может ли кто-нибудь указать мне, в каком направлении я могу ошибаться?

Вот мой hosts файл:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 

127.0.0.1 www.chrislrobinson.co.uk
127.0.0.1 blog.chrislrobinson.co.uk

И вот мой httpd.conf файл:

...
ServerName localhost:80
DocumentRoot "/Library/WebServer/Documents"
<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>
<Directory "/Library/WebServer/Documents">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

И вот наконец мой httpd-vhosts.conf

<Directory /Library/WebServer/Documents>
    Options Indexes FollowSymlinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory /Library/WebServer/Documents/blog>
    Options Indexes FollowSymlinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory /Library/WebServer/Documents/chrislrobinson>
    Options Indexes FollowSymlinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

NameVirtualHost *:80

<VirtualHost 127.0.0.1>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/blog"
    ServerName blog.chrislrobinson.co.uk
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/chrislrobinson"
    ServerName www.chrislrobinson.co.uk
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents
    ServerName www2.chrislrobinson.co.uk
</VirtualHost>

Измените спецификацию вашего хоста в блоке localhost; он должен соответствовать NameVirtualHost директива. (Когда apache запускает об этом, в вашем журнале ошибок должно быть предупреждение)

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
</VirtualHost>

Поскольку наличие его в прослушивателе порта по умолчанию, вероятно, будет предоставлять его в Интернет (только с заголовком хоста localhost, но все же ..), подумайте также о том, чтобы заблокировать его:

Order deny,allow
Deny from all
Allow from 127.0.0.1