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:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Terminal de Ubuntu mostrando la actualización de apt y la instalación de redis-server y php-apcu.
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
Editor de configuración de Redis que muestra TCP deshabilitado y una ruta de socket Unix con modo 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:

sudo usermod -aG redis www-data
sudo systemctl restart redis-server

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.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '/run/redis/redis-server.sock',
    ],
],
Editor de Nextcloud config.php que muestra las entradas de caché local de APCu y KeyValueCache mediante el socket de Redis.
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
Terminal Ubuntu ejecutando redis-cli contra el socket Redis de Nextcloud y mostrando PONG.
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:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '/run/redis/redis-server.sock',
    'port' => 0,
],

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.

Dejar un comentario

Configura la URL pública de Nextcloud para que pueda acceder a sí mismo.

Solucione el problema de Nextcloud que indica que falta la dirección de correo electrónico saliente configurando su URL canónica y comprobando el DNS, HTTPS y el enrutamiento del proxy inverso desde el propio servidor.

Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04

Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04

Configure APCu y Redis a través de un socket Unix local para el almacenamiento en caché y el bloqueo de archivos de Nextcloud, con pasos para las versiones actuales y anteriores de Nextcloud.

Ejecuta Nextcloud Cron automáticamente con un temporizador de Systemd.

Comprueba el modo cron de Nextcloud, repara su servicio systemd y su temporizador, y verifica que las tareas en segundo plano se ejecuten después del inicio y cada cinco minutos.

Elimina la advertencia de bloqueo de archivos de Nextcloud con Redis.

Habilite el bloqueo de archivos confiable de Nextcloud, elija el backend Redis o Valkey adecuado y verifique que la advertencia desaparezca sin riesgo de que se produzcan cambios simultáneos en los archivos.

Requisitos para obtener una calificación de seguridad A+ en Nextcloud

Requisitos para obtener una calificación de seguridad A+ en Nextcloud

Solucione los problemas comunes detectados en los análisis de Nextcloud con las últimas actualizaciones, HTTPS y HSTS, una configuración precisa de la confianza en el proxy inverso y comprobaciones con el servidor público.

Habilitar el cifrado del lado del servidor de Nextcloud con impacto medido

Configure Nextcloud SSE para el almacenamiento que lo necesite, proteja las claves de cifrado y mida el impacto en la transferencia y la CPU antes de cifrar los archivos existentes.

Agregar búsqueda de texto completo de Elasticsearch a Nextcloud

Conecta la búsqueda de archivos de Nextcloud con Elasticsearch, indexa el contenido de los documentos y elige una configuración que se adapte a las necesidades de tu servidor y de seguridad.

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Establece una política de caducidad fiable para los archivos eliminados de Nextcloud.

Configure Nextcloud para que elimine los archivos borrados después de un período de retención definido, programe tareas en segundo plano de forma fiable y evite comandos que vacíen la papelera de todos los usuarios.

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Borrar la advertencia de Nextcloud sobre índices de base de datos faltantes

Ejecuta la reparación de OCC de Nextcloud de forma segura, previsualiza los cambios en la base de datos y comprueba por qué persiste la advertencia.

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Aumentar el límite de subida web de Nextcloud por encima de 2 GB

Permita la carga de archivos más grandes en el navegador Nextcloud alineando la configuración de PHP, Nginx o Apache, el almacenamiento temporal y el tiempo de espera, y verifique qué límite está bloqueando el archivo.