Принудительное обновление Nextcloud, который перестал запускаться после обновления PHP

3 min

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

images.png

Здравствуйте, я бездарь.

Из-за внезапного обновления до PHP 8.2.7, Nextcloud, который поддерживался до PHP 8.0, перестал запускаться.

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

Отображается только это сообщение, и даже при попытке обновиться через CLI, обновление становится невозможным.

Итак, я нашел способ подделать версию PHP, которую распознает Nextcloud.

Расположение: /nextcloud/lib/versioncheck.php внутри директории Nextcloud.
*Ниже приведена уже обновленная версия. Длинные закомментированные части удалены.

<?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);
}

Проблема здесь.

if (PHP_VERSION_ID >= 80300) {

Поскольку здесь проверяется версия, пожалуйста, установите ее равной или выше версии PHP, которую вы установили.

В моем случае, поскольку это был PHP 8.2.7, я изменил его следующим образом.

if (PHP_VERSION_ID >= 80207) {

Затем из CLI

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

прошло успешно.
Пожалуйста, укажите пользователя и установите соответствующий путь, чтобы occ мог быть запущен.

Я обновил его до последней версии, и в итоге это оказалось хорошо, потому что работа стала намного легче.
Но что насчет этой спецификации...?
Мне кажется, что обновление должно быть возможно по умолчанию, независимо от PHP, но причина принятия такой спецификации мне неизвестна.

До новых встреч.

Related Posts