Dois anos atrás, publiquei uma série de artigos sobre o tópico de criação de um servidor da Web baseado no Debian 8 e o lançamento do serviço Nextcloud 11. Alguns meses depois, houve um complemento contendo informações "diferenciais" sobre a instalação do Nextcloud 13 no Debian 9. No final de 2018, apenas atualizou o Debian e o Nextcloud e não encontrou nenhum problema incomum ou interessante. A atualização no final de 2019 já era mais interessante e vale a pena escrever sobre.

Este artigo será útil principalmente para aqueles que, de acordo com as instruções dos últimos quatro artigos, “coletaram” o Nextcloud 13 no Debian 9 (envio cumprimentos a dez de meus assinantes no Nextcloud, especialmente aqueles para os quais foi a primeira experiência no mundo Linux). Para aqueles que farão um serviço do zero, recomendo que você tome como base os quatro primeiros artigos desta série, ajustados para as versões atuais do Debian 10 e Nextcloud 17. Para usuários experientes do Linux, o artigo pode ter algum lugar entre "trivial e inútil" e "não é ruim", tudo em um só lugar. ”
Sumário
Parte 1. Configurando seu ambiente Debian para uso diárioParte 2. Criando um servidor - configurando o LAMP no DebianParte 3. Criando uma nuvem pessoal - instalando e configurando o NextcloudParte 4. Atualização 2018 - Debian 9 e Nextcloud 13Parte 5. Atualizando 2019 - PHP 7.2, MariaDB 10.4 e Nextcloud 17
Navegação rápida por capítulo
PrefácioAtualização do DebianAtualização do PHP para a versão 7.2Atualize o MariaDB para a versão 10.4Atualização do Nextcloud para a versão 17Posfácio
Prefácio
Inicialmente, eu queria instalar e configurar o Nginx no Debian 10, além do qual o Nextcloud atual teria sido instalado sem problemas, mas por tudo isso, não pude escolher a hora, portanto, este artigo é um conjunto de instruções para atualizar o Nextcloud de 13 para a versão atual 17 da versão preliminar. preparando um servidor web.
Primeiro, você precisa explicar por que mudanças radicais foram necessárias no lado do servidor da web. Nosso servidor é baseado no Debian 9. atual e suportado. Você pode simplesmente atualizar o sistema operacional e todos os componentes do servidor da web receberão pelo menos atualizações de segurança. Tudo seria ótimo se usássemos o Nextcloud 13 ou atualizássemos apenas a versão 14. Mas o Nextcloud 13 não é mais suportado e o suporte para a 14ª versão está em andamento. A partir da 15ª versão, o Nexctcloud oferecerá a conversão do banco de dados em big int para suportar a codificação de quatro bytes, e com o MariaDB 10.1 isso será muito problemático. O Nexctcloud 17 requer PHP 7.1-7.3, enquanto o Debian 9 contém apenas a versão 7.0 em seus repositórios nativos. Seria mais correto, em termos de confiabilidade e previsibilidade, atualizar para a penúltima versão do Nextcloud, mas por alguns anos eu tive tanta certeza da confiabilidade desse serviço que desejei atualizar para a versão mais recente e atualizar o servidor da Web com uma reserva para o futuro. Portanto, para atualizar para o Nexctcloud 17, é ideal atualizar o MariaDB para a versão estável atual 10.4 e o PHP para 7.2. É 7.2 e não relevante 7.4. O fato é que o Nextcloud 13 requer PHP 5.6, 7.0 - 7.2 e o Nexctcloud 17 requer PHP 7.1 - 7.3. O uso do PHP 7.2 é conveniente para minimizar as ações de atualização. O servidor Apache não precisa ser atualizado - basta instalar as atualizações de segurança que são distribuídas pela equipe de suporte da Debian. Mas para atualizações, o MariaDB e o PHP precisarão conectar repositórios externos.
Quando me familiarizei com o Nextcloud, atualizei-o “manualmente”: o site foi colocado em modo de manutenção pelo console por uma equipe especial, o arquivo com a nova versão do site foi baixado e descompactado manualmente, os arquivos foram atualizados e o procedimento de atualização iniciado. Essa atualização geralmente levava aos resultados esperados, embora eu não tivesse preguiça de fazer uma cópia de backup do site, banco de dados e dados do usuário. Mas as atualizações automáticas às vezes levavam a todo tipo de surpresas. Mas já faz muito tempo, a estabilidade do mecanismo aumentou muito desde então, e dessa vez eu fiz atualizações exclusivamente através da interface da web. É verdade que ainda não era possível sair da linha de comando. Durante uma atualização iterativa para cada nova versão, vários avisos e notificações aparecerão no painel de controle, que precisará ser "removido" executando significativamente os comandos na linha de comando. Você não pode fazer isso - o serviço funcionará de qualquer maneira. Embora essa abordagem esteja fundamentalmente errada, o Nextcloud trabalhou para mim por três meses nesse modo antes de resolver deliberadamente os problemas que surgiam.
Atualização Debain
Pare o servidor da web:
E atualizado:
Após a atualização, você pode verificar a versão do sistema operacional e reiniciar para verificar se tudo começa normalmente após a atualização:
Atualização do PHP para a versão 7.2
Pare o servidor da web:
Adicione certificado e chaves PPA, repositório PHP:
Se você excluir a versão antiga do PHP 7.0, o phpmyadmin também será excluído, pois limparemos os “rastreamentos” dos pacotes removidos usando o autoremove. Isso não causará muita dificuldade, já que nenhuma configuração especial foi feita para o phpmyadmin e a instalação novamente não será um problema.
Instalando os módulos necessários para o Nextcloud 17:
[ Este texto foi escrito especificamente para habr.com por AlexanderS .
O link para a fonte é opcional, mas sua referência é altamente desejável! ]Verificamos a versão do PHP, iniciamos o servidor da web e verificamos a operabilidade do Nextcloud:
Atualize o MariaDB para a versão 10.4
O site do projeto possui uma
página interessante na qual você precisa indicar seu sistema operacional, seu lançamento e selecionar a versão do banco de dados. Uma vez selecionado, o código será gerado para adicionar o repositório.
Pare o servidor da web:
Adicione repositórios e pacotes de atualização:
Ao instalar o MariaDB, o gerenciador de pacotes excluirá corretamente a versão anterior e instalará a nova, todos os bancos de dados serão salvos. No entanto, é recomendável fazer backup do banco de dados Nextcloud.
Instale o MariaDB e execute o procedimento de atualização:
Após digitar a senha, o MariaDB será atualizado e será possível configurá-lo, seguindo as
instruções da segunda parte :
Iniciamos o servidor da web e verificamos o desempenho do Nextcloud:
Atualização do Nextcloud para a versão 17
Para iniciar a atualização, você precisa fazer login no serviço em uma entrada administrativa, prosseguir para as configurações e abrir as "Configurações Gerais" na seção administrativa. O Nextcloud mostra a versão instalada e a versão disponível para atualização, que pode ser iniciada clicando no botão "Abrir janela de atualização". Após o início, o Nextcloud faz um backup, baixa e verifica a integridade dos arquivos de atualização, ativa o modo de manutenção e atualiza os arquivos. O que se segue é a pergunta "Manter o modo de manutenção ativo"? Você precisa ter cuidado aqui. Uma resposta positiva deixará o site no modo de manutenção - pressupõe-se que o administrador saiba o que fazer em seguida e o faça manualmente. Caso contrário, o Nextcloud fará tudo sozinho, então clique em "Não" para continuar.
As atualizações são executadas iterativamente. O Nextcloud 13.x será atualizado primeiro para a versão mais recente da ramificação 14.x. Depois disso, você precisará voltar ao centro de administração e iniciar a atualização, agora das 14.x às 15.x. E assim por diante, até a última versão atual possível ser alcançada. Após cada atualização, na página Configurações Gerais na seção administrativa, uma lista de sugestões e problemas encontrados, bem como recomendações para resolvê-los, será exibida. Abaixo, falaremos sobre o que precisará ser feito após cada atualização.
Antes da atualizaçãoNas versões recentes do Nextcloud, é recomendável ativar o PHP OPcache para melhorar o desempenho. É estranho que de alguma forma eu tenha perdido esse momento alguns anos atrás, desde que o OPcache apareceu no PHP 5. No /etc/php/7.2/apache2/php.ini, você precisa descomentar e editar os seguintes parâmetros:
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 pcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
Atualização 13.x -> 14.xRestauramos os índices das tabelas:
Atualização 14.x -> 15.xPreparando o banco de dados nextcloud para ativar a codificação de quatro bytes:
Ative o suporte para codificação de quatro bytes no Nextcloud:
Transformamos tabelas:
Recupere índices perdidos da tabela:
Converta índices de tabela em bigint:
Atualização 15.x -> 16.xRecupere índices perdidos da tabela:
Converta índices de tabela em bigint:
Atualização 16.x -> 17.xNenhuma ação adicional é necessária.
Posfácio
Seguindo essas instruções, a máquina virtual com o Nextcloud 13. foi atualizada. O uso da máquina virtual permite que você não faça o backup dos arquivos e do banco de dados do Nextcloud, pois, em caso de problemas, você pode simplesmente retornar o arquivo da máquina virtual salvo anteriormente e reiniciar. No entanto, isso não se aplica à pasta de dados do usuário, que eu recomendo também fazer backup com a máquina virtual Nextcloud. No meu caso, a “nuvem” é usada como uma pasta remota com controle de versão automático, além disso, com a direção da sincronização “apenas lá”, e para mim a perda desses dados não era crítica - eu precisaria sincronizar novamente por várias horas. Apesar da minha negligência com a regra de "permanecer em segurança" desenvolvida pela minha vida, a atualização ocorreu sem problemas e todos os clientes também ganharam dinheiro com o Nextcloud 17. Sem problemas.Estou impressionado, Frank Karlitshek - você e sua equipe estão fazendo um excelente trabalho!
Após a atualização, decidi limpar os dados do usuário, que, a julgar pelas estatísticas, ocupavam dois terabytes. Eu não tinha tantos dados operacionais - a maior parte do volume era ocupada por arquivos de versão e arquivos excluídos. O problema que encontrei foi que havia tantos dados excluídos para um usuário (não é nem o volume, mas a quantidade - muitos arquivos pequenos) que o Nextcloud não pôde exibi-los na interface da web. Depois de estudar o guia de administração, encontrei a solução através da linha de comando. Talvez isso seja útil para alguém.
Para limpar os arquivos excluídos do usuário:
Para limpar os arquivos de versão do usuário:
Retorne
ao início, ao índice .
A história da criação de uma nuvem doméstica. Parte 5. Atualizando 2019 - PHP 7.2, MariaDB 10.4 e Nextcloud 17
Versão texto: 1.1.1.
Data da primeira publicação: 15/01/2020.
Última edição: 15/01/2020.
Atualizar log1.1.1 [15-01-2020]
Correção de erros de digitação.
1.1.0 [15-01-2020]
O código para preparar o banco de dados do nexcloud para ativar a codificação de quatro bytes foi corrigido.
1.0.0 [15-01-2020]
Primeira versão.