Configurar o cache Redis do Nextcloud no Ubuntu 24.04

O Nextcloud 34.0.2 introduziu um backend compatível com Redis integrado KeyValueCache, permitindo que a versão atual do Nextcloud utilize o Redis sem a necessidade de instalar a extensão Redis do PHP. Em um único servidor Ubuntu 24.04, utilize o APCu para o cache local rápido e o Redis para cache distribuído e bloqueio transacional de arquivos, conectados por meio de um socket Unix. Isso mantém o Redis fora da rede e fornece ao Nextcloud um cache compartilhado que funciona em todas as requisições PHP.

Escolha primeiro o backend Redis correto.

O Manual de Administração do Nextcloud 35 atual documenta dois caminhos para o Redis. Para o Nextcloud 34.0.2 ou posterior, o recomendado KeyValueCacheutiliza o Predis, que vem incluído no Nextcloud; você instala o servidor Redis e configura o arquivo `.redis` memcache.kvstore, mas não precisa configurar o arquivo php-redis`.redis`. Versões mais antigas do Nextcloud usam a extensão PhpRedis e um config.phpbloco de configuração diferente. Verifique sua versão com `nextcloud -v` sudo -u www-data php /var/www/nextcloud/occ status, substituindo o caminho caso sua instalação esteja em outro local.

Este guia pressupõe que o Nextcloud e o Redis estejam sendo executados no mesmo host Ubuntu, que o servidor web esteja rodando como ` www-data/var/www/html` e que você gerencie o PHP e o Redis diretamente. Se você instalou o Nextcloud via Snap, AIO, Docker ou outro dispositivo, siga as convenções de serviço e sistema de arquivos desse pacote em vez de aplicar comandos de nível de host indiscriminadamente. O APCu é mais rápido para cache local do que o Redis, enquanto o Redis é adequado para cache distribuído e bloqueio de arquivos. Consulte a documentação de cache de memória do Nextcloud .

Instale o Redis e o APCu.

Atualize o índice de pacotes do Ubuntu, instale o servidor Redis e o módulo PHP APCu e habilite o Redis na inicialização:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Terminal do Ubuntu mostrando a atualização do pacote apt e a instalação dos pacotes redis-server e php-apcu.
Instale o servidor Redis e os pacotes APCu antes de editar qualquer um dos arquivos de configuração.

