升級Nextcloud的2種方法 [Command-Line & GUI]

重要的是要使您的Nextcloud服務器保持最新狀態,並具有最新的安全性和錯誤修復程序。 本教程將向您展示如何使用更新程序應用程序升級NextCloud,該程序可自動執行手動升級的許多步驟。

先決條件

您應該已啟動並運行Nextcloud實例。 如果沒有,請按照下面的教程之一來設置您的Nextcloud服務器。

  • 使用Apache(LAMP Stack)在Ubuntu 20.04上安裝NextCloud
  • 在具有Nginx的Ubuntu 20.04(LEMP Stack)上安裝NextCloud
  • 使用Nginx(LEMP Stack)在CentOS 8 / RHEL 8上安裝NextCloud

備份您的Nextcloud

在更新Nextcloud之前,您應該備份NextCloud數據庫和配置文件。

備份NextCloud數據庫

要備份NextCloud數據庫,首先您需要通過在NextCloud服務器上運行以下命令來找出數據庫名稱。

sudo mysql -u root -e "show databases"

如果您的MariaDB需要密碼驗證,請改為運行此命令。 輸入MariaDB / MySQL根用戶的密碼。

mysql -u root -p -e "show databases"

您將看到類似下面的內容:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nextcloud          |
| performance_schema |
+--------------------+

如您所見,我的NextCloud數據庫名稱是 nextcloud。 確定NextCloud數據庫名稱後,請使用 mysqldump 進行如下備份的實用程序。 將紅色文本替換為您自己的NextCloud數據庫名稱。

sudo mysqldump -u root nextcloud-database-name > ~/nextcloud.sql

或者

mysqldump -u root -p nextcloud-database-name > ~/nextcloud.sql

上面的命令創建一個轉儲文件(nextcloud.sql)放在主目錄下,如果發生任何災難性事件,它可以用於還原Nextcloud數據庫。

備份NextCloud Config文件夾

要備份NextCloud的配置文件夾,請先cd進入Nextcloud的安裝目錄。 (根據您的設置,您的Nextcloud安裝目錄可能會有所不同。例如,如果您使用LAMP堆棧設置Nextcloud,則該目錄可能是 /var/www/nextcloud/。 如果您使用LEMP堆棧設置Nextcloud,則數據目錄可能是 /usr/share/nginx/nextcloud/)。

cd /var/www/nextcloud/

然後使用 tar 備份配置文件夾。

sudo tar -cpzvf ~/nextcloud-config.tar.gz config/

因為 config.php 文件僅由Web服務器讀取,因此我們必須添加 sudo。 備份文件(nextcloud-config.tart.gz)將放置在您的主目錄下。

現在,讓我們升級NextCloud。

筆記注意:升級到下一個主要版本之前,您必須先升級到最新版本。

從命令行升級Nextcloud

與基於Web的更新程序相比,命令行方法更有效,並且您將看到更少的錯誤。 如果您的Nextcloud實例有很多用戶和文件,則應使用命令行方法。

轉到NextCloud安裝目錄。 (根據您的設置,您的Nextcloud安裝目錄可能會有所不同。例如,如果您使用LAMP堆棧設置Nextcloud,則該目錄可能是 /var/www/nextcloud/。 如果您使用LEMP堆棧設置Nextcloud,則數據目錄可能是 /usr/share/nginx/nextcloud/)。

cd /var/www/nextcloud/

然後運行啟動基於命令行的更新程序。

sudo -u www-data php7.4 updater/updater.phar --no-interaction

www-data 是Web服務器的用戶名,在您的系統上可能有所不同。

  • 在Debian / Ubuntu上,通常是 www-data
  • 在CentOS / RHEL上,通常是 apache 對於Apache Web服務器和 nginx 用於Nginx Web服務器。
  • 在Arch Linux上,通常 http

從命令行升級Nextcloud

升級完成後,請轉到 Settings -> Overview 頁面,您將看到您的Nextcloud版本是最新的。

筆記:不要忘記在升級後重新啟用第三方應用程序。

使用基於Web的圖形化更新程序升級NextCloud

轉到NextCloud Settings 頁,然後選擇 Overview 左側邊欄上的標籤。 如果有新版本可用,請單擊 Open updater 按鈕。

使用基於Web的圖形化更新程序升級NextCloud

然後點擊 start update 按鈕。

nextcloud升級

NextCloud將進入維護模式並為升級做準備。 如果遇到錯誤,請檢查本文後面部分中的疑難解答提示。

升級nextcloud

完成此步驟後,您可以選擇使維護處於活動狀態或禁用維護模式。

  • 如果您有大型的NextCloud安裝(許多用戶和文件),則建議選擇 Yes 並使用命令行更新NextCloud。
  • 如果您的NextCloud安裝很小,則可以選擇 No 並使用基於Web的更新程序。

nextcloud維護模式

如果你選擇 No,然後點擊 Go back to your Nextcloud intance to finish the update 按鈕。 您將被重定向到NextCloud主頁,並顯示以下屏幕。 點擊 Start Update

