Localhost ведет к 404 с настройкой DNSMasq и пользовательским Vhost

Я настроил DNSMasq для работы на локальном тестовом сервере OSX Yosemite с собственным Apache2, собственным PHP5 и доморощенным MySQL и DNSMasq. Теперь все работает, но с текущей настройкой DNS я могу получить доступ только к PHPMyAdmin в его конфигурации для хоста, использующего 127.0.0.1, и то же самое касается всех настроек WordPress. Хост должен быть 127.0.0.1. Локальный хост больше не работает для доступа к моему локальному хосту.

Вот некоторые из конфигураций, которые у меня есть:

/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
255.255.255.255 broadcasthost
::1             localhost 

Резольвер /etc/resolver/dev:

nameserver 127.0.0.1

В /usr/local/etc/dnsmasq.conf Я добавил:

listen-address=127.0.0.1
address=/dev/127.0.0.1

Теперь, когда я загружаю localhost или http://localhost Я получаю 404:

::1 - - [22/Feb/2015:08:12:33 +0300] "GET / HTTP/1.1" 404 198

Пинг работает просто отлично:

ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.050 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.106 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.113 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.050/0.096/0.116/0.027 ms

И мой VirtualHost в /private/etc/apache2/extra/httpd-vhosts.conf

<Virtualhost *:80>
VirtualDocumentRoot "/Users/me/webdesign/%1"
ServerName vhosts.dev
ServerAlias *.dev
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
ErrorLog "/Users/me/webdesign/vhosts-error_log"
<Directory "/Users/me/webdesign/*">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</Virtualhost>

В этом в /etc/apache2/httpd.conf В конце я добавил, чтобы остановить ошибку при запуске Apache и заставить PHPMYAdmin работать на localhost.

ServerName localhost
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    <IfModule mod_authz_core.c>
      Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
      Order allow,deny
      Allow from all
    </IfModule>
</Directory>

И когда я запускаю scutil, я вижу

scutil --dns
DNS configuration

resolver #1
  search domain[0] : Home
  nameserver[0] : 192.168.1.1
  if_index : 4 (en1)
  flags    : Request A records
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : dev
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : Reachable,Local Address

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : Home
  nameserver[0] : 192.168.1.1
  if_index : 4 (en1)
  flags    : Scoped, Request A records
  reach    : Reachable,Directly Reachable Address

Любые идеи, как я могу заставить localhost работать снова?

1 ответ

Решение

Прочитайте здесь, что при добавлении нового DocumentRoot вы теряете старый, используемый localhost. Итак, я добавил

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

чтобы показать это. Теперь localhost снова работает. Для сайтов, обслуживаемых в.dev 127.0.0.1 все еще необходимо, хотя.

Другие вопросы по тегам