когда я выполняю PHP-скрипт, который выполняет запрос cURL к домену .test, настроенному на моем Mac с помощью Laravel Valet/dnsmasq, я получаю эту ошибку:
Could not resolve: mydomain.test (Domain name not found)
Когда я проверяю домен в своем браузере, все в порядке.
Когда я запускаю curl -Ik https://mydomain.test в Терминале, я получаю код HTTP/2 200, так что все в порядке.
Когда я запускаю curl -k https://mydomain.test в терминале, я получаю исходный код страницы, так что все в порядке.
Почему он не работает с cURL из PHP? я в отчаянии...
ОБНОВИТЬ
По многочисленным просьбам ;-) вот мой код cURL. Вы не можете сделать более простым:
try {
$ch = curl_init( "http://mydomain.test" );
curl_exec( $ch );
dump(curl_error($ch));
curl_close( $ch );
} catch (Exception $e) {
var_dump($e);
}
Без твоего php curl кода сложно что-то сказать
Я обновил код.
Попробуйте это: stackoverflow.com/questions/54688451/…






Эта проблема вызвана версиями curl, можете ли вы проверить свои версии curl с терминала с помощью
curl --version и php --ri curl
Когда вы запустите php --ri curl, вы увидите cURL Information => 7.63.0 эту строку.
Затем вы можете сравнить свои версии и увидеть, какая версия curl не работает с dnsmasq.
Я столкнулся с этой проблемой, и моя версия curl была 7.64.0 в php.
Для решения этой проблемы:
Вы можете удалить curl-openssl, эта команда удалит последнюю версию curl-openssl:
brew uninstall curl-openssl --ignore-dependencies
Затем перезапустите php:
brew services restart php
После перезапуска php увидит curl, который является /usr/bin/curl, и эта версия может получить доступ к локальному домену.
Я удалил curl-openssl (который был 7.64), но он по-прежнему не работает с другим curl, который был 7.54. Я перезапустил valet и php.
Сработало для меня. Должен быть принятый ответ! Спасибо большое дружище!
необходим перезапуск камердинера, как указано в ответе Лео Мораеса, и он отлично работает
Я искал решение в течение нескольких дней. brew uninstall curl-openssl --ignore-dependencies работает для меня. большое спасибо
К сожалению, Apache больше не запускался: httpd: Syntax error on line 194 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so, 10): Symbol not found: _curl_mime_addpart\n Referenced from: /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so\n Expected in: /usr/lib/libcurl.4.dylib\n in /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
Апач у меня тоже не запускается. Та же ошибка, что и выше. Таким образом, этот ответ устраняет одну проблему, но вводит другую, по крайней мере, на PHP 7.3.
....После перезапуска php увидит curl, который является /usr/bin/curl, и эта версия может получить доступ к локальному домену.
После перезапуска тоже камердинер: перезапуск камердинера
Только что потратил последний час на это. У меня была аналогичная проблема с завитком через PHP, который не разрешался с помощью Valet специально для SSL. Я попытался изменить версии curl-openssl, а также установить свой домен в файле хоста и т. д. Ничего не получилось, кроме следующего:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
Это связано с тем, что Curl не проверяет служебный SSL. Как только я добавил эту опцию в свой запрос на завивку, я смог получить данные с моего локального URL-адреса камердинера.
Не знаю, почему за это проголосовали. Приведенные выше широко распространенные ответы не указывают на причинно-следственную связь, в то время как этот ответ кажется, что он намного ближе к этому (хотя у меня это не сработало).
Добавление 127.0.0.1 в мои настройки DNS решило эту проблему для меня.
то есть System Preferences -> Network -> Advance -> DNS
И беги valet restart потом
Я решил это, добавив domain.test к /etc/hosts
то есть в файле hosts добавить: 127.0.0.1 domain.test
Можете ли вы поделиться своим PHP-кодом curl?