Как исправить No such file or directory at PhpRedisConnector.php:159?

Ссылка скопирована
1 ответ

После каждой перезагрузки redis или сервера в логе laravel появляется ошибка:
spoiler

No such file or directory {"exception":"[object] (RedisException(code: 0): No such file or directory at /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:159) [stacktrace] #0 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(159): Redis->connect() #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(88): Illuminate\Redis\Connectors\PhpRedisConnector->establishConnection() #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php(307): Illuminate\Redis\Connectors\PhpRedisConnector->Illuminate\Redis\Connectors\{closure}() #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(79): tap() #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(33): Illuminate\Redis\Connectors\PhpRedisConnector->createClient() #5 [internal function]: Illuminate\Redis\Connectors\PhpRedisConnector->Illuminate\Redis\Connectors\{closure}() #6 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php(535): call_user_func() #7 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php(54): Illuminate\Redis\Connections\PhpRedisConnection->command() #8 /var/www/html/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(65): Illuminate\Redis\Connections\PhpRedisConnection->get() #9 /var/www/html/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(99): Illuminate\Cache\RedisStore->get() #10 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(268): Illuminate\Cache\Repository->get() #11 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(228): Illuminate\Console\Scheduling\ScheduleRunCommand->shouldInterrupt() #12 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(138): Illuminate\Console\Scheduling\ScheduleRunCommand->repeatEvents() #13 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->handle() #14 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #15 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #16 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod() #17 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call() #18 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\Container\Container->call() #19 /var/www/html/vendor/symfony/console/Command/Command.php(326): Illuminate\Console\Command->execute() #20 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\Component\Console\Command\Command->run() #21 /var/www/html/vendor/symfony/console/Application.php(1096): Illuminate\Console\Command->run() #22 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand() #23 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun() #24 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(201): Symfony\Component\Console\Application->run() #25 /var/www/html/artisan(35): Illuminate\Foundation\Console\Kernel->handle() #26 {main} "}

No such file or directory {"exception":"[object] (RedisException(code: 0): No such file or directory at /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:159) [stacktrace] #0 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(159): Redis->connect() #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(88): Illuminate\Redis\Connectors\PhpRedisConnector->establishConnection() #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php(307): Illuminate\Redis\Connectors\PhpRedisConnector->Illuminate\Redis\Connectors\{closure}() #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(79): tap() #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(33): Illuminate\Redis\Connectors\PhpRedisConnector->createClient() #5 [internal function]: Illuminate\Redis\Connectors\PhpRedisConnector->Illuminate\Redis\Connectors\{closure}() #6 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php(535): call_user_func() #7 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php(54): Illuminate\Redis\Connections\PhpRedisConnection->command() #8 /var/www/html/vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(65): Illuminate\Redis\Connections\PhpRedisConnection->get() #9 /var/www/html/vendor/laravel/framework/src/Illuminate/Cache/Repository.php(99): Illuminate\Cache\RedisStore->get() #10 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(268): Illuminate\Cache\Repository->get() #11 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(228): Illuminate\Console\Scheduling\ScheduleRunCommand->shouldInterrupt() #12 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(138): Illuminate\Console\Scheduling\ScheduleRunCommand->repeatEvents() #13 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Console\Scheduling\ScheduleRunCommand->handle() #14 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #15 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #16 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod() #17 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call() #18 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(211): Illuminate\Container\Container->call() #19 /var/www/html/vendor/symfony/console/Command/Command.php(326): Illuminate\Console\Command->execute() #20 /var/www/html/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Symfony\Component\Console\Command\Command->run() #21 /var/www/html/vendor/symfony/console/Application.php(1096): Illuminate\Console\Command->run() #22 /var/www/html/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand() #23 /var/www/html/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun() #24 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(201): Symfony\Component\Console\Application->run() #25 /var/www/html/artisan(35): Illuminate\Foundation\Console\Kernel->handle() #26 {main} "}

Ошибка ссылается на код

$client->{$persistent ? 'pconnect' : 'connect'}(...$parameters);

$client->{$persistent ? 'pconnect' : 'connect'}(...$parameters);

из функции файла PhpRedisConnector.php:

protected function establishConnection($client, array $config)     {         $persistent = $config['persistent'] ?? false;          $parameters = [             $this->formatHost($config),             $config['port'],             Arr::get($config, 'timeout', 0.0),             $persistent ? Arr::get($config, 'persistent_id', null) : null,             Arr::get($config, 'retry_interval', 0),         ];          if (version_compare(phpversion('redis'), '3.1.3', '>=')) {             $parameters[] = Arr::get($config, 'read_timeout', 0.0);         }          if (version_compare(phpversion('redis'), '5.3.0', '>=') && ! is_null($context = Arr::get($config, 'context'))) {             $parameters[] = $context;         }          $client->{$persistent ? 'pconnect' : 'connect'}(...$parameters);     }

protected function establishConnection($client, array $config) { $persistent = $config['persistent'] ?? false; $parameters = [ $this->formatHost($config), $config['port'], Arr::get($config, 'timeout', 0.0), $persistent ? Arr::get($config, 'persistent_id', null) : null, Arr::get($config, 'retry_interval', 0), ]; if (version_compare(phpversion('redis'), '3.1.3', '>=')) { $parameters[] = Arr::get($config, 'read_timeout', 0.0); } if (version_compare(phpversion('redis'), '5.3.0', '>=') && ! is_null($context = Arr::get($config, 'context'))) { $parameters[] = $context; } $client->{$persistent ? 'pconnect' : 'connect'}(...$parameters); }

Как исправить эту проблему?

Дополнительно:

А потом сайт работает?
Судя по коду, это попытка подключения к базе Reddis.

А используется ли у Вас подключение к Reddis, через соке оно или через сеть - это Вам виднее. Параметры подключения Вы спрятали....

  • php:159

    это еще не значит, что именно на 159 строке в этом файле

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Ошибка "No such file or directory" в PhpRedisConnector.php:159 указывает на то, что скрипт не может найти указанный файл или директорию в указанном пути. Это может быть вызвано неправильным путем к файлу, отсутствием файла или недостаточными правами доступа к нему.

    Для исправления этой проблемы, следует выполнить следующие шаги:

    1. Проверьте правильность пути к файлу в PhpRedisConnector.php на строке 159. Убедитесь, что путь указан верно и файл существует в указанном месте.

    2. Удостоверьтесь, что у скрипта достаточно прав для доступа к файлу. Проверьте права доступа к файлу и директории, в которой он находится. Установите правильные права доступа, если это необходимо.

    3. Проверьте, что файл PhpRedisConnector.php действительно существует в указанном месте. Если файл отсутствует, убедитесь, что он был правильно загружен на сервер.

    Приведенные выше шаги должны помочь вам исправить ошибку "No such file or directory" в PhpRedisConnector.php:159. После выполнения этих действий, перезапустите скрипт и убедитесь, что проблема решена. Если проблема не решена, попробуйте обратиться к сообществу разработчиков или к документации по использованию PhpRedisConnector для получения дополнительной помощи.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно