Как исправить No such file or directory at PhpRedisConnector.php:159?
После каждой перезагрузки 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 строке в этом файле
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Ошибка "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 для получения дополнительной помощи.