Laravel forge Redis настраивает неопределенный индекс: очередь на RedisConnector

#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