Поиск по сайту:
Женщина смеется, когда может, и плачет, когда хочет (Ж. Баиф).

Как исправить ошибку “Ошибка установления соединения Redis (Error establishing a Redis connection)”?

20.02.2025
Как исправить ошибку “Ошибка установления соединения Redis (Error establishing a Redis connection)”

В этой статье мы расскажем всё о самой известной ошибке Redis в WordPress, известной как «Ошибка при установлении соединения с Redis (Error establishing a Redis connection)», и о возможных способах её устранения. Эта проблема может быть вызвана неправильной установкой и настройкой службы Redis, неправильными настройками в файле wp-config.php, проблемами с сетью, конфликтами плагинов в WordPress и т. д. В следующих разделах мы сначала расскажем о Redis и о том, как устранить проблемы, чтобы ваш сайт снова стал доступен. Мы будем использовать ОС Ubuntu 24.04 и предположим, что у вас уже есть рабочая установка WordPress. Давайте начнем!

 

Что такое Redis?

Redis — это кэш-память с открытым исходным кодом, используемая в качестве кэша приложения, которая хранит данные в оперативной памяти, а не на диске, что повышает надёжность и скорость работы веб-сайта. Redis может быть установлен локально на том же хосте, что и приложение, и удалённо независимо от веб-сайта. Разница в том, что локально установленный Redis может занимать весь процессор или оперативную память и замедлять работу компьютера, делая веб-сайт недоступным из-за нехватки оперативной памяти или процессора. С другой стороны, удалённая установка Redis может привести к задержкам и разрывам соединения между сервером приложений и сервером Redis. Однако рекомендуется использовать Redis обоими способами, и Redis является мощным решением для кэширования на вашем сайте.

В следующих нескольких абзацах мы объясним, какие проблемы могут привести к ошибке при установлении соединения с Redis и как их можно устранить.

 

1. Сервис Redis

Если ваш браузер выдаёт ошибку при установлении соединения с Redis, в первую очередь вам нужно проверить, работает ли служба Redis на вашем сервере. Войдите на свой сервер через SSH и выполните следующую команду:

sudo systemctl status redis

 

В этом случае возможны два сценария. Когда служба остановлена ИЛИ служба не найдена. Первый сценарий должен выглядеть следующим образом:

root@host:~# sudo systemctl status redis
○ redis-server.service - Advanced key-value store
     Loaded: loaded (/usr/lib/systemd/system/redis-server.service; enabled; preset: enabled)
     Active: inactive (dead) since Tue 2025-01-07 13:43:35 CST; 2h ago
   Duration: 23min 55.576s
       Docs: http://redis.io/documentation,
             man:redis-server(1)
    Process: 299638 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd --daemonize no (code=exited, status=0/SUCCESS)
   Main PID: 299638 (code=exited, status=0/SUCCESS)
     Status: "Saving the final RDB snapshot"
        CPU: 2.807s
Jan 07 16:58:35 host.test.vps systemd[1]: Stopped redis-server.service - Advanced key-value store.
Jan 07 16:58:35 host.test.vps systemd[1]: redis-server.service: Consumed 2.807s CPU time, 3.8M memory peak, 0B memory swap peak.

 

Читать  Как исправить ошибку 401 - Unauthorized

В этом случае нам нужно только запустить службу Redis с помощью следующей команды:

sudo systemctl start redis

 

Чтобы проверить состояние сервиса, выполните приведенную ниже команду:

sudo systemctl status redis

 

Вы должны получить результат, подобный этому:

