CURL + Laravel Valet + dnsmasq не работает

когда я выполняю 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?

Lalit Arora 14.02.2019 11:42

Без твоего php curl кода сложно что-то сказать

MD. Jubair Mizan 14.02.2019 11:44

Я обновил код.

Maxime Freschard 14.02.2019 18:46

Попробуйте это: stackoverflow.com/questions/54688451/…

S.S.Prabhu 31.01.2021 18:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
16
4
7 221
5

Ответы 5

Эта проблема вызвана версиями 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.

Maxime Freschard 21.03.2019 18:20

Сработало для меня. Должен быть принятый ответ! Спасибо большое дружище!

tchauviere 09.09.2019 12:39

необходим перезапуск камердинера, как указано в ответе Лео Мораеса, и он отлично работает

efraim 21.02.2020 08:50

Я искал решение в течение нескольких дней. brew uninstall curl-openssl --ignore-dependencies работает для меня. большое спасибо

Bilal Şimşek 08.03.2020 21:09

К сожалению, 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

Marian 30.04.2020 12:05

Апач у меня тоже не запускается. Та же ошибка, что и выше. Таким образом, этот ответ устраняет одну проблему, но вводит другую, по крайней мере, на PHP 7.3.

Moshe Weitzman 15.05.2020 17:40

....После перезапуска php увидит curl, который является /usr/bin/curl, и эта версия может получить доступ к локальному домену.

После перезапуска тоже камердинер: перезапуск камердинера

Только что потратил последний час на это. У меня была аналогичная проблема с завитком через PHP, который не разрешался с помощью Valet специально для SSL. Я попытался изменить версии curl-openssl, а также установить свой домен в файле хоста и т. д. Ничего не получилось, кроме следующего:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

Это связано с тем, что Curl не проверяет служебный SSL. Как только я добавил эту опцию в свой запрос на завивку, я смог получить данные с моего локального URL-адреса камердинера.

Не знаю, почему за это проголосовали. Приведенные выше широко распространенные ответы не указывают на причинно-следственную связь, в то время как этот ответ кажется, что он намного ближе к этому (хотя у меня это не сработало).

jeff-h 07.07.2020 09:01

Добавление 127.0.0.1 в мои настройки DNS решило эту проблему для меня. то есть System Preferences -> Network -> Advance -> DNS

И беги valet restart потом

Я решил это, добавив domain.test к /etc/hosts

то есть в файле hosts добавить: 127.0.0.1 domain.test

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