MAC OS X: среда MAMP и виртуальные хосты

Я не уверен, что здесь происходит, но я запускаю MAMP 1.9 в MAC OS X. В моем файле httpd.conf для DocumentRoot задан путь htdocs по умолчанию. В папке htdocs я создал несколько «дочерних сайтов», чтобы настроить их как виртуальные хосты .... Я могу перейти к указанным путям, но все они, похоже, по умолчанию соответствуют первому, который я настроил .

По сути, первый VirtualHost, который я настроил, был для site1.localhost.com. С тех пор я настроил site2.localhost.com и site3.localhost.com. Тем не менее, переход на один из двух последних адресов всегда перенаправляет меня на site1.localhost.com. Кроме того, переход по адресу localhost.com:8888 также просто вызывает site1.localhost.com. Я не уверен, где я сделал ошибку, но, надеюсь, кто-то здесь сможет помочь мне разобраться в проблеме ... О, и я перезапустил apache и т. Д. После любых изменений, внесенных в файл / etc / hosts или файл httpd.conf.

В моем файле httpd.conf (во всяком случае, соответствующие части ...):

#                                                                                                                                                                                                                                                                             
# DocumentRoot: The directory out of which you will serve your                                                                                                                                                                                                                
# documents. By default, all requests are taken from this directory, but                                                                                                                                                                                                      
# symbolic links and aliases may be used to point to other locations.                                                                                                                                                                                                         
#                                                                                                                                                                                                                                                                             
# MAMP DOCUMENT_ROOT !! Don't remove this line !!                                                                                                                                                                                                                             


 DocumentRoot "/Applications/MAMP/htdocs"

#                                                                                                                                                                                                                                                                             
# Note that from this point forward you must specifically allow                                                                                                                                                                                                               
# particular features to be enabled - so if something's not working as                                                                                                                                                                                                        
# you might expect, make sure that you have specifically enabled it                                                                                                                                                                                                           
# below.                                                                                                                                                                                                                                                                      
#                                                                                                                                                                                                                                                                             

#                                                                                                                                                                                                                                                                             
# This should be changed to whatever you set DocumentRoot to.                                                                                                                                                                                                                 
#                                                                                                                                                                                                                                                                             
<Directory "/Applications/MAMP/htdocs">

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/site1/"
ServerName site1.localhost.com
</VirtualHost>

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/sub/site2/"
ServerName site2.localhost.com
</VirtualHost>

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/sub/site3/"
ServerName site3.localhost.com
</VirtualHost>

В моем файле / etc / hosts:

##                                                                                                                                                                                                                                                                            
# Host Database                                                                                                                                                                                                                                                               
#                                                                                                                                                                                                                                                                             
# localhost is used to configure the loopback interface                                                                                                                                                                                                                       
# when the system is booting.  Do not change this entry.                                                                                                                                                                                                                      
##                                                                                                                                                                                                                                                                            
127.0.0.1       localhost
127.0.0.1       site1.localhost.com
127.0.0.1       site2.localhost.com
127.0.0.1       site3.localhost.com
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

person KarmaKarmaKarma    schedule 29.07.2010    source источник


Ответы (3)


Найдите в файле httpd.conf следующую строку и удалите комментарий (#):

 # NameVirtualHost * 
person Matthew Leffler    schedule 02.09.2010

В дополнение к ответу MattLeff вы также должны добавить псевдоним сервера на всякий случай:

ServerAlias www.website.dev

Если вы этого не сделаете, и ваш браузер автоматически добавит «http: // www» (и скрывает его, rawr!), Тогда ваша среда автоматически по умолчанию будет использовать первый виртуальный хост.

person Chords    schedule 01.09.2012

Я вижу, ты получил свой ответ. В моем случае этого было недостаточно. Я смог заставить localhost + многие другие vhosts (demo.client.com) работать с моим MAMP, когда я добавил предложение Chords. Это сработало только тогда, когда я добавил localhost в качестве виртуального хоста вверху списка.

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot "/Applications/MAMP/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin [email protected]
  DocumentRoot "/Applications/MAMP/htdocs/clientA/"
  ServerName clientA.local
  ErrorLog "logs/clientA-local-error_log"
  CustomLog "logs/clientA-local-access_log" common
</VirtualHost>
person John N    schedule 16.03.2014