Установка Framework (проблема cURL-ошибка 6: не удалось разрешить хост: cache-proxy)

Я пытался установить API-платформу: https://api-platform.com/docs/distribution/

после запуска вижу в логе "api-platform-242_cache-proxy_1"

│   Error:                                                                                                                                                                                                                                                    │
│   Message from VCC-compiler:                                                                                                                                                                                                                                │
│   Expected return action name.                                                                                                                                                                                                                              │
│   ('/usr/local/etc/varnish/default.vcl' Line 67 Pos 13)                                                                                                                                                                                                     │
│       return (miss);                                                                                                                                                                                                                                        │
│   ------------####--                                                                                                                                                                                                                                        │
│   Running VCC-compiler failed, exited with 2                                                                                                                                                                                                                │
│   VCL compilation failed  

Если я использую API (пост-приветствие), код ответа 500 "hydra:description": "Ошибка cURL 6: Не удалось разрешить хост: cache-proxy (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html)", "след": [

Тем не менее объект все еще вставлен.

Кроме того, я попробовал API-платформу без докера (Apache). Я удалил строку VARNISH_URL=http://кэш-прокси в файле .env. Тогда код возврата 500 с «Ошибка cURL 3: искаженный формат (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html

Есть ли у вас какие-либо идеи?

С уважением Люди

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 215
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Снять лак с api_platform.yaml

Ну... у меня была та же проблема, и удаление Varnish из конфигурации решило ее, но... если дистрибутив предназначен для простого введения в предварительную настройку, почему он с самого начала неправильно настроен? Я новичок в Докере, про Varnish слышал, но не более того, опыта с Symfony4 пока нет (но работаю с Sf3). Поэтому меня очень расстраивает, когда предварительно настроенное приложение на основе Docker не работает с самого начала. Что не так с раздачей? Как включить кеширование лака? Контейнер отсутствует или неправильно настроен?

Kalmar 12.04.2019 22:00

Это работает, дистрибутив полностью работает в докере. Он призван помочь вам в разработке, а не в развертывании. Если вы хотите развернуть его на Apache, виртуальном хостинге, AWS, Microwave или где-то еще, в зависимости от ваших потребностей, вам нужно изменить. То же самое с переменными окружения.

user15873 14.04.2019 08:46

Но я развертываю его в Docker. Я вижу контейнер "cache-proxy", который должен был предоставить Varnish. Я вижу в журналах создания докеров ту же ошибку, что и @Ludi. И да, отключение Varnish работает, но для меня это неудовлетворительный ответ, и я думаю, что это неудовлетворительный ответ на поставленный выше вопрос в общем смысле.

Kalmar 14.04.2019 20:02

На самом деле я даже не могу сказать, что это так работает. cache-proxy терпит неудачу, поэтому h2-proxy терпит неудачу и, следовательно, HTTPS-доступ к API не работает, и в результате компонент администратора не работает, потому что он каким-то образом жестко запрограммирован, чтобы он пытался подключиться к API через HTTPS на порту 8443.

Kalmar 15.04.2019 10:30

Является ли контейнер докера на вашем локальном компьютере. Это прекрасно работает для локальной разработки.

user15873 15.04.2019 11:11

У меня есть все на моем локальном компьютере с Ubuntu 18.04, и у меня такая же проблема с другой установкой Ubuntu 18.04. И, пожалуйста, не говорите мне «это работает», когда я ясно вижу, что это не так.

Kalmar 16.04.2019 17:25

У меня он работает на Docker для Windows, а также на арке Manjaro. Попробуйте пересобрать с помощью сборки docker-compose.

user15873 16.04.2019 22:31

Я считаю, что вы должны удалить или закомментировать VARNISH_URL=http://cache-proxy из .env файла, а не из api_platform.yaml, так как ваш .env может измениться и зависит/должен зависеть от хоста, а конфигурация (.yaml) не должна.

См.: https://symfony.com/doc/current/configuration.html#the-env-file-environment-variables

There is also a .env file which is loaded and its contents become environment variables. This is useful during development, or if setting environment variables is difficult for your deployment.

В api_platform.yaml вы ДОЛЖНЫ закомментировать весь http_cache раздел, иначе вы будете продолжать получать ошибки cURL о искажении от guzzle.

{ "@context": "/api-platform/api/public/contexts/Error", "@type": "hydra:Error", "hydra:title": "An error occurred", "hydra:description": "cURL error 3: <url> malformed (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)", "trace": [ { "namespace": "", "short_class": "", "class": "", "type": "", "function": "", "file": "...\\api-platform\\api\\vendor\\guzzlehttp\\guzzle\\src\\Handler\\CurlFactory.php", "line": 186, "args": [] },

Эффект тот же.

Обратите внимание, что контейнер h2-proxy зависит от контейнера cache-proxy. Так что (по крайней мере, в моем случае) с неудачным Varnish у меня нет HTTPS, и в результате, например, компонент Admin тоже выходит из строя.

Kalmar 16.04.2019 17:27

Я проверил вчера, и достаточно закомментировать только Varnish, хотя я не проверял, работает ли какое-либо HTTP-кеширование. Я также использовал автономную версию tar.gz, поэтому она не работает точно так же, как docker one ex. HTTPS вообще не работает.

Ethernal 17.04.2019 18:13

У меня была такая же проблема, и я решил ее!

Как указано здесь: https://github.com/api-платформа/api-платформа/issues/777, проблема в правах на каталоги/файлы, поэтому вместо загрузки архива zip или tar.gz я клонировал репо,

Все команды, которые я сделал (после установки Docker для Windows и включения общих дисков в настройках Docker для Windows):

cd my_parent_directory
git clone https://github.com/api-platform/api-platform.git
cd api-platform
docker-compose pull
docker-compose up -d

А когда захожу на https://локальный:8443 все работает!!

Я надеюсь, это поможет вам :)

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