Forçando a atualização do Nextcloud que não inicia mais devido à atualização do PHP

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

images.png

Olá, sou o Munou.

Ao atualizar de uma vez para o PHP 8.2.7, o Nextcloud, que era suportado até o PHP 8.0, parou de iniciar.

This version of Nextcloud is not compatible with PHP>=8.2.
You are currently running 8.2.7.

Apenas esta mensagem é exibida, e mesmo tentando atualizar via CLI, a atualização não é possível.

Sendo assim, encontrei uma maneira de falsificar a versão do PHP que o Nextcloud reconhece.

O local é /nextcloud/lib/versioncheck.php dentro do diretório do Nextcloud.
*O trecho abaixo já está atualizado. As partes comentadas foram removidas por serem longas.

<?php

declare(strict_types=1);

if (PHP_VERSION_ID < 80000) {
	http_response_code(500);
	echo 'This version of Nextcloud requires at least PHP 8.0<br/>';
	echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.';
	exit(1);
}

// Show warning if >= PHP 8.3 is used as Nextcloud is not compatible with >= PHP 8.3 for now
if (PHP_VERSION_ID >= 80300) {
	http_response_code(500);
	echo 'This version of Nextcloud is not compatible with PHP>=8.3.<br/>';
	echo 'You are currently running ' . PHP_VERSION . '.';
	exit(1);
}

O problema está aqui.

if (PHP_VERSION_ID >= 80300) {

Como a versão é verificada aqui, por favor, defina-a para ser igual ou superior à versão do PHP que você tem instalada.

No meu caso, como era PHP 8.2.7, fiz a seguinte alteração:

if (PHP_VERSION_ID >= 80207) {

Depois disso, via CLI

sudo -u www-data php /var/www/html/cloud/occ update:check

funcionou.
Por favor, especifique o usuário e defina o caminho apropriado para que o occ possa ser iniciado.

Embora eu tenha atualizado para a versão mais recente de uma vez, a operação ficou bem mais leve, e acho que no final foi bom.
Mas, o que dizer sobre essa especificação...?
Independentemente do PHP, sinto que deveria ser possível atualizar por padrão, mas não está claro por que tal especificação foi adotada.

Até a próxima.

Related Posts