Как настроить файл hosts для локальной среды?
Я пытаюсь создать субдомены на моем локальном хосте и ухожу с моей территории... Я использую MAMP на своей Mac OS X, и я подумал / думаю, что мне пришлось / нужно сделать следующее:
(Предполагая, что я хочу создать me.localhost.com и you.localhost.com)
(1) Редактировать / личное /etc/hosts
Прямо сейчас это выглядит так:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Итак, я просто сделать это:
127.0.0.1 localhost
127.0.0.1 me.localhost.com
127.0.0.1 you.localhost.com
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
(2) Я предполагаю, что мне вообще не нужно связываться с DNS, потому что он локальный? Итак, файла hosts должно хватить?
(3) И затем мне нужно отредактировать мой файл httpd.conf, чтобы включить в него виртуальные хосты? Я попробовал это, но это не поднимает это...
NameVirtualHost *
<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/me.localhost.com"
ServerName me.localhost.com
</VirtualHost>
<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/you.localhost.com"
ServerName you.localhost.com
</VirtualHost>
Не уверен, что я далеко от базы... Помощь с благодарностью!
3 ответа
Обратите внимание, что все псевдонимы для 127.0.0.1 должны быть указаны в одной строке, иначе вы получите странные результаты (по крайней мере, в Linux).
127.0.0.1 localhost me.localhost.com you.localhost.com
Для локального разрешения имен:
Вам нужен localhost.com? В моей среде:
$ vi /etc/hosts
127.0.0.1 localhost
127.0.0.1 box1 box2 box3
$ ping box1
возвращает "127.0.0.1" просто отлично.
В браузере я также могу разрешить http://box1/, http://box2/ и т. Д.
На 10.5, 10.6, по крайней мере, я могу подтвердить, что OSX не должен перезаписывать ваши / etc / hosts, что было вопросом предыдущего ответа.
Для Apache для каждого нового виртуального хоста добавьте:
<VirtualHost *:80>
ServerName box1
DocumentRoot /full/path/to/documentroot/
...[etc]
</VirtualHost>
Поскольку ваш браузер правильно разрешит "box1" как 127.0.0.1, ваш запрос будет перенаправлен на локальный ящик, где apache прочитает заголовок и увидит, что он предназначен для "box1" и будет использовать соответствующий виртуальный хост.
Кроме того, вы также можете использовать один из (многих?) Инструментов, чтобы автоматизировать это для вас, например (я не связан с этим, просто быстро погуглил, пытаясь найти другой пример, о котором я думал: http://clickontyler.com/virtualhostx/)
VirtualHost
получает имя виртуального хоста, который вы хотите определить. <VirtualHost *>
определяет универсальное значение по умолчанию. Итак, это должно быть
<VirtualHost me.localhost.com>
(И я надеюсь, что вы понимаете, что me.localhost.com
строго говоря, является нарушением пространства имен TwoCows и полностью отличается от me.localhost
.)
Я не слишком уверен, если / как часто OS X будет перезаписывать /etc/hosts
, хоть. Может возникнуть необходимость работать с Open Directory - но, как я только что понял, справочная страница для этого (man DirectoryService) in Snow Leopard points to a non-existing utility (
/Applications/Utilities/Directory Utility.app
). То есть вам нужно использовать dscl
и, возможно, перейдите в /Local/Default/Hosts и добавьте туда свои записи.