Laravel + Laragon: неправильно .ENV используется для запросов API в разных проектахApache

Ответить
Anonymous
 Laravel + Laragon: неправильно .ENV используется для запросов API в разных проектах

Сообщение Anonymous »

Я работаю локально с проектами Laragon и множественными Laravel.
Настройка выглядит следующим образом: < /p>
Веб-сайт A → его собственный .env (сайт a.env), с db websity_a. < /p>
веб-сайт b → свой собственный .env (веб-сайт b.env), с веб-сайтом db. (API-A.ENV), с DB API_A. < /p>
api b → его собственное .env (api-b.env), с db api_b. < /p>
Веб-сайты делают призывы к API. (веб-сайт a.env) Только для своей собственной логики (например, его db, пользователи, переводы). < /p>
Когда веб-сайт A делает запрос на API A, запрос должен быть получен с помощью API A, а API A должен использовать свой собственный .env (api-a.env) для подключения к своей собственной базе Batabase (API_A). A, API A должен загружать api-a.env, а не веб-сайт-b.env. (та же концепция для API b) < /p>
Другими словами: каждый проект должен использовать только свои собственные .Env и никогда не наследует настройки .env от вызывающего абонента. webse_a с помощью databaste.table format webse_a.api_keys , даже если его собственный .ENV ясно указывает на API_A .
Если веб -сайт B вызывает API A, то вместо этого применяется .Env с веб -сайта B. /> Пример ошибка: < /p>

Код: Выделить всё

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'website_a.api_keys' doesn't exist

Но когда я называю API прямо в браузере (например,/api/_whoami, возвращающем db :: connection ()-> getDatabaseName ()) , он правильно показывает db api_a. /> очистить все кэши с помощью PHP Artisan Optimize: clear в каждом проекте. /> (phpinfo () показывает opcache.cache_id => no value.) < /p>
Когда я вручную запускаю каждый проект с PHP Artisan Serv -Port = xxxx < /code> в разных портах, проблема исчезает. Каждое приложение Laravel использует правильную .ENV и базу данных.
Проблема происходит только тогда, когда я позволяет Laragon /Apache обрабатывать все сайты (с HTTPS и виртуальными хостами). В этом случае API -интерфейсы, кажется, «кровоточат» конфигурация среды с веб -сайта Caller. Отсутствует для правильной изоляции средств между несколькими проектами Laravel?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ple-projec
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»