強制更新因PHP更新而無法啟動的Nextcloud

大家好,我是無能。
由於一次性將PHP升級到8.2.7,原本支援PHP8.0的Nextcloud無法啟動了。
This version of Nextcloud is not compatible with PHP>=8.2.
You are currently running 8.2.7.
只顯示這段訊息,即使嘗試從CLI更新,也無法進行CLI更新。
因此,我找到了一個偽裝Nextcloud識別的PHP版本的方法。
位置在Nextcloud目錄下的/nextcloud/lib/versioncheck.php。
※以下是已經更新過的內容。註解部分很長,所以已刪除。
<?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版本相同或更高。
就我而言,因為是PHP8.2.7,所以我修改如下:
if (PHP_VERSION_ID >= 80207) {
之後從CLI執行
sudo -u www-data php /var/www/html/cloud/occ update:check
就成功了。
請指定使用者並設定正確的路徑,以便occ能夠啟動。
雖然一口氣升級到了最新版本,但操作變得非常流暢,結果我覺得是好的。
不過,這種設計是怎麼回事呢...。
我覺得無論PHP如何,都應該預設就能更新,但我不清楚為什麼會採用這種設計。
那麼,下次再見。