#laravel #laravel-5
#laravel #laravel-5
Вопрос:
Я запускаю Laravel 5.7 на Forge. Все работает хорошо. У меня есть два простых задания, которые выполняются. Один, когда пользователь входит в систему, и один, когда пользователи хотят загрузить большой файл.
В моем локальном они оба отлично работают. После развертывания в forge они оба завершаются ошибкой с одним и тем же исключением:
ErrorException: Undefined index: queue in /home/forge/SITE/vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php:46
Трассировка стека указывает прямо на две строки, где я вызываю dispatch();
Моя настройка по умолчанию для Redis. Я не менял свой env или что-либо еще, связанное с обычной настройкой redis.
Как на моем локальном, так и на моем prod forge-сайте есть:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Я понятия не имею, почему это произойдет только в моей настройке Forge. TIA
— После продолжения изучения этого, когда я запускаю его локально, я запускаю php artisan queue: work
Я протестировал запуск этого после подключения по ssh к моему серверу forge и получил это:
ErrorException : Undefined index: queue
at /home/forge/members.spaceangels.com/vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php:46
42| */
43| public function connect(array $config)
44| {
45| return new RedisQueue(
46| $this->redis, $config['queue'],
47| $config['connection'] ?? $this->connection,
48| $config['retry_after'] ?? 60,
49| $config['block_for'] ?? null
50| );
Exception trace:
1 IlluminateFoundationBootstrapHandleExceptions::handleError("Undefined index: queue", "/home/forge/members.spaceangels.com/vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php", [])
/home/forge/members.spaceangels.com/vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php:46
2 IlluminateQueueConnectorsRedisConnector::connect(["redis"])
/home/forge/members.spaceangels.com/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php:157
Please use the argument -v to see more details.
моя конфигурация / очередь.настройка php:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
'block_for' => null,
],
Я чувствую, что этого чего-то не хватает в моей конфигурации и в том, как forge включает Redis
Комментарии:
1. в вашей локальной среде вы также работаете с redis?
2. Да, @ martin, вот почему это так расстраивает.
3. я не уверен, но мне кажется, что у меня было подобное, когда зависимость redis от laravel была установлена неправильно, но очень смутное воспоминание об этом.
4. Я дважды проверю и запущу composer на своем сервере forge, чтобы убедиться
5. Я понял это. Это была проблема с настройкой env.
Ответ №1:
Ну, похоже, что ваш файл .env отсутствует:
CACHE_DRIVER=redis