Я пытаюсь создать поддомены на своем локальном хосте, и я ухожу за пределы своей территории ... Я запускаю 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