root@host:~# sudo systemctl status redis
● redis-server.service - Advanced key-value store
     Loaded: loaded (/usr/lib/systemd/system/redis-server.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-01-07 13:51:38 CST; 3s ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 306399 (redis-server)
     Status: "Ready to accept connections"
      Tasks: 5 (limit: 4613)
     Memory: 3.3M (peak: 3.8M)
        CPU: 98ms
     CGroup: /system.slice/redis-server.service
             └─306399 "/usr/bin/redis-server 127.0.0.1:6379"

Jan 07 13:51:38 host.test.vps systemd[1]: Starting redis-server.service - Advanced key-value store...
Jan 07 13:51:38 host.test.vps systemd[1]: Started redis-server.service - Advanced key-value store.

 

Результат второго сценария будет выглядеть следующим образом:

root@host:~# sudo systemctl status redis
Unit redis.service could not be found.

 

Это означает, что служба Redis не существует и была каким-то образом случайно удалена. Чтобы установить её снова, выполните следующую команду:

sudo apt install redis -y

 

После установки вы можете запустить службу с помощью той же команды, которую мы привели выше:

sudo systemctl start redis

 

Чтобы проверить, запущен ли Redis, вы можете использовать приведенную ниже команду:

netstat -tunlp | grep 6379

 

Вы должны получить следующий результат:

root@host:~# netstat -tunlp | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      307089/redis-server 
tcp6       0      0 ::1:6379                :::*                    LISTEN      307089/redis-server

 

Читать  25 наиболее распространенных ошибок WordPress и как их исправить

По умолчанию Redis работает на порту 6379, и в выводе указано, что этот сервис прослушивает этот порт.

 

2. Проверьте брандмауэр

Если сервер Redis недоступен с сервера приложений, нам нужно открыть порт 6379 в брандмауэре на сервере, где установлен Redis. Чтобы открыть порт в Iptables, можно использовать следующие команды:

iptables -A INPUT -p tcp --dport 6379 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 6379 -j ACCEPT

 

Чтобы открыть порт с помощью UFW, вы можете использовать следующую команду:

sudo ufw allow 6379

sudo ufw reload

 

3. Redis-Cli

Другой способ проверить, правильно ли работает Redis, — использовать команду redis-cli. Для этого выполните следующую команду:

redis-cli ping

 

Если все в порядке, вы должны получить следующие выходные данные:

root@host:~# redis-cli ping
PONG

 

4. Проверьте wp-config.php Конфигурацию

Мы предполагаем, что ранее Redis работал нормально, но по какой-то причине в браузере появилась ошибка при установлении соединения с Redis. Откройте файл wp-config.php в вашем любимом редакторе и обратите внимание на эти строки кода:

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'StrongPasswordForRedisHere');
define( 'WP_REDIS_TIMEOUT', 2 );
define( 'WP_REDIS_READ_TIMEOUT', 2 );

 

Эти строки кода определяют хост Redis, порт, пароль и время ожидания. Если другие настройки в порядке, вы можете попробовать увеличить время ожидания. Другой вариант — проверить, работает ли Redis на удалённом компьютере. Если хост Redis прослушивает общедоступный IP-адрес, вам следует подключиться к этому удалённому серверу и вернуться к первым двум шагам, чтобы проверить службу Redis.

 

5. Переустановите плагин Redis Object Cache Plugin

Войдите в панель администратора WordPress. В левом меню перейдите в раздел «Плагины» -> «Установленные плагины». Найдите «Объектный кэш Redis», установите флажок, чтобы выбрать плагин, и нажмите кнопку «Отключить».

После отключения плагина мы можем безопасно удалить его, нажав кнопку удалить.

Читать  Как исправить ошибку «dpkg-deb: lzma error: compressed data is corrupt» в Debian 12 и Ubuntu Linux

Теперь мы можем установить его с нуля. Снова перейдите в раздел «Плагины» -> «Добавить новый плагин» и в поле поиска введите «Кэш объектов Redis». Плагин появится слева, и вы сможете нажать кнопку «Установить сейчас».

 

6. Отключите плагин Redis Object Cache Plugin

Предположим, вы не можете выполнить предыдущий шаг и получить доступ к панели администратора WordPress. В этом случае вы можете отключить плагин Redis Object Cache через терминал непосредственно в каталоге плагинов WordPress. Для этого перейдите в корневой каталог вашего сайта.

cd /var/www/html/wordpress/wp-content/plugins/

 

После перехода перечислите содержимое каталога:

ls -al

 

Вы должны получить результат, аналогичный этому, или со списком с большим количеством плагинов:

drwxr-xr-x 4 www-data www-data 4096 Nov 21 08:07 akismet
-rw-r--r-- 1 www-data www-data 2578 Mar 18  2019 hello.php
-rw-r--r-- 1 www-data www-data   28 Jun  5  2014 index.php
drwxr-xr-x 6 www-data www-data 4096 Jan  7 15:30 redis-cache

 

Чтобы отключить плагин Redis Object Cache, выполните следующую команду:

mv redis-cache/ redis-cache.disabled/

 

Как только это будет сделано, перейдите в каталог wp-content (на один каталог назад):

cd /var/www/html/wordpress/wp-content/

 

Удалите файл object-cache.php:

rm object-cache.php

 

Как только это будет сделано, вы сможете повторно запустить свой веб-сайт.

 

7. Проверьте журнал Redis

Последнее, что нужно проверить, — это файл журнала сервера Redis. Чтобы проверить файл журнала Redis, выполните следующую команду:

tail -f /var/log/redis/redis-server.log

 

С помощью этой команды вы можете просматривать журнал в режиме реального времени на своём сервере и все входящие запросы, когда браузер выдаёт ошибку при установлении соединения с Redis.

Вот и всё! Вы узнали, как исправить ошибку при установлении соединения с Redis.

Если вам понравилась эта статья о сбое при установлении соединения Redis в WordPress, пожалуйста, поделитесь ею со своими друзьями или оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Воспроизводимые сборки - это одна из целей дистрибутивов Linux, направленная на…

Спасибо!

Теперь редакторы в курсе.