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

Как настроить файл hosts для локальной среды?

Я пытаюсь создать поддомены на своем локальном хосте, и я ухожу за пределы своей территории ... Я запускаю MAMP на своей Mac OS X, и я думал / думаю, что должен / должен сделать следующее:

(Предполагая, что я хочу создать me.localhost.com и you.localhost.com)

(1) Отредактируйте / private / 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>

Не уверен, что я здесь за пределами базы ... Помощь очень признательна!

Обратите внимание, что все псевдонимы для 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). I.e., you'd need to use dscl and, probably, go to /Local/Default/Hosts и добавьте туда свои записи.