В текущем руководстве администратора Nextcloud по-прежнему описывается расширение PhpRedis для кэширования Redis и транзакционной блокировки файлов. В нем также описывается более новая, не требующая расширений, версия бэкенда KeyValueCache, добавленная в Nextcloud 34.0.2. В этом руководстве используется установленная конфигурация PhpRedis, поскольку Ubuntu 24.04 предоставляет пакет расширения Redis для PHP 8.3. Более новая версия бэкенда является опцией, если ваша версия Nextcloud ее поддерживает, но ее ключи конфигурации отличаются; не следует смешивать два примера.
В результате вы получите локальный сервис Redis, доступный только хосту Nextcloud, распределенный кэш на основе Redis и блокировку файлов, а также APCu для более быстрого локального кэша. Это распространенная конфигурация с одним сервером. Если ваши веб-серверы и PHP-серверы распределены по разным хостам, используйте общую конечную точку Redis с соответствующими сетевыми настройками вместо приведенных ниже настроек localhost.
Какие изменения вносит Redis при установке Nextcloud
Redis предоставляет Nextcloud сервис типа «ключ-значение» для распределенного кэширования и транзакционных блокировок файлов. Эти блокировки помогают предотвратить конфликтующие операции при одновременной обработке файлов несколькими запросами. Redis не заменяет базу данных Nextcloud, файловое хранилище, PHP OPcache или план резервного копирования. На одном сервере APCu обычно быстрее для локального кэширования в процессе выполнения, в то время как Redis обрабатывает общий кэш и блокировки. Nextcloud также предупреждает, что использование Redis в качестве локального кэша не рекомендуется, особенно при наличии нескольких веб-серверов.
В последнем руководстве Nextcloud указано, что Redis является поддерживаемым бэкендом, а для метода на основе расширений рекомендуется PhpRedis 2.2.6 или более поздняя версия. Архив пакетов Ubuntu 24.04 включает в себя php8.3-redisи redis-server. Версии пакетов могут меняться по мере публикации обновлений Ubuntu, поэтому устанавливайте из настроенных репозиториев Ubuntu, а не закрепляйте версию, скопированную из более старого руководства. Ссылки проверены 6 октября 2026 г.: документация Nextcloud по кэшированию в памяти , список пакетов PhpRedis для Ubuntu 24.04 и список пакетов сервера Redis для Ubuntu 24.04 .
Прежде чем начать
- Подтвердите каталог установки Nextcloud и используемую веб-сайтом среду выполнения PHP. Приведенные ниже команды предполагают стандартную установку пакетов Ubuntu с PHP 8.3, Apache или PHP-FPM и учетной записью веб-службы
www-data.
- Сделайте резервную копию
config/config.phpи запишите, как её восстановить. Точный путь может отличаться: например, при установке пакета он может /var/www/nextcloud/config/config.phpнаходиться в другом месте, а при ручной установке — в другом.
- Если сервер обрабатывает активные загрузки файлов, используйте окно технического обслуживания. Перезапуск Apache или PHP-FPM на короткое время прерывает веб-запросы.
1. Установите Redis, PhpRedis и APCu.
Обновите метаданные пакета и установите демон и расширения PHP:
sudo apt update
sudo apt install redis-server php-redis php-apcu
В Ubuntu php-redisрасширение выбирается в соответствии с установленной версией PHP. Если вы используете несколько версий PHP или сторонний репозиторий PHP, убедитесь, что расширение установлено именно для той версии PHP, которая используется в Nextcloud. Включение модуля только для среды выполнения PHP из командной строки не гарантирует, что Apache или PHP-FPM смогут его загрузить.
Включите Redis при загрузке системы и запустите его сейчас, затем проверьте состояние его службы:
sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping
В ответ на последнюю команду в локальном Redis отображается корректный ответ PONG. Если служба неактивна, проверьте ее состояние sudo journalctl -u redis-server -n 50 --no-pagerперед изменением конфигурации Nextcloud.
2. Оставьте слушатель Redis локальным.
Для установки на одном хосте Redis не требует прослушивания публичного интерфейса. Конфигурация Ubuntu обычно предназначена для локального доступа и защищенного режима; /etc/redis/redis.confперед внесением изменений проверьте её:
sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf
Оставьте Redis привязанным к локальному интерфейсу (обычно это 127.0.0.1и ::1) и включите защищенный режим. Не открывайте порт 6379для доступа из интернета и не привязывайтесь к нему 0.0.0.0в этой локальной конфигурации. После любого изменения конфигурации Redis перезапустите службу и повторите процедуру redis-cli ping.
В этом руководстве используется TCP на локальном хосте для минимизации изменений прав доступа к сокету. Использование сокета Unix — ещё один поддерживаемый локальный вариант, который может уменьшить накладные расходы на соединение, но путь к сокету Redis, права владения группой, права доступа и конфигурация Nextcloud должны совпадать. Если вы намеренно выберете этот вариант, следуйте примеру с сокетом из руководства Nextcloud.
3. Убедитесь, что PHP может загрузить оба расширения.
Проверьте модули PHP, доступные через командную строку:
php -m | grep -Ei '^(apcu|redis)$'
Вы должны увидеть оба имени. Если одно из них отсутствует, проверьте файлы включенных модулей php --iniи установите соответствующий пакет для вашей версии PHP. Перезапустите обработчик PHP, используемый веб-сайтом, чтобы его рабочие процессы загрузили новые модули. Для Apache с mod_php выполните команду sudo systemctl restart apache2. Для установки PHP-FPM с использованием PHP 8.3 выполните команду sudo systemctl restart php8.3-fpm; перезапустите или перезагрузите веб-сервер в соответствии с требованиями вашей системы.
Проверка через командную строку — это полезный первый сигнал, но не полное доказательство работоспособности веб-среды. Позже используйте настройки администрирования Nextcloud и информацию о сервере или PHP, чтобы убедиться, что веб-процесс распознает модули кэширования.
4. Добавьте настройки кэширования в Nextcloud.
Откройте существующий файл config/config.phpв текстовом редакторе. Сначала сделайте резервную копию файла и объедините эти записи с существующим PHP-массивом перед его закрытием );. Не заменяйте весь файл и не добавляйте вторую копию уже существующих ключей.
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
Указанный адрес замыкания соответствует локальному сервису Redis. Если вы используете сокет Unix, укажите путь к сокету в качестве хоста Redis и настройте демона и права доступа соответствующим образом. Если Redis требует аутентификации, добавьте правильное имя пользователя и пароль ACL Redis в массив redisи настройте Redis соответствующим образом; никогда не вставляйте реальный пароль в примеры или сообщения в службе поддержки.
Сохраните существующие настройки, такие как instanceidучетные данные базы данных, доверенные домены и каталог данных, без изменений. Синтаксис массивов PHP имеет значение: разделяйте элементы запятыми и убедитесь, что каждая настройка встречается только один раз.
5. Проверьте кэш и блокировку файлов.
Запустите проверку состояния Nextcloud из командной строки из каталога установки от имени пользователя веб-службы. Замените пример пути, если ваша установка находится в другом месте:
cd /var/www/nextcloud
sudo -u www-data php occ status
Проверьте веб-интерфейс в разделе «Администрирование» на наличие предупреждений о настройке и убедитесь, что модули Redis и APCu доступны для среды выполнения PHP в веб-интерфейсе. Затем протестируйте обычные операции с файлами, используя небольшой, некритичный файл: загрузите его, переименуйте, скачайте и удалите. Страница администрирования больше не должна сообщать об отсутствии кэша в памяти, если локальный кэш настроен правильно.
Успешный результат PONGлишь подтверждает, что Redis отвечает локальному CLI-клиенту. Проверка администратора Nextcloud и стандартные операции с файлами помогают проверить расширение PHP, права доступа веб-сервера, настройки подключения Redis и конфигурацию приложения в совокупности. Не следует рассматривать более быструю загрузку страницы во время одного теста как доказательство измеренного улучшения производительности; рабочая нагрузка, хранилище, база данных и производительность PHP-процесса — все это влияет на время отклика.
Устранение распространенных проблем
На странице администратора по-прежнему отображается сообщение об отсутствии кэша памяти.
Проверьте наличие повторяющегося или неправильно написанного ключа кэша, убедитесь, что memcache.localон указывает на APCu, и перезапустите соответствующую службу Apache или PHP-FPM. Установка PHP только с использованием командной строки может отличаться от среды выполнения PHP, используемой веб-сайтом.
Redis запущен, но Nextcloud сообщает об ошибках подключения.
Сравните hostи portс config.phpпрослушивателем в /etc/redis/redis.conf. Подтвердите локальный доступ с помощью redis-cli -h 127.0.0.1 -p 6379 pingи просмотрите журналы Redis и веб-сервера. Если вы используете сокет или пароль, убедитесь, что их путь или учетные данные совпадают с обеих сторон.
После внесения изменений операции с файлами завершаются с ошибкой.
Если экземпляр становится непригодным для использования, временно восстановите резервную копию config.php, затем проверьте журналы PHP и веб-сервера. Проверьте пунктуацию массивов, убедитесь, что служба Redis активна, и проверьте, не блокирует ли веб-процесс брандмауэр или пользовательские списки контроля доступа Redis. Избегайте очистки данных Redis в качестве первого шага по устранению неполадок; изучите подключение и конфигурацию, прежде чем удалять записи кэша или блокировки.
Что не охватывает данная конфигурация
Это конфигурация для одного сервера, а не высокодоступная архитектура Redis. Она не включает в себя настройку репликации Redis, Sentinel, TLS, удаленного кэширующего хоста, хранилища сессий или кластерного развертывания Nextcloud. Многосерверные узлы Nextcloud должны использовать один и тот же распределенный кэш и систему блокировки; использование localhost на каждом узле приведет к созданию отдельных экземпляров Redis и нарушит это требование. Для удаленной или кластерной топологии следуйте инструкциям в соответствующем разделе конфигурации Nextcloud и обеспечьте безопасность обмена данными Redis для этой среды.
После стабилизации конфигурации отслеживайте использование памяти Redis и обзор администрирования Nextcloud. Выделите достаточно памяти для кэширования и работы с блокировками, избегайте непроверенных политик вытеснения, которые могут привести к потере данных блокировок, и регулярно создавайте резервные копии базы данных и файлов. Кэширование Redis может снизить накладные расходы на кэширование и блокировки, но это лишь одна из составляющих успешной установки Nextcloud, а не замена планированию мощностей.