nextcloud更新

更新時間取決於您的安裝大小。 以我為例,它在幾秒鐘內完成。 更新完成後,請轉到 Settings -> Overview 頁面,您將看到您的Nextcloud版本是最新的。

如果你選擇 Yes 在上一步中,則需要進入NextCloud安裝目錄並發出命令以開始升級。 (根據您的設置,您的Nextcloud安裝目錄可能會有所不同。例如,如果您使用LAMP堆棧設置Nextcloud,則該目錄可能是 /var/www/nextcloud/。 如果您使用LEMP堆棧設置Nextcloud,則數據目錄可能是 /usr/share/nginx/nextcloud/)。

cd /usr/share/nginx/nextcloud/

sudo -u www-data php7.4 occ upgrade

www-data 是Web服務器的用戶名,在您的系統上可能有所不同。

  • 在Debian / Ubuntu上,通常是 www-data
  • 在CentOS / RHEL上,通常是 apache 對於Apache Web服務器和 nginx 用於Nginx Web服務器。
  • 在Arch Linux上,通常 http

升級完成後,請通過以下方式禁用維護模式:

sudo -u www-data php7.4 occ maintenance:mode --off

轉到 Settings -> Overview 頁面,您將看到您的Nextcloud版本是最新的。

筆記:不要忘記在升級後重新啟用第三方應用程序。

故障排除技巧

額外檔案

在此步驟中,您可能會看到此錯誤:

The following extra files have been found:

.well-know

您可以備份這些“額外”文件,刪除它們並重試更新。 更新完成後,將這些文件放回去。

504網關超時

如果由於504網關超時錯誤而導致下載失敗,則需要重新啟動PHP-FPM。

sudo systemctl restart php7.4-fpm

無法下載Nextcloud ZIP文件

如果遇到以下錯誤,則可能是因為服務器無法下載新的Nextcloud ZIP文件。

Step 4 is currently in process. Please reload this page later.

您需要SSH進入Nextcloud服務器,然後切換到root用戶。

sudo su -

轉到您的Nextcloud數據目錄。 (取決於您的設置,您的數據目錄可能會有所不同。例如,如果您使用LAMP堆棧設置Nextcloud,則數據目錄可能是 /var/www/nextcloud-data/。 如果您使用LEMP堆棧設置Nextcloud,則數據目錄可能是 /usr/share/nginx/nextcloud-data/)。

cd /usr/share/nginx/nextcloud-data/

在此目錄中,有一個子目錄以 updater。 您可以運行ls命令來列出文件和子目錄。

ls

礦被命名 updater-ocao79wqklov,因此我切換到此子目錄。

cd updater-ocao79wqklov

然後列出所有文件和子目錄,包括隱藏的文件和子目錄。

ls -a

你會發現一個 .step 文件和一個 downloads 子目錄。 .step文件跟蹤升級狀態。 我們需要刪除該文件。

rm .step

然後去 downloads 子目錄。

cd downloads/

刪除下載的ZIP文件。

rm nextcloud-*.zip

然後,我們使用以下命令手動下載Nextcloud ZIP文件。 顯然您需要更換 20.0.8 您要升級到的Nextcloud版本。

wget https://download.nextcloud.com/server/releases/nextcloud-20.0.8.zip

下載完成後,請返回基於Web的更新程序,然後單擊 start update 按鈕。

無法升級到下一個主要版本?

一個主要的穩定版本可能需要一些時間才能包含在穩定的更新通道中,因為某些應用程序可能沒有下一個主要的穩定版本的更新。

例如,Nextcloud 21現在是最新的穩定版本,但是基於Web的更新器應用程序不允許您升級到Nextcloud21。在這種情況下,您需要將更新通道從 stablebeta

nextcloud將更新通道從穩定版更改為測試版

然後,您可以升級到Nextcloud 21,但要注意某些應用程序將無法使用。

新版本可用Nextcloud 21

升級完成後,建議您改回 stable 更新頻道。

使用PHP8運行Nextcloud 21

Nextcloud從版本21開始完全支持PHP8。首先,使用以下命令在您的Ubuntu服務器上安裝PHP8:

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php-imagick libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-fpm php8.0-gd php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-bz2 php8.0-intl php8.0-bcmath php8.0-gmp

然後閱讀以下教程,將您的Apache / Nginx虛擬主機更改為使用PHP8.0。

  • 如何在Ubuntu 20.04、18.04、20.10上安裝PHP的多個版本

要檢查您的Nextcloud是否使用PHP 8,請轉到Nextcloud Settings -> System 頁。

升級到PHP 8後,您的Nextcloud實例可能會抱怨

The PHP memory limit is below the recommended value of 512MB.

運行以下命令以更改PHP8中的內存限制。

sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.0/fpm/php.ini

然後重新加載 PHP-FPM 服務使更改生效。

sudo systemctl reload php8.0-fpm

包起來

我希望本教程可以幫助您升級Nextcloud。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞簡報以獲取更多提示和技巧。 保重🙂

Sidebar