Я пытаюсь включить DNS с подстановочными знаками на своем ноутбуке с помощью dnsmasq. Я понимаю, что это было спросил и ответил больше одного раза на этом форуме, но я не могу заставить решение работать для меня.
Предпринятые шаги:
address=/example.dev/127.0.0.1
в dnsmasq.conflisten-address=127.0.0.1
в dnsmasq.confnameserver 127.0.0.1
находится в /etc/resolv.confprepend domain-name-servers 127.0.0.1;
в /etc/dhcp3/dhclient.confПримечание: example.dev не установлен в / etc / hosts
Мой vhost например dev
<VirtualHost *:80>
ServerName example.dev
DocumentRoot /home/jkendall/public_html/example/public
ServerAlias *.example.dev
# This should be omitted in the production environment
SetEnv APPLICATION_ENV development
<Directory /home/jkendall/public_html/example/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Приведенная выше настройка будет без проблем выполнять локальный сервер example.dev. Он также будет обслуживать test.example.dev, но test.example.dev возвращает apache по умолчанию "Он работает!" index.html из / var / www, а не из моего index.php в / home / jkendall / public_html / example / public.
Решение в этом Поток сбоя сервера предполагает, что
address=/.example.dev/127.0.0.1
решит мою проблему, но когда я пытаюсь использовать это решение, перезапуск dnsmasq приводит к сбою с сообщением об ошибке
dnsmasq: error at line 62 of /etc/dnsmasq.conf
Для усмешки я переместил свой проект в / var / www / example и соответствующим образом изменил vhost. Получил такой же результат, как описано выше.
На данный момент я не уверен, какие еще шаги я могу предпринять для решения проблемы. Мысли?
У меня точно такая же настройка, как вы описали в своем вопросе, с одним дополнением: в моем Apache vhost Listen 80
и NameVirtualHost *:80
установлен. Это должно подключить apache к порту 80 - там, где ваш браузер слушает, и это может быть та часть, которую ваша первоначальная настройка отсутствует.
Если вы можете восстановить свою первоначальную настройку (да, я знаю, это было 1/2 года назад), вам также необходимо проверить, правильно ли работает dnsmasq, позвонив dig example.dev | grep SERVER
(который должен вернуться ;; SERVER: 127.0.0.1#53(127.0.0.1)
.
Кажется, я работал с фундаментальным непониманием dnsmasq, vhosts и dns. dnsmasq делал именно то, что должен был, перенаправляя запросы, например, dev на 127.0.0.1. Хотя у меня были настроены и правильно настроены vhosts, не было локального DNS-сервера, который мог бы отвечать и направлять эти запросы в нужное место.
В конечном итоге моя проблема была решена установкой bind9, создав зону, например.dev, а затем добавив запись A для поддомена с подстановочными знаками.
Вот подробности:
named.conf.local
/etc/bind/db.local
к /etc/bind/example.dev
Вот мой named.conf.local
zone "example.dev" {
type master;
file "/etc/bind/example.dev";
};
Вот мой db.example.dev
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
201005173 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
example.dev IN A 127.0.0.1
* IN A 127.0.0.1
@ IN AAAA ::1
Я не буду приводить пример танца победы.