No Ubuntu 24.04, a versão padrão do PHP é 8.3, e ` php-apcuapcu` é o nome do pacote de distribuição. O Redis é um serviço separado; o APCu é carregado pelo PHP. Reinicie o manipulador PHP após instalar o APCu para que o processo PHP voltado para a web carregue o módulo. Se você usa PHP-FPM, geralmente é ` php8.3-fpmphp -f apache2...

Torne o Redis local no servidor.

Para esta configuração de host único, use um socket Unix e desative o listener TCP do Redis. Edite o arquivo /etc/redis/redis.conf. Atualize as diretivas ativas existentes em vez de deixar várias cópias conflitantes e, em seguida, defina:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
O editor de configuração do Redis mostra o TCP desativado e um caminho de socket Unix com modo 770.
Utilize o mesmo caminho de socket no Redis e no Nextcloud e restrinja o acesso ao grupo do Redis.

port 0Desativa a porta TCP; o Redis passa a escutar pelo caminho do socket. O modo de permissão 770permite que o proprietário e o grupo do Redis acessem o socket, negando o acesso a outros usuários locais. Adicione a conta do servidor web ao grupo do Redis:

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

Reinicie o serviço PHP-FPM ou o Apache após alterar a associação de grupos, pois os processos em execução mantêm a lista de grupos anterior. Use o serviço que executa o PHP do Nextcloud. A documentação do Redis recomenda restringir o acesso a clientes confiáveis; um socket local evita expor uma porta de cache em uma interface voltada para a internet. Consulte as diretrizes de segurança do Redis .

Aponte o Nextcloud para o socket.

Faça um backup config/config.phpe adicione essas entradas dentro do array de configuração PHP existente. Não substitua o restante do arquivo. Use o caminho onde sua instalação do Nextcloud está localizada.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '/run/redis/redis-server.sock',
    ],
],
O editor do arquivo config.php do Nextcloud mostra as entradas do cache local do APCu e do KeyValueCache usando o socket do Redis.
Mantenha o APCu local e configure o backend de cache Redis e o host do socket no arquivo config.php.

A barra inicial no caminho do host indica ao KeyValueCache do Nextcloud para usar um socket Unix, portanto, nenhuma configuração de porta ou protocolo TCP é necessária. O Redis fornece ambos memcache.distributedos protocolos memcache.locking; este último move os bloqueios de arquivos transacionais para fora do banco de dados. Mantenha o APCu ativado para acesso ao cache local com menor latência. As entradas exatas e as opções de socket estão nas instruções do KeyValueCache e do socket Unixmemcache.local do Nextcloud e em seu guia de bloqueio de arquivos transacionais .

Verifique a conexão e solucione problemas de permissões.

Primeiro, confirme se o serviço Redis está ativo e se o socket está respondendo:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Terminal do Ubuntu executando redis-cli contra o socket Redis do Nextcloud e exibindo PONG.
Uma resposta PONG confirma que o Redis aceita uma conexão local através do socket configurado.

A resposta esperada para o segundo comando é PONG. Em seguida, faça login no Nextcloud e abra a visão geral das configurações de administração. Confirme se o aviso de cache local desapareceu e verifique o log do Nextcloud para ver se ainda há avisos relacionados ao Redis ou ao cache. Você também pode executar sudo -u www-data php /var/www/nextcloud/occ statuspara confirmar se a instância ainda carrega; este comando verifica a disponibilidade do Nextcloud, não o cache em si.

Se o Redis reportar "Permissão negada" ou o Nextcloud não conseguir conectar, verifique se o socket existe, se www-datapertence ao redisgrupo e se o grupo e o modo do socket permitem acesso. Reinicie o Redis e o manipulador PHP após alterar a associação ao grupo. Se o Redis não conseguir criar o socket, verifique se há algum erro de digitação no caminho configurado e inspecione o arquivo de configuração sudo journalctl -u redis-server -n 50. Não resolva um problema de permissão de socket expondo o Redis à rede pública.

Nextcloud antigo: use PhpRedis em vez disso.

Se a sua versão do Nextcloud for anterior à 34.0.2, instale a extensão PHP Redis que corresponda à versão do PHP que serve o Nextcloud. Em uma configuração padrão do Ubuntu 24.04 com PHP 8.3, o pacote é php-redis`php.extensions.php`; o Ubuntu o lista como a extensão Redis do PHP 8.3. Reinicie o processo PHP ativo após a instalação. Em `php.extensions.php` config.php, use as classes Redis legadas e o bloco de conexão em vez das entradas `KeyValueCache` acima:

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

A lista de pacotes do Noble php-redis no Ubuntu confirma o mapeamento de pacotes. Não configure ambos os backends simultaneamente. Após salvar a configuração correspondente, repita o teste de ping no socket e a verificação da visão geral do painel de administração do Nextcloud.

Deixar um comentário

Configure o URL público do Nextcloud para que ele possa se acessar.

Corrija o aviso de endereço de saída ausente do Nextcloud definindo seu URL canônico e verificando o DNS, HTTPS e roteamento de proxy reverso no próprio servidor.

Configurar o cache Redis do Nextcloud no Ubuntu 24.04

Configurar o cache Redis do Nextcloud no Ubuntu 24.04

Configure o APCu e o Redis através de um socket Unix local para cache e bloqueio de arquivos do Nextcloud, com instruções para versões atuais e antigas do Nextcloud.

Configure o Cron do Nextcloud para funcionar automaticamente com um temporizador do Systemd.

Verifique o modo cron do Nextcloud, repare o serviço systemd e o temporizador, e certifique-se de que as tarefas em segundo plano sejam executadas após a inicialização e a cada cinco minutos.

Remova o aviso de bloqueio de arquivos do Nextcloud com o Redis.

Habilite o bloqueio de arquivos confiável do Nextcloud, escolha o backend Redis ou Valkey adequado e verifique se o aviso desaparece sem risco de alterações simultâneas nos arquivos.

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

Corrija problemas comuns encontrados em verificações do Nextcloud com as atualizações mais recentes, HTTPS e HSTS, configuração precisa de proxy reverso e verificações em relação ao servidor público.

Habilite a criptografia do lado do servidor do Nextcloud com impacto mensurável.

Configure o Nextcloud SSE para o armazenamento que precisa dele, proteja as chaves de criptografia e meça o impacto na transferência e na CPU antes de criptografar os arquivos existentes.

Adicione a pesquisa de texto completo do Elasticsearch ao Nextcloud.

Conecte a busca de arquivos do Nextcloud ao Elasticsearch, indexe o conteúdo dos documentos e escolha uma configuração que se adapte às suas necessidades de servidor e segurança.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Configure o Nextcloud para remover arquivos excluídos após um período de retenção definido, agendar tarefas em segundo plano de forma confiável e evitar comandos que esvaziam a lixeira de todos os usuários.

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Execute o reparo do OCC do Nextcloud com segurança, visualize as alterações no banco de dados e verifique por que o aviso pode persistir.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Permita uploads maiores pelo navegador Nextcloud alinhando as configurações de PHP, Nginx ou Apache, armazenamento temporário e tempo limite — e verifique qual limite está bloqueando o arquivo.