Валет (Laravel): DNS-адрес не может быть найден
Я пробую Valet, это выглядит очень хорошо из того, что я слышал.
Я прошел "весь" процесс установки, Valet успешно установлен.
Но когда я cd
в файл моих проектов и введите valet park
и перейдите к http://blog.dev
, Я получаю "Адрес DNS-сервера blog.dev не может быть найден".
Понятия не имею, что я делаю не так.:)
4 ответа
Когда ты бежишь valet install
он пытается установить dnsmasq. Это требует привилегий sudo.
Вы можете проверить, что он установлен и работает, используя
brew services list
Вы должны увидеть что-то вроде
dnsmasq started root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Тем не менее, вам может понадобиться сначала нажать "brew / services"
brew tap homebrew/services
Если его там нет, беги
brew install dnsmasq
brew services start dnsmasq
Бежать valet install
снова настроить dnsmasq и следить за любыми ошибками. Для этого нужно добавить строку в конец /usr/local/etc/dnsmasq.conf, похожую на
conf-file=/Users/{YOURUSER}/.valet/dnsmasq.conf
/Users/ndomYOURUSER‹/.valet/dnsmasq.conf затем должен содержать
address=/.dev/127.0.0.1
Убедитесь, что ваш DNS-сервер отвечает на запросы
dig testing.dev @127.0.0.1
Вы должны увидеть ответ как
;; ANSWER SECTION:
testing.dev. 0 IN A 127.0.0.1
Чтобы на самом деле убедиться, что ваш Mac знает, что он должен разрешить *.dev с помощью вашего локального DNS-сервера, ему нужно сделать это. Валет также справляется с этим, но вы можете проверить, выполнено ли это, выполнив следующие действия.
Внутри каталога /etc/resolver
должен быть файл под названием dev
со следующим содержанием
nameserver 127.0.0.1
Это создаст пользовательский преобразователь DNS для *.dev и направит все запросы на ваш локальный DNS-сервер.
Перезапустите dnsmasq с помощью одной из следующих команд, а затем повторите попытку.
// this
brew services restart dnsmasq
// or this
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
Если все это работает, вы должны иметь возможность пинговать что угодно.
ping anything.dev
PING anything.dev (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.081 ms
Это обеспечивает работу битов, связанных с DNS.
В конечном итоге вопрос касается проблем, связанных с DNS, но так как все началось с того, что здесь есть все, что вам нужно было попробовать, я оставлю это ниже. Тем не менее, если вы не можете пропинговать что-то.dev или получить сообщение об ошибке "Не удается найти адрес DNS-сервера blog.dev". согласно OP, это что-то выше, что связано с DNS, который требует разрешения.
Поскольку Caddy обслуживает веб-сайты через порт 80, необходимо убедиться, что на порте 80 больше ничего не работает.
sudo lsof -n -i:80 | grep LISTEN
В идеале это должно вернуть Caddy, если камердинер работает, как ожидалось. Вы хотите увидеть пример ниже или ничего в идеале; ничего, потому что это означает, что мы можем просто запустить Valet.
caddy 76234 root 3u IPv6 0x4f871f962e84fa95 0t0 TCP *:http (LISTEN)
Вы можете увидеть другие веб-серверы, такие как Apache или Nginx (и их дочерние процессы, _www
а также nobody
) в примере ниже.
httpd 79 root 4u IPv6 0xf4641199930063c5 0t0 TCP *:http (LISTEN)
httpd 239 _www 4u IPv6 0xf4641199930063c5 0t0 TCP *:http (LISTEN)
nginx 4837 root 6u IPv4 0xf4641199a4e8e915 0t0 TCP 127.0.0.1:http (LISTEN)
nginx 4838 nobody 6u IPv4 0xf4641199a4e8e915 0t0 TCP 127.0.0.1:http (LISTEN)
Предполагая, что вы установили Nginx вместе с homebrew, вы можете запустить следующее, чтобы остановить его.
brew services stop nginx
OSX поставляется с установленным Apache, поэтому вы можете остановиться на следующем, если он работает.
sudo apachectl stop
На данный момент вы можете начать Valet с valet start
и это сработает.
Вы можете получить еще одну ошибку, вызванную установкой PHP без FPM. Вы можете проверить это используя
brew info php70 | grep php70-fpm
Который должен дать что-то вроде
Сценарий управления находится по адресу /usr/local/opt/php70/sbin/php70-fpm
Если он не установлен, используйте следующее.
brew uninstall homebrew/php/php70
brew install homebrew/php/php70 --with-fpm
valet restart
У меня была такая же проблема, после установки я застрял при пинге foo.dev.
Я проверил на работающие службы.
> brew services list
Name Status User Plist
dnsmasq stopped
nginx stopped
php71 stopped
Запустил все три службы вручную с
> brew services start dnsmasq
> brew services start nginx
> brew services start php71
Ран valet install
,
Пинг успешно до foo.dev
У меня была та же проблема - застрял в ping foobar.dev - и исправил ее, перезапустив мой Macbook (после установки камердинера). Я уверен, что это не точное решение, и я считаю, что есть способ сделать это без перезагрузки. Тем не менее, это сработало для меня. Мне не нужно было делать никаких других шагов.
[Править - Кроме того, перед перезапуском я обязательно попробовал установку с помощью fpm tip и следовал всем советам brew после установки php70 (настройка пути, проверка запуска php70 при запуске системы. Я не могу сказать, помогли ли эти вещи, так что, вероятно, сначала попробуйте перезапустить. Если требуется просто перезапуск или какой-то другой дополнительный шаг для правильного запуска служб, я думаю, что документация laravel, вероятно, нуждается в некотором пояснении.]
Если вы пользователь Windows, выполните настройку Acrylic, затем перезапустите адаптер (отключите и включите)
http://mayakron.altervista.org/wikibase/show.php?id=AcrylicWindows10Configuration
Работал для меня