Atualização Offline do Nextcloud: De 17.0.1 para 23.0.0

Este guia detalha o processo de atualização offline do Nextcloud de uma versão antiga (17.0.1) para uma versão mais recente (23.0.0), quando a atualização online não é viável.

Preparativos e Considerações

  • Backup: É crucial fazer backup do banco de dados e dos arquivos do Nextcloud antes de iniciar o processo. Embora o autor original tenha optado por não fazer backup do banco de dados por considerá-lo menos crítico para seu caso de uso (principalmente armazenamento de arquivos e sincronização), é altamente recomendado, especialmente se o histórico de versões de arquivos for importante.
  • Download da Nova Versão: Baixe o pacote da versão mais recente do Nextcloud (neste caso, 23.0.0) do site oficial: nextcloud.com/install/

Procedimento de Atualização

  1. Parar o Servidor Web

    Interrompa o serviço do servidor web (por exemplo, Apache ou Nginx) para evitar acesso durante a atualização.

    sudo systemctl stop httpd
    

    Se houver tarefas agendadas (cron jobs) configuradas para o Nextcloud, elas também devem ser desativadas temporariamente.

  2. Backup dos Arquivos da Versão Antiga

    Renomeie o diretório existente da instalação do Nextcloud para criar um backup. Isso preserva a configuração e os dados originais.

    mv /var/www/html/nextcloud /var/www/html/nextcloud-old
    
  3. Upload e Extração dos Novos Arquivos

    Faça o upload do arquivo ZIP da nova versão do Nextcloud para o servidor e extraia-o no diretório onde a instância anterior estava localizada.

    # Exemplo de movimentação e extração
    mv nextcloud-23.0.0.zip /tmp/
    cd /var/www/html/
    unzip /tmp/nextcloud-23.0.0.zip -d .
    chown -R apache:apache nextcloud # Ajuste o usuário e grupo conforme seu servidor
    rm /tmp/nextcloud-23.0.0.zip
    
  4. Restauração da Configuração e Dados

    Copie o arquivo de configuração e o diretório de dados da versão antiga para a nova instalação. Se você instalou aplicativos adicionais, mova-os também.

    # Copiar configuração
    cp -a /var/www/html/nextcloud-old/config/config.php /var/www/html/nextcloud/config/
    
    # Mover diretório de dados (se aplicável e se não foi copiado previamente)
    mv /var/www/html/nextcloud-old/data /var/www/html/nextcloud/
    
    # Mover aplicativos de terceiros (se houver)
    # mv /var/www/html/nextcloud-old/apps/onlyoffice /var/www/html/nextcloud/apps/
    

    Ajuste as permissões dos arquivos e diretórios da nova instalação.

    find /var/www/html/nextcloud/ -type d -exec chmod 750 {} \;
    find /var/www/html/nextcloud/ -type f -exec chmod 640 {} \;
    
  5. Iniciar o Servidor Web

    Reinicie o serviço do servidor web para que as alterações entrem em vigor.

    sudo systemctl restart httpd
    
  6. Acessar a Interface Web e Lidar com Erros Iniciais

    Ao acessar a interface web do Nextcloud, você pode encontrar um erro indicando a necessidade de uma versão mais recente do PHP (por exemplo, "This version of Nextcloud requires at least PHP 7.3").

  7. Atualização do PHP

    Se a versão do PHP instalada for muito antiga, atualize-a. O procedimento pode variar dependendo da distribuição Linux. Para CentOS 7, por exemplo, pode envolver a adição de repositórios como EPEL e Remi, e a instalação do PHP 7.3.

    # Adicionar repositórios (exemplo para CentOS 7)
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    # Habilitar o repositório correto (pode exigir edição de arquivos .repo)
    # Exemplo de instalação via yum após habilitar o repositório correto
    yum -y upgrade php* # Instala/atualiza pacotes PHP disponíveis
    systemctl restart php-fpm
    

    Reinicie o servidor web e o serviço PHP-FPM após a atualização do PHP.

  8. Forçar a Atualização (se necessário)

    Em alguns casos, o Nextcloud pode impedir a atualização se houver grandes saltos de versão. Para contornar isso, você pode editar o arquivo lib/private/Updater.php na sua instalação do Nextcloud e comentar as linhas que verificam as versões permitidas para atualização.

    // Localize e comente as seguintes linhas no arquivo lib/private/Updater.php
    // if (!$this->isUpgradePossible($installedVersion, $currentVersion, $allowedPreviousVersions)) {
    //     throw new \Exception('Updates between multiple major versions and downgrades are unsupported.');
    // }
    

    Após comentar essas linhas, acesse a interface web do Nextcloud novamente. O sistema deve permitir que você prossiga com a atualização.

  9. Conclusão da Atualização

    Após o processo, a interface web do Nextcloud deve indicar que a atulaização foi concluída com sucesso.

Tags: nextcloud atualização offline PHP Servidor Web

Publicado em 10-23 10:59