Inicio
» Cómo
»
Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04
Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04
Nextcloud 34.0.2 introdujo un backend compatible con Redis KeyValueCache, por lo que la versión actual de Nextcloud puede usar Redis sin necesidad de instalar la extensión Redis de PHP. En un único servidor Ubuntu 24.04, utilice APCu para la caché local rápida y Redis para el almacenamiento en caché distribuido y el bloqueo transaccional de archivos, conectados mediante un socket Unix. Esto mantiene Redis fuera de la red y proporciona a Nextcloud una caché compartida que funciona con todas las solicitudes PHP.
Primero, elige el backend de Redis adecuado.
El manual de administración de Nextcloud 35 actual documenta dos rutas de Redis. Para Nextcloud 34.0.2 o posterior, se recomienda KeyValueCacheusar Predis incluido con Nextcloud; se instala el servidor Redis y se configura memcache.kvstore, pero no se necesita php-redis. Las versiones anteriores de Nextcloud usan la extensión PhpRedis y un config.phpbloque diferente. Compruebe su versión con sudo -u www-data php /var/www/nextcloud/occ status, reemplazando la ruta si su instalación se encuentra en otro lugar.
Esta guía asume que Nextcloud y Redis se ejecutan en el mismo host Ubuntu, el servidor web se ejecuta como www-datay usted administra PHP y Redis directamente. Si instaló Nextcloud a través de Snap, AIO, Docker u otro dispositivo, siga las convenciones de servicio y sistema de archivos de ese paquete en lugar de aplicar comandos a nivel de host sin más. APCu es más rápido para el almacenamiento en caché local que Redis, mientras que Redis es adecuado para el almacenamiento en caché distribuido y los bloqueos de archivos. Consulte la documentación sobre el almacenamiento en caché de memoria de Nextcloud .
Instalar Redis y APCu
Actualiza el índice de paquetes de Ubuntu, instala el servidor Redis y el módulo PHP APCu, y habilita Redis al arrancar el sistema:
Instale el servidor Redis y los paquetes APCu antes de editar cualquiera de los archivos de configuración.
En Ubuntu 24.04, la versión predeterminada de PHP es la 8.3, y php-apcues el nombre del paquete de la distribución. Redis es un servicio independiente; APCu se carga mediante PHP. Reinicie el controlador de PHP después de instalar APCu para que el proceso PHP que interactúa con la web cargue el módulo. Si usa PHP-FPM, normalmente es php8.3-fpm; si Apache usa mod_php, reinicie apache2. Verifique los nombres de sus servicios activos antes de reiniciar.
Configurar Redis localmente en el servidor.
Para esta configuración de un solo host, use un socket Unix y desactive el oyente TCP de Redis. Edite /etc/redis/redis.conf. Actualice las directivas activas existentes en lugar de dejar varias copias conflictivas, luego configure:
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
Utilice la misma ruta de socket en Redis y Nextcloud, y restrinja el acceso al grupo de Redis.
port 0Deshabilita el puerto TCP; Redis escucha a través de la ruta del socket. El modo de permisos 770permite que el propietario y el grupo de Redis accedan al socket, denegando el acceso a otros usuarios locales. Agregue la cuenta del servidor web al grupo de Redis:
Reinicie el servicio PHP-FPM o Apache después de cambiar la pertenencia a grupos, ya que los procesos en ejecución conservan su lista de grupos anterior. Utilice el servicio que ejecuta el PHP de Nextcloud. La documentación de Redis recomienda restringir el acceso a clientes de confianza; un socket local evita exponer un puerto de caché en una interfaz con acceso a internet. Consulte la guía de seguridad de Redis .
Apunte Nextcloud al socket
Realice una copia de seguridad config/config.phpy, a continuación, añada estas entradas dentro del array de configuración PHP existente. No reemplace el resto del archivo. Utilice la ruta donde se encuentra su instalación de Nextcloud.
Mantén APCu en modo local y configura tanto el backend de caché de Redis como el host del socket en config.php.
La barra diagonal inicial en la ruta del host le indica a KeyValueCache de Nextcloud que use un socket Unix, por lo que no se necesita ninguna configuración de puerto TCP ni de protocolo. Redis proporciona ambos memcache.distributedy memcache.locking; este último traslada los bloqueos de archivos transaccionales fuera de la base de datos. Mantén en APCu para un acceso a la caché local de menor latencia. Las entradas exactas y las opciones de socket se encuentran en las instrucciones de KeyValueCache y socket Unixmemcache.local de Nextcloud y en su guía de bloqueo de archivos transaccionales .
Verifica la conexión y soluciona los problemas de permisos.
Primero, confirme que el servicio Redis está activo y que el socket responde:
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Una respuesta PONG confirma que Redis acepta una conexión local a través del socket configurado.
La respuesta esperada al segundo comando es PONG. A continuación, inicia sesión en Nextcloud y abre la vista general de la configuración de administración. Confirma que la advertencia de caché local haya desaparecido y revisa el registro de Nextcloud para ver si persiste alguna advertencia de Redis o de caché. También puedes ejecutar sudo -u www-data php /var/www/nextcloud/occ statuspara confirmar que la instancia aún se carga; este comando comprueba la disponibilidad de Nextcloud, no la caché en sí.
Si Redis informa "Permiso denegado" o Nextcloud no puede conectarse, verifique que el socket exista, que www-datapertenezca al redisgrupo y que el grupo y el modo del socket permitan el acceso. Reinicie Redis y el controlador PHP después de cambiar la pertenencia al grupo. Si Redis no puede crear el socket, verifique si hay un error tipográfico en la ruta configurada e inspeccione el archivo sudo journalctl -u redis-server -n 50. No solucione un problema de permisos de socket abriendo Redis a la red pública.
Nextcloud antiguo: utilice PhpRedis en su lugar.
Si su versión de Nextcloud es anterior a la 34.0.2, instale la extensión PHP Redis que coincida con la versión de PHP que sirve a Nextcloud. En una configuración estándar de Ubuntu 24.04 con PHP 8.3, el paquete es php-redis; Ubuntu lo lista como la extensión PHP 8.3 Redis. Reinicie el controlador PHP activo después de instalarlo. En config.php, use las clases Redis heredadas y el bloque de conexión en lugar de las entradas KeyValueCache anteriores:
La lista de paquetes Noble php-redis de Ubuntu confirma la asignación de paquetes. No configure ambos backends a la vez. Después de guardar la configuración correspondiente, repita la comprobación de ping de socket y la vista general de administración de Nextcloud.