沒有人喜歡耗盡免費的雲端儲存空間。看到 Google 相簿或 iCloud 的通知警告您空間不足,可能會阻礙您前往南美洲觀賞樹懶的異國之旅。然而,對於我們 DIY 類型和家庭勞動者來說,如果您願意親自動手,就有一個解決方案。
Nextcloud 簡介
Nextcloud 是一個免費的開源雲端儲存平台,可讓您掌握雲端的強大功能和靈活性。它支援多種受歡迎的 Linux 發行版,例如 Red Hat Enterprise Linux 9 和 Ubuntu 24.04 LTS。在本文中,我們將使用 Ubuntu Server 24.04.1 和 Nextcloud Hub 9 (30.0.0) 建立高效能、完全可自訂的雲端儲存伺服器。此處顯示的某些步驟可能需要一些 Linux 伺服器管理和命令列介面的背景知識,因此請充分思考並準備好獲取技術!
設置服務器
要開始設定 Nextcloud 伺服器,您需要在您選擇的系統上全新安裝 Ubuntu Server。您的主電腦上的虛擬機器或您手邊的任何備用硬體可能就可以解決問題!我們建議電腦至少配備 2-4 個 CPU 核心、8 GB RAM 和 500 GB 儲存空間。當您準備好系統後,請造訪以下連結以取得 Ubuntu Server: https://ubuntu.com/download/server .
如果您以前從未安裝過 Ubuntu Server,請在開始之前查看他們的指南: https://ubuntu.com/tutorials/install-ubuntu-server 。請注意,不要在建議的軟體頁面上選擇預先安裝 Nextcloud 的選項,因為我們會自行處理。
將伺服器連接到網路上、為其指定主機名稱並使用初始設定期間建立的使用者名稱和密碼登入後,透過鍵入以下命令來取得 Ubuntu Server 的最新軟體更新 “sudo apt 更新 && sudo apt 升級 -y” 在控制台中並按 Enter 鍵。更新完成後重新啟動伺服器 “須藤重新啟動”.
注意:您可能需要再次輸入密碼才能執行 sudo 命令。
安裝軟件
接下來,我們必須取得 Nextcloud 實例所依賴的一些必備軟體。在命令列介面中鍵入(或最好複製並貼上)以下命令,以下載並安裝 Apache Web 伺服器以及稍後需要的一些軟體包,以進行更高級的 Nextcloud 設定:
sudo apt install apache2 mariadb-server php libapache2-mod-php redis-server libmagickcore-6.q16-7-extra
sudo apt install php-apcu php-bcmath php-bz2 php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-ldap php-mbstring php-memcached php-mysql php-redis phpsql. smbclient php-zip php-xml
如果提示要求您鍵入 Y 或 N 以繼續或停止安裝,請鍵入 Y 並按 Enter 鍵。最後,輸入「wget https://download.nextcloud.com/server/releases/latest.zip” 取得最新版本的 Nextcloud 並使用 “sudo apt install 解壓縮” 要安裝解壓縮工具,我們需要提取這些檔案。
現在我們已經擁有了設定 Nextcloud 實例所需的所有軟體,讓我們檢查一下我們安裝的 Web 伺服器。
設定 Apache Web 伺服器 - 第 1 部分
在我們開始搞亂 Apache 之前,我們需要先確保我們可以正確連接到伺服器。若要允許 Web 瀏覽器(HTTP 和 HTTPS)連線到 Nextcloud 實例,請使用下列命令:
sudo ufw 允許“Apache Full”
sudo ufw啟用
現在,您的 Ubuntu 伺服器上應該有一個正在運行且可存取的 Web 伺服器!在與 Nextcloud 電腦連接到同一網路的另一台電腦上,在瀏覽器視窗中輸入伺服器的 IP 位址,然後按 Enter 鍵。如果您不記得伺服器的 IP 位址是什麼,請使用 “主機名稱-I” 在您的伺服器上執行命令來顯示它。如果安裝成功,您應該會看到預設的 Apache2 頁面顯示得很漂亮!
儘管有些人可能會說這個預設的 Web 伺服器頁面非常簡潔,但我們將在第二部分中用更好的東西取代它。讓我們快速繞道並立即設置 MariaDB!
配置 MariaDB
我們的 Nextcloud 伺服器將需要一個始終在線的資料庫來儲存伺服器配置和使用者設定檔資訊。若要將 MariaDB 配置為在系統重新啟動後執行,請輸入 “sudo systemctl啟用mariadb” 並按回車鍵。現在,我們已準備好為 Nextcloud 安裝準備資料庫!
幸運的是,MariaDB 預先打包了一個安全的設定實用程序,因此我們不必做太多繁重的工作。使用 “sudo mysql_secure_installation” 啟動它,並回答嚮導提出的問題。
- 輸入root的當前密碼(不輸入): 點擊進入
- 切換到 unix_socket 身份驗證 [Y/n] n
- 修改root密碼? n
- 刪除匿名用戶? [Y / N] y
- 禁止遠程root登錄? [Y / N] y
- 刪除測試資料庫並存取它? [是/否] y
MariaDB 現在是安全的,我們可以開始建立一個資料庫來為我們的 Nextcloud 實例提供服務。
類型 “sudo mysql -u root” 並在 MySQL 命令列介面出現時輸入這些命令(並確保在每行末尾使用“;”!):
建立由「P@$$w0rd」標識的使用者「nextcloud」@「localhost」;
注意:將“nextcloud”和“P@$$w0rd”替換為您選擇的使用者名稱和密碼。
如果不存在,則建立資料庫 nextcloud 字元集 utf8mb4 整理 utf8mb4_general_ci;
將 nextcloud.* 上的所有權限授予 'nextcloud'@'localhost';
注意:再次將@符號之前的「nextcloud」替換為您之前使用的使用者名稱。
FLUSH PRIVILEGES;
辭職;
我們越來越近了!我們現在有了一個功能正常(但尚未完成)的網頁伺服器和資料庫。
啟用 PHP 擴充功能並提升 PHP 效能
還記得我們安裝的所有 PHP 擴充功能嗎?我們需要啟用它們以確保 Nextcloud 可以正確使用它們。使用此命令啟用所需的 PHP 擴充功能:
sudo phpenmod apcu bcmath bz2 curl gd gmp imagick intl ldap mbstring memcached mysql redis smbclient zip xml
現在已經啟用了正確的擴展,我們需要調整一些 PHP 設定以更好地滿足我們的需求。我們要編輯的 PHP 設定檔位於 “/etc/php/8.3/apache2/php.ini” 並且可以透過放置來修改 “須藤奈米” 在路徑前面並按 Enter 鍵。如果您安裝了不同版本的 PHP,請更改 “8.3” 到您安裝的版本的主要版本號,可以透過輸入來取得 “php-v” 在控制台中。
一旦你打開了 “php.ini” 使用 Ubuntu 的內建文字編輯器 nano 來開啟文件,按住 Control (ctrl) 鍵並點擊鍵盤上的「W」鍵。當搜尋欄出現時,輸入 “最大執行時間”,然後按 Enter 鍵。 Nano 然後將跳到它找到的與您輸入的值的第一個匹配項。使用箭頭鍵導航並使用退格鍵刪除字符,將“30”更改為“360”。重複此技巧來更改以下 PHP 設定的值:
memory_limit的= 512M
- 如果需要,可以選擇增加以給 PHP 更多記憶體(1024M、2048M 等)
post_max_size = 100G
上傳最大檔案大小 = 100G
- 該值和前一個值代表您可以上傳到 Nextcloud 伺服器的最大檔案大小。將它們更改為您想要的最大檔案大小。 (1G = 1 GB、10G = 10 GB、100G = 100 GB 等)請注意僅以 K(千位元組)、M(兆位元組)和 G(千兆位元組)為單位輸入大小。
日期.時區 = America/New_York
- 消除 ”;”在行之前,並使用本指南來幫助確定您正確的時區:https://www.php.net/manual/en/timezones.php
opcache.enable=1
- 消除 ”;”行前。
opcache.記憶體消耗=128
- 消除 ”;”行前。該值以兆位元組為單位,可自訂以適合您的Nextcloud 伺服器中的記憶體量(128 = 128 兆位元組、1024 = 1024 兆位元組/1 GB、2048 = 2048 兆位元組/2 GB) 。
opcache.interned_stringers_buffer=16
- 消除 ”;”行前。表示為暫存字串分配的記憶體量(以兆位元組為單位),建議值為 16。
opcache.max_accelerated_files=10000
- 消除 ”;”行前。該值可以調整為 200 到 1000000 之間的任意數字,以適應系統的快取和記憶體功能。
opcache.revalidate_freq=1
- 消除 ”;”行前並更改為 1。
opcache.save_comments=1
- 消除 ”;”行之前並驗證該值設定為 1。
完成對 php.ini 檔案的所有必要變更後,按住控制 (ctrl) 鍵並按「O」鍵儲存檔案。按 Enter 鍵確認,然後再次按住 Control (Ctrl) 並點擊「X」鍵退出 Nano。
接下來,透過輸入啟用更多必要的 Apache 模組 “sudo a2enmod dir env headers mime 重寫 ssl” 在控制台中。此時,您不需要使用控制台訊息建議的命令重新啟動 Apache。
設定 Apache Web 伺服器 - 第 2 部分
儘管我們已經下載了 Nextcloud 並設定了許多必備軟體,但我們仍然需要用 Nextcloud 取代預設的 Apache 網頁。類型 “cd~” 在控制台中輸入並按 Enter 鍵,將我們返回到使用者的主目錄。這是 Nextcloud ZIP 檔案的下載位置。現在,輸入 “解壓縮最新的.zip” 按下回車鍵,然後觀看解壓縮實用程式的轟鳴聲!
“最新.zip” ZIP 檔案現已解壓縮到名為的資料夾中 “下一個雲” 在下載它的同一目錄中。這個新資料夾包含 Nextcloud 網站所需的所有必要材料。現在我們將開始將此資料夾移至其正確的位置, “/var/www/html”.
在傳輸資料夾之前,我們必須確保內建 “www-數據” user 是新目錄的擁有者。這是極為重要的,因為 “www-數據” 使用者處理由 Apache Web 伺服器和 Nextcloud 本身執行的所有 Web 伺服器操作。類型 “sudo chown -R www-data:www-data ./nextcloud” 在控制台中並按 Enter 鍵。
現在,該 “www-數據” 用戶擁有該資料夾,我們可以立即移動它。使用 “sudo mv ./nextcloud /var/www/html” 將資料夾移到正確的目錄中。
我們現在可以透過輸入停用預設的 Apache Web 伺服器頁面 “sudo a2dissite 000-default.conf” 進入控制台。忽略再次重新載入 Apache 伺服器的警告,並透過鍵入以下內容為新網站建立虛擬主機文件 “sudo nano /etc/apache2/sites-available/nextcloud.conf” 並按 Enter 鍵。虛擬主機檔案的內容應完全鍵入如下:
DocumentRoot /var/www/html/nextcloud/ 伺服器名稱 nextcloud-demo.moose.local需要所有授予的AllowOverride所有選項FollowSymLinks MultiViews達夫·關閉
更換 “nextcloud-demo.moose.local” 使用您安裝 Nextcloud 的伺服器的完全限定網域名稱 (FQDN)。 FQDN 的第一部分是您先前建立的伺服器主機名,可以使用 “主機名稱” 控制台中的命令。名稱的第二部分和第三部分分別是網域和頂級域。例如,如果您的網域是 “storagereview.com” 你的伺服器的主機名稱是 “下一個雲”,那麼您的伺服器的 FQDN 將是 “nextcloud.storagereview.com”.
如果您沒有域名,您可以使用 Cloudflare 等註冊商購買域名 https://www.cloudflare.com/products/registrar/ 或使用以下網站的免費公開主機名 https://www.noip.com/ 。如果您不想購買網域名稱或使用免費主機名,您可以在此欄位中放置一個虛構的 FQDN,但需要注意的是,您只能使用伺服器的 IP 位址(公用和私人)連線到 Nextcloud 實例。
注意:要使用伺服器的 FQDN 在本機存取 Nextcloud 實例,您的家庭網路上必須執行正確設定的 DNS 伺服器。否則,從家庭網路存取伺服器時必須使用伺服器的本機 IP 位址。
當您完成虛擬主機檔案的編寫並將範例 FQDN 替換為伺服器的 FQDN(合法或其他)時,您最終可以使用以下命令啟用 Nextcloud 站點 “sudo a2ensite nextcloud.conf” “sudo systemctl 重新啟動 apache2” 使用新網站重新啟動 Web 伺服器。使用駐留在同一網路上的另一台電腦上的 Web 瀏覽器透過伺服器的 FQDN 或其本機 IP 位址導覽至您的 Nextcloud 實例。
Nextcloud 初始設定
如果您正確執行了前面的步驟,您將看到一個頁面,要求您為該網站建立管理員使用者並填寫有關 Nextcloud 伺服器的一些詳細資訊。為管理員使用者提供您想要的名稱(例如管理員或超級管理員)以及強密碼。
在設定頁面的「儲存和資料庫」部分中,輸入 “/var/www/html/nextcloud/data” 在「資料資料夾」欄位中,以及您在建立 MariaDB 資料庫時使用的帳戶使用者名稱、密碼和資料庫名稱。對於“資料庫主機”字段,輸入 “本地主機” 完成後點選安裝按鈕。
該網站將加載一小段時間,然後向您提供為您的 Nextcloud 伺服器安裝多個建議應用程式的選項。請注意,為 Nextcloud 實例添加更多應用程式會增加伺服器的處理負載、記憶體使用量和總磁碟使用量。選擇是否安裝建議的應用程式或選擇跳過此步驟。
應用程式安裝完成或出現下一頁後,您可以根據需要閱讀介紹性選單。
看起來 Nextcloud 伺服器已經完成了,但是我們還需要一個步驟來讓伺服器正常運作:設定一個 cron 作業來在伺服器上執行定期規劃的任務。
建立 Cron 作業
cron 作業是無需使用者介入而定期執行的命令。我們的 Nextcloud 伺服器需要一個 cron 作業來呼叫伺服器的 “cron.php” 每 5 分鐘編寫一次腳本,以獲得最佳效能和功能。
若要設定此 cron 作業,請輸入指令 “sudo crontab -u www-data -e” 在伺服器的控制台中。
當 “www-數據” 開啟使用者的 crontab,將以下行新增至檔案底部:
*/5 * * * * php -f /var/www/nextcloud/cron.php
完成後,按住control(ctrl)鍵並按“O”鍵儲存文件,然後按住control(ctrl)鍵並按“X”鍵退出。恭喜!現在,您的本機網路上已經有一個可用的 Nextcloud 伺服器了!現在您可以開始在家庭網路上的Nextcloud 伺服器上上傳和下載文件,但為了讓它發揮作用,我們需要提高其安全性,添加一些家庭實驗室最喜歡的應用程序,設置一個速度極快的內存緩存系統,並使它可以從公共互聯網訪問。
提高 Nextcloud 伺服器的安全性
提高 Web 伺服器安全狀況的最佳方法之一是透過未加密且不安全的 HTTP 升級到 HTTPS。啟用後,請求將透過 TLS 1.3 提供服務,TLS XNUMX 是最新、最安全的 Web 連線加密標準。每當您計劃將網站公開到公共互聯網時,這都是必要的步驟,並且是保護敏感資訊的絕佳第一步。
一旦您決定加密 Nextcloud 流量,有兩種設定 HTTPS 的選項可供選擇:使用自簽名憑證或使用有效憑證授權單位的憑證。如果您目前不擁有網域或不打算為臨時 Nextcloud 實例設定網域,我們建議使用自簽章憑證或主機名稱提供者提供的憑證。如果您打算進行更永久的 Nextcloud 設置,我們強烈建議您從 Let's Encrypt 等憑證授權單位取得公共信任的憑證。
帶有自簽名憑證的 HTTPS
要啟用並建立自簽名證書,您需要發出一些簡單的命令:
須藤a2enmod ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nextcloud-selfsigned.key -out /etc/ssl/certs/nextcloud-selfsigned.crt
現在我們已經啟用了 Apache SSL(也稱為 TLS)模組並建立了自簽名證書,我們需要指示網站開啟 TLS 並使用該證書。類型 “sudo nano /etc/apache2/sites-available/nextcloud.conf” 並按 Enter 再次開始編輯虛擬主機檔案。
如下所示將以下行新增至虛擬主機檔案的底部,但將「ServerName」欄位替換為伺服器的完全限定網域名稱:
DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud-demo.moose.local SSLCertificateFile 上的 SSLEngine /etc/ssl/certs/nextcloud-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/nextcloudkeyudkey.需要所有授予的AllowOverride所有選項FollowSymLinks MultiViews達夫·關閉
按住control(ctrl)並按「O」鍵儲存文件,按住control(ctrl)並按「X」鍵退出nano。若要將這些變更套用到 Apache Web 伺服器,請使用 “sudo systemctl 重新啟動 apache2” 命令。現在您應該已經使用自簽名憑證啟用了 HTTPS!
下次您透過輸入伺服器的完全限定網域名稱或 IP 位址來造訪網站時,您應該會看到一則警告,通知您該網站的憑證授權單位無效。繼續跳過此錯誤(方法將根據您的網頁瀏覽器而有所不同)並查看網站。 Web 瀏覽器已使用 HTTPS 自動連接,並將使用 TLS 加密傳送資料。
帶有受信任憑證的 HTTPS
為了使用 Nextcloud 的受信任證書,您必須先擁有一個網域或擁有主機名稱提供者的簽署證書。如果您之前使用自簽名憑證並按照上一節中的步驟啟用 HTTPS,請刪除新增至檔案底部的文字部分並執行命令 “sudo a2dismod ssl” “sudo systemctl 重新啟動 apache2”。完成後請記得使用 control +“O”和 control +“X”儲存並退出 nano。
網域擁有者的 HTTPS 設定(透過 Certbot)
現在虛擬主機檔案已還原為標準 HTTP 配置,我們可以開始準備使用來自憑證授權單位的受信任憑證。如果您擁有網域,請按照下列步驟取得並實施憑證。如果沒有,請跳到下一部分,該部分將詳細介紹如何使用從主機名稱提供者取得的憑證。要取得與您自己的網域一起使用的證書,我們將使用 Let's Encrypt 的 Certbot,Let's Encrypt 是一個非營利組織,提供在 Web 伺服器中使用的免費證書。
若要下載 Certbot,請先使用下列命令安裝並更新 Snap “sudo snap安裝核心&& sudo snap刷新核心”。然後,輸入 “sudo snap install –經典 certbot” (「經典」之前連續兩個連字符)來安裝軟體包。
運行該命令 “sudo certbot –apache” (同樣,「apache」之前有兩個連字符)啟動 certbot,並按照所有提示建立和下載您的 Web 憑證。
憑證建立過程將需要用於聯繫網域所有者的電子郵件地址等信息,並要求您同意 Let's Encrypt 所需的條款和條件。在出現提示時輸入或選擇您要為其取得證書的域名,然後完成互動過程。如果您在使用 Certbot 時遇到錯誤,您可能需要在路由器上啟用連接埠 80 和 443 到 Nextcloud 伺服器的私人 IP 位址的連接埠轉發,或配置網域的 DNS 記錄以指向路由器的公共 IP 位址。連接埠轉送和 DNS 記錄設定過程高度依賴您的路由器、網域名稱註冊商和網際網路服務供應商,因此本指南不涵蓋這些內容。
Certbot 完成後,透過鍵入以下內容重新開啟虛擬主機文件 “sudo nano /etc/apache2/sites-available/nextcloud.conf” 並按 Enter 鍵。在正上方新增以下行標頭以啟用將 HTTP URL 重寫為 HTTPS,並替換 “nextcloud-demo.moose.local” 使用您伺服器的完全限定網域名稱:
RewriteCond 上的 RewriteEngine %{SERVER_NAME} = nextcloud-demo.moose.local RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
完成後,完成的虛擬主機檔案應如下所示:
現在您應該已經設定了來自有效憑證授權單位的可信任憑證和 HTTPS 加密,可以用於網路了!
使用主機名稱提供者的憑證設定 HTTPS
使用主機名稱提供者的憑證在 Nextcloud 伺服器上啟用 HTTPS 的步驟與本文中「使用自簽名憑證的 HTTPS」部分中介紹的步驟相同,唯一的例外是您必須替換路徑到自簽名金鑰以及來自主機名提供者的密鑰路徑。命令如 “wget” “MV” 可用於下載憑證檔案並將其移至正確的目錄(憑證檔案為 /etc/ssl/certs,金鑰檔案為 /etc/ssl/private)。請務必使用以下命令啟用 Apache SSL 模組 “sudo a2enmod ssl” 命令和使用 “sudo systemctl 重新啟動 apache2” 完成後套用您的變更。使用憑證檔案的完整虛擬主機檔案應與此類似(其中 SSLCertificateFile 和 SSLCertificateKeyFile 欄位替換為自訂憑證和金鑰檔案的路徑):
安裝檔案防毒應用程式
儘管 Nextcloud 可以透過 HTTPS 安全地傳輸數據,但這並不意味著您或您的用戶上傳的所有內容都是安全的。無論是有意還是無意,如果不及時處理,網頁伺服器上的惡意軟體感染可能會造成巨大的損害,並像野火一樣傳播到其他系統。為了針對網路上的不良行為者提供另一層保護,防毒程式是可從網路存取的伺服器的必備軟體。
ClamAV 是一款免費開源防毒套件,可與 Nextcloud 整合來掃描使用者上傳的檔案中是否存在惡意軟體。 Nextcloud 應用程式商店有一個名為“文件防毒”的應用程序,它使用 ClamAV 作為後端來掃描用戶文件並保護您的伺服器。可以透過點擊管理員帳戶的個人資料圖片並選擇「安全性」類別導覽至「應用程式」標籤來下載此應用程式。
按一下「檔案防毒」部分上的「下載並啟用」按鈕,將其安裝到您的 Nextcloud 實例上。接下來,我們需要安裝 ClamAV 並啟用掃描器和惡意軟體簽章更新系統。使用 “sudo apt install clamav clamav-daemon” 取得所有必需的 ClamAV 軟體包。
安裝軟體包後,運行 “sudo dpkg-重新配置 clamav-守護程式” 在控制台中調出互動式設定選單。我們將使用它來自訂 ClamAV 設定的掃描行為。輸入下列問題的以下答案:
- 自動處理設定檔? 充足
- 套接字類型: UNIX的
- 本機(UNIX)套接字 clamd 將偵聽: /var/run/clamav/clamd.ctl
- clamd 本機 (UNIX) 套接字的群組擁有者: ClamAV的
- clamd本地(UNIX)套接字的建立模式: 666
- 優雅地處理剩餘的 UNIX 套接字檔案? 充足
- 您想啟用郵件掃描嗎? 沒有
- 您想啟用存檔掃描嗎? 沒有
- 您可以針對此提示選擇“是”,但如果您選擇這樣做,則需要進行其他配置。有關詳細信息,請參閱 ClamAV 文件: https://docs.clamav.net/manual/Installing/Packages.html#the-packages
- 允許的最大目錄深度: 15
- 您希望守護程序遵循常規文件符號連結嗎? 充足
- 停止線程掃描器的逾時(秒): 180
- 守護程式的線程數: 2
- 從 Nextcloud 伺服器擁有的核心/vCPU 數量中減去 2,然後在此欄位中輸入該數字。
- 允許的待處理連線數: 15
- 您想使用系統記錄器嗎? 沒有
- clamav-daemon 的日誌檔案(輸入 none 以停用): /var/log/clamav.log
- 您想在每個訊息中記錄時間資訊嗎? 沒有
- 如果大量磁碟機寫入不會對您的系統造成損害,請選擇「是」。
- 您想啟用日誌輪轉嗎? 充足
- 守護程式自檢之間的延遲(以秒為單位): 3600
- 用戶運行 clamav-daemon: ClamAV的
- clamav-daemon 組(以空格分隔): www數據
- 您想從資料庫載入字節碼嗎? 充足
- 應用於字節碼的安全等級: 信任簽名
- 字節碼執行逾時(以毫秒為單位): 60000
哇!這是很多配置!對我們來說幸運的是,我們只需要做一次。使用 “systemctl 啟用 clamav-freshclam” “systemctl 啟用 clamav 守護程式” 允許ClamAV在系統啟動後啟動,我們可以開始設定Nextcloud「檔案防毒」應用程式。
使用連接到與 Nextcloud 伺服器相同的網路和子網路的另一台電腦上的 Web 瀏覽器,登入 Nextcloud 並點擊管理員使用者的個人資料圖片。點擊下拉式選單中的“管理設定”選項,然後在頁面載入完成後選擇“安全性”部分。
向下捲動至「檔案防毒」部分,然後將「模式」欄位變更為「ClamAV Daemon (Socket)」。將“在背景掃描期間發現受感染的文件時”欄位變更為“刪除檔案”,然後按一下“儲存”按鈕。 ClamAV 將定期掃描上傳到 Nextcloud 的檔案中是否有惡意軟體,並刪除與已知惡意軟體簽章相符的檔案。
Nextcloud 整合與整體改進
現在我們已經建立了一個功能齊全且安全的雲端伺服器來儲存數據,我們可以擴展其功能並添加新功能。讓我們先處理一些容易實現的目標:將 Nextcloud 連接到電子郵件伺服器並設定預設電話區域。
連接電子郵件伺服器
若要傳送電子郵件通知、活動警報和密碼重設連結(對於非 LDAP 使用者),Nextcloud 需要連接到工作電子郵件伺服器。如果您自行託管電子郵件伺服器,設定就像輸入正確的伺服器位址和驗證資訊一樣簡單。您也可以使用已有電子郵件地址的第三方電子郵件伺服器,例如 Gmail 的 SMTP 伺服器。
使用與伺服器位於相同網路和子網路的電腦上的 Web 瀏覽器導覽至 Nextcloud 伺服器的完全限定網域名稱或 IP 位址。點擊管理員使用者的個人資料圖片,然後從下拉式選單中選擇「管理設定」。
在「管理設定」頁面上,選擇左側的「基本設定」部分,然後向下捲動到「電子郵件伺服器」模組。
在此頁面中,您可以設定電子郵件伺服器的加密、尋址和驗證設定。您可以選擇一些加密和身份驗證方法來滿足您的安全或相容性需求。
若要將 Gmail 的 SMTP 伺服器與您現有的 Google 帳戶一起使用,請先導覽至 https://myaccount.google.com/apppasswords 並按照網站上的說明建立應用程式密碼。為您的應用程式密碼指定一個與您的 Nextcloud 伺服器關聯的名稱,並將您的密碼儲存在安全的位置。請注意,密碼顯示時每四個字元包含一個空格,但實際上並不包含這些空格。應用程式密碼是由十六個連續字母組成的字串。
填寫以下電子郵件伺服器字段,如下所示:
- 發送方式: SMTP
- 加密: 無/STARTTLS
- 寄件者地址: JOHNDOE @ storagereview.com網站
- 在此輸入您的 Gmail 帳戶地址。
- 伺服器位址:smtp.gmail.com : 587
- 驗證: 是(複選框)
- 證書: [email protected] 應用程式密碼在這裡
- 輸入您的 Gmail 帳戶地址和您在此處建立的應用程式密碼。
完成後,按一下「儲存」按鈕並使用「傳送電子郵件」按鈕驗證您的設定是否有效。
如果您尚未為正在使用的管理員使用者帳戶設定電子郵件地址,您將收到一條警告,要求您這樣做。透過點擊管理員使用者的個人資料圖片,從下拉式選單中選擇“個人設定”,然後在“電子郵件”欄位中輸入您的電子郵件地址,可以輕鬆解決此問題。完成後,返回「管理設定」頁面中「基本設定」下的「電子郵件伺服器」模組,並根據需要重新輸入配置。
設定預設電話區域
為了讓 Nextcloud 更好地處理電話號碼,我們可以做出一個非常快速但相當有用的更改,那就是為實例設定預設電話區域。當使用者在「個人設定」下的「個人資訊」設定中填寫個人資料時,系統會要求他們選擇性地包含電話號碼以供聯繫。如果沒有預設的電話區域,Nextcloud 會強制使用者輸入包含該號碼的國家代碼。設定預設電話區域允許使用者排除此前綴。
在 Nextcloud 伺服器控制台中,使用 “sudo nano /var/www/html/nextcloud/config/config.php” 編輯 Nextcloud 網站 PHP 設定檔。
將以下行新增至 PHP 設定檔中,與前幾行建立的間距模式保持一致,並在結尾「);」之前插入括號:
'default_phone_region' => '美國',
-
- 您所在國家/地區用於此欄位的唯一 ISO 3166-1 代碼可以在以下維基百科頁面上找到: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
出於安全原因,您不應向任何人展示您的 Nextcloud 實例的內容 “配置.php” 文件。它包含只有您或您的系統管理員應該知道的敏感信息,例如密碼和系統機密。將預設電話區域線新增至設定檔後,按住 Control (Ctrl) 並點擊“O”,然後按住 Control 並點擊“X”退出,儲存新內容。若要套用更改,請輸入 “sudo systemctl 重新啟動 apache2” 進入控制台並按 Enter 鍵。
設定維護時段
我們可以對 Nextcloud 網站的 PHP 配置檔案進行的另一個小改進是為伺服器設定一個維護窗口,以執行更密集且可能影響使用者的任務。此視窗是使用 UTC 時間設定的,因此您需要將所需的維護視窗開始時間轉換為等效的 UTC 時間(表示為 1 到 24 之間的整數)。維護時段持續四個小時,因此從 UTC 凌晨 3:00 開始的維護時段將在 UTC 凌晨 7:00 結束。
使用 “sudo nano /var/www/html/nextcloud/config/config.php” 再次開始編輯 PHP 配置文件,並在結尾“);”之前添加此行括號,遵循文件中已有行使用的間距約定:
'maintenance_window_start' => 1,
-
- 請記得將「1」替換為轉換為 UTC 時間的所需維護時段開始時間。
使用 control (ctrl) + “O” 和 control (ctrl) + “X” 儲存檔案後,使用下列指令套用維護時段 “sudo systemctl 重新啟動 apache2”.
LDAP/Active Directory 伺服器集成
如果您打算讓多個使用者存取您的 Nextcloud 實例,您可以新增至 Nextcloud 的最強大的功能之一就是能夠連接到 LDAP 或 Active Directory 伺服器並對其進行驗證。許多組織和家庭實驗室使用 Active Directory 或 LDAP 來集中組織和控制使用者對網路資源的訪問,Nextcloud 也不例外。透過「LDAP 使用者和群組後端」應用程序,來自 Active Directory 網域或 LDAP 伺服器的使用者可以匯入到 Nextcloud 伺服器中,並使用他們的使用者名稱或電子郵件地址和密碼登入。當與外部儲存(如 NAS 上的 SMB 共用)結合使用時,此功能變得更加強大,為具有特定權限的使用者提供單獨的「主」資料夾。
若要安裝「LDAP 使用者和群組後端」應用程序,請在使用管理員使用者帳戶登入 Nextcloud 網頁時先按一下個人資料圖片。從出現的下拉式選單中選擇“應用程式”,然後點擊“特色應用程式”模組。向下捲動,直到找到“LDAP 使用者和群組後端”應用程序,然後按一下“啟用”按鈕。
現在應用程式已啟用,我們需要將 Nextcloud 連接到 LDAP 伺服器。確保您有一個帳戶準備好授權此連線。通常,建議使用專為此連線建立的服務帳戶,但也可以使用任何能夠搜尋目錄的 Active Directory 或 LDAP 帳戶。請注意,雖然此範例將使用 Active Directory 網域上的內建網域「管理員」帳戶,但這不是安全的做法。 如果 Nextcloud 伺服器遭到破壞且「管理員」帳戶的憑證被盜,攻擊者將擁有讀取、修改甚至刪除網域中任何物件的完整權限。
點擊管理員用戶的個人資料圖片並從下拉式選單中選擇它,再次導航到「管理設定」頁面。點擊“LDAP/AD 整合模組”即可開始。
在此頁面上,開始填寫 LDAP/Active Directory 伺服器所需的資訊:
- 主持人: 192.168.1.102
- 替換為 LDAP 伺服器或 Active Directory 網域控制站的 IP 位址/主機名稱。
- 港口: 389
- 如果您使用的是 Active Directory,請使用連接埠 389。
- 用戶DN: CN=管理員、CN=用戶、DC=moose、DC=本地
- 輸入用於將 Nextcloud 連接到 LDAP/AD 伺服器的帳戶的專有名稱。如果使用 Active Directory,可以透過使用 CMD 視窗執行此命令輕鬆找到此命令,並將「管理員」替換為您用於連線的帳戶的使用者名稱:
- dsquery 使用者名稱“管理員”
- 填寫此欄位後點選「儲存憑證」按鈕。
- 輸入用於將 Nextcloud 連接到 LDAP/AD 伺服器的帳戶的專有名稱。如果使用 Active Directory,可以透過使用 CMD 視窗執行此命令輕鬆找到此命令,並將「管理員」替換為您用於連線的帳戶的使用者名稱:
- 每條線路一個基本 DN: DC=駝鹿,DC=本地
- 儲存先前的憑證後,按一下「偵測基本 DN」按鈕,自動決定 LDAP/AD 伺服器的基本 DN。
- 或者,按一下「Test Base DN」按鈕檢查到目前為止的配置是否有效。
完成「LDAP/AD 整合」模組的第一頁後,點擊標有「繼續」的按鈕,然後花一點時間查看和研究「使用者」部分。
儘管該頁面的佈局乍一看可能令人困惑,但其功能是透過物件類別和群組等屬性過濾可登入 Nextcloud 伺服器的使用者。我們建議為將登入 Nextcloud 伺服器的使用者建立一個唯一的群組,以便可以透過該群組的成員資格進行過濾。選擇您希望授予存取權限的所需物件類別和/或群組,然後按一下「>」按鈕將群組新增至篩選器。此範例使用名為“family”的群組。點擊「驗證設定並計算使用者數」按鈕將顯示一則訊息,顯示有多少用戶符合您輸入的描述。如果計數看起來不正確,請仔細檢查您的物件類別和群組過濾器。
一旦您擁有正確數量的用戶,請點擊“繼續”按鈕進入“登入屬性”部分。選取「LDAP/AD 使用者名稱:」和「LDAP/AD 電子郵件地址」欄位的複選框,並透過在「測試登入」框中輸入使用者名稱和電子郵件地址(如果需要)並點擊來驗證登入屬性是否正確。
如果使用者名稱/電子郵件地址可用於登錄,則會出現一則通知,指出「使用者已找到且設定已驗證」。最後一次點選「繼續」按鈕,進入最後一頁「組」。與「使用者」頁面類似,「群組」部分使用物件類別和群組標準縮小了可以登入 Nextcloud 伺服器的範圍。進行與在「使用者」頁面上所做的相同選擇,或透過在「搜尋物件類別」和「搜尋群組」欄位中輸入更具體的條件來減少可以登入的使用者數量。此範例從頁面上的清單中選擇「家庭」群組,並使用「>」按鈕僅限制對該群組的存取。最後,點擊「驗證設定並統計組數」即可顯示登入有效的組數。
現在您已授予在前面的步驟中選擇的 LDAP 或 Active Directory 群組登入 Nextcloud 伺服器的能力。點擊管理員用戶的個人資料圖片,然後選擇「登出」。當提示輸入使用者名稱和密碼以再次登入時,測試您已授予存取權限的使用者之一的登入功能。如果使用者無法登錄,請重新造訪此頁面的「使用者」和「群組」部分以檢查您的條件並解決錯誤。
外部儲存集成
Nextcloud 伺服器的另一個強大功能是連接和使用外部儲存池的能力。將使用者檔案直接放置到伺服器本身可能會導致與管理伺服器儲存以及必須不斷增加容量以滿足使用者需求相關的問題。如果您在執行配額和刪除使用者建立的不必要資料方面沒有始終保持警惕,則可能會導致沮喪和意外停機。當旨在創建可擴展的雲端儲存系統和愉快的用戶體驗時,強烈建議將 Nextcloud 設定的 Web 伺服器和儲存組件分開,這也是至關重要的。
Nextcloud 的「外部儲存支援」應用程式可讓您掛載以下儲存類型的資料夾:
- 亞馬遜S3
- 則fTP
- Nextcloud
- 是的,沒錯,您可以連接並使用其他 Nextcloud 伺服器上的可用儲存空間!
- OpenStack 物件存儲
- SFTP
- SMB / CIFS
- WebDAV的
如您所看到的,將 Nextcloud 連接到外部儲存陣列、雲端和其他系統有多種不同的選擇。例如,我們將 Nextcloud 實例連接到 SMB 共享,該共享使用授予從我們先前連接的 Active Directory 網域匯入的使用者授予的權限來控制對不同資料夾的存取。
若要啟用「外部儲存支援」應用程序,請在登入網站後點擊管理員使用者的個人資料圖片,然後選擇「應用程式」。再次導航到“特色應用程式”,找到標有“外部儲存支援”的模組。點擊“啟用”按鈕使應用程式可用。
啟用應用程式後,您將能夠透過進入「管理設定」並點擊「外部儲存」模組來新增外部儲存。在此頁面中,您可以透過從下拉式選單中選擇儲存類型並填寫設定詳細資訊來連接到外部儲存。
要新增 SMB 共享,請從清單中選擇“SMB/CIFS”選項,然後填寫配置詳細信息,如下所示:
- 驗證: 手動輸入,儲存在資料庫中
- 若要讓使用者手動輸入自己的使用者名稱和密碼進行身份驗證,請選擇此選項。若要使用一組靜態憑證來授予使用者存取 SMB 共享的權限,請選擇「登入名稱和密碼」。否則,請從下拉式選單中選擇最能滿足您需求的選項。
- 資料夾名稱: 家庭
- 該名稱可以設定為您想要用來描述您正在安裝的儲存空間的任何名稱。範例:「SMB」或您正在安裝的共享的名稱。
- 主持人: 192.168.1.140
- 將此值替換為託管您要連接的 SMB 共享的伺服器的 IP 位址或 FQDN。
- 分享到: 家庭
- 將此值替換為您要安裝的共用名稱,該名稱存在於「主機」欄位中輸入的伺服器上。
- 遠端子資料夾:\
- 若要掛載共享的頂級資料夾(共享資料夾本身),請使用“\”。否則,以以下方式輸入所需共享內的子資料夾的路徑:
- \子資料夾\another_subfolder\yet_another_subfolder
- 若要掛載共享的頂級資料夾(共享資料夾本身),請使用“\”。否則,以以下方式輸入所需共享內的子資料夾的路徑:
- 域: 駝鹿
- 如果使用 LDAP 或 Active Directory 控制對共用的訪問,請將此值替換為網域的 NetBIOS 名稱。如果共用不受 LDAP/AD 伺服器控制,則不需要此欄位。
- 顯示隱藏檔案: 格紋
- 如果使用者應該能夠查看隱藏檔案(以「.」字元開頭的檔案),請選取此方塊。
- 區分大小寫的檔案系統: 格紋
- 列出檔案時驗證 ACL 存取權限: 格紋
- 此選項對於存取控制正常運作非常重要。否則,如果兩個用戶安裝了相同的共享並配置了資料夾以使另一個用戶無法訪問,他們仍然可以查看彼此的文件。
- 所有人: 格紋
- 如果您希望所有 Nextcloud 使用者都能夠輸入憑證並連接到 SMB 共享,請選取此選項,否則請選擇 Nextcloud 實例上的本機群組以使共用可用於使用下列欄位。
- 不幸的是,在撰寫本文時,如果未選擇,則無法使用此選項下方的欄位來選擇 LDAP/Active Directory 群組。
- 如果您希望所有 Nextcloud 使用者都能夠輸入憑證並連接到 SMB 共享,請選取此選項,否則請選擇 Nextcloud 實例上的本機群組以使共用可用於使用下列欄位。
輸入特定於您的設定的 SMB 共享配置詳細資訊後,按一下複選標記按鈕將其儲存並可供使用者使用。
如果您希望使用者能夠安裝自己的外部存儲,請按一下頁面儲存安裝部分下方的複選標記。如果您選擇啟用此選項,您也可以限制可用於自安裝的儲存類型。
要完成 SMB 共享的設置,用戶必須在點擊其個人資料圖片並從下拉式選單中選擇後導航至「個人設定」下的「外部儲存」模組。
在此頁面上,使用者可以輸入使用者名稱和密碼,然後按一下複選標記按鈕以解鎖 SMB 共用以儲存和檢索檔案。
使用者輸入憑證後,可以透過點擊 Nextcloud 網站選單頂部的資料夾圖示並瀏覽使用者資料夾和檔案清單來存取共用。
讓 Nextcloud 成為真正的 Web 伺服器
現在,您功能豐富的 Nextcloud 實例幾乎已準備好成為公開可用且功能強大的 Web 伺服器!在打開閘門之前,我們需要確保伺服器可以處理多個使用者存取檔案的密集請求。我們已經透過對系統的 PHP 配置進行多項關鍵編輯來提高效能,並且添加對記憶體快取的支援可以增強效能。
設定記憶體快取 – APCu
ACPu 是一個 PHP 緩存,有助於加快常用物件的存取時間。我們將使用它作為 Nextcloud 實例的第一個快取。在啟用 APCu 快取之前,我們需要對系統的「php.ini」檔案進行一些變更。
使用 “須藤納米/etc/php/8.3/apache2/php.ini” 開始編輯文件。長時間按住向下箭頭鍵捲動到文件底部。在文件底部的新行中,新增以下行:
apc.enable_cli=1
apc.shm_size=128M
新增這兩行將使系統能夠使用 APCu 作為緩存,並將快取大小設為 128 MB,而不是預設值 32。並退出nano。
若要完成開啟 APCu 緩存,請使用 “sudo nano /etc/php/8.3/mods-available/apcu.ini” 並添加 “apc.enable_cli=1” 到設定檔的底部,就像我們對 “php.ini” 文件。再次使用 control (ctrl) + “O” 和 control (ctrl) + “X” 儲存並退出設定檔。
我們已經啟用 PHP 來使用 APCu,但現在我們需要指示 Nextcloud 使用它。
類型 “sudo nano /var/www/html/nextcloud/config/config.php” 在控制台中,然後按 Enter 鍵。在 Nextcloud PHP 配置檔案中,我們將添加一行以使 Nextcloud 使用 APCu 進行本地記憶體快取:
'memcache.local' => '\OC\Memcache\APCu',
將此行放在結尾“);”之前括號,遵循先前設定檔行的間距約定。再次按住 control (ctrl) 並按“O”,然後按住 control (ctrl) 和“X”以儲存並退出。
儲存 PHP 設定檔後,使用 “sudo systemctl 重新啟動 apache2” 重新啟動 Apache Web 伺服器並套用您的變更。
如果您按照所有步驟正確設定 APCu 進行本機記憶體緩存,您的 Nextcloud 伺服器的效能應該會大幅提升!讓我們更進一步,配置 Redis 以獲取更多記憶體快取功能。
設定記憶體快取 – Redis
您可能想知道,「為什麼我的 Web 伺服器需要兩個不同的記憶體快取?一個還不夠嗎?這個問題的答案其實很簡單。就像商店裡的每個工具都有自己的用途一樣,APCu 和 Redis 也是如此。 APCu 是一種優秀的本地記憶體緩存,在該類別中明顯優於後者,而 Redis 在分散式快取和事務檔案鎖定方面表現出色。
要開始使用 Redis,我們將編輯系統 Redis 設定文件,輸入
“sudo nano /etc/redis/redis.conf” 進入控制台並按 Enter 鍵。預設情況下,Redis 服務會偵聽 TCP 連接埠以進行快取和事務文件鎖定流量,但對於單一伺服器設置,Unix 套接字是首選通訊方法。如果我們透過網路提供 Redis 服務,則使用 TCP 連接埠是有意義的,但 Unix 套接字對於 Redis 和 Nextcloud Web 伺服器進程之間的通訊要高效得多。
輸入nano後,按住控制(ctrl)鍵並按「W」即可啟動nano的搜尋功能。類型 “unix套接字” 進入搜尋欄並按 Enter 鍵,nano 將跳到 “Unix套接字” 文件的配置部分。在 “Unix套接字” 部分,刪除 “#” 字元和前面的空格 “unixsocket /run/redis/redis-server.sock” “unixsocketperm 700”。 改變 “700” 至 “770”,然後向上捲動,直到找到顯示以下內容的行: “端口6379”。我們將這個值改為 “0”,有效地告訴 Redis 伺服器不要偵聽 TCP 連接埠上的連線。在使用 control (ctrl) + “O” 和 control (ctrl) + “X” 儲存並退出檔案之前,請查看下面的圖片以驗證您的設定檔。
透過對 Redis 系統設定檔進行這些修改,我們現在可以在 Nextcloud PHP 設定檔中指定要使用 Redis 進行分散式快取和交易檔案鎖定。使用以下命令在 nano 中開啟此文件 “sudo nano /var/www/html/nextcloud/config/config.php”.
在 Nextcloud PHP 配置文件底部的“);”結尾之前括號中,加入這些行,密切注意空格和逗號:
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ '主機' => '/run/redis/redis -server.sock', '連接埠' => 0, ],
如果您輸入的行正確,則 PHP 配置檔案的記憶體快取部分應如下所示:
在重新啟動 Apache Web 伺服器和 Redis 以套用變更之前,請使用 “sudo usermod -a -G redis www-data” 添加 “www-數據” 用戶到 “redis” 群組,授予 Web 伺服器存取 Redis Unix 套接字的權限。最後,輸入 “sudo systemctl 重新啟動 apache2 && sudo systemctl 重新啟動 redis-server” 進入控制台並按 Enter 鍵套用變更並重新啟動受影響的服務。
將 Nextcloud 曝光到互聯網
我們已經快完成了!部署 Nextcloud 伺服器的最後一步是使其可存取公共網際網路。此步驟要求您在路由器上設定連接埠轉發,並且可能需要您進行一些研究。使用連接埠轉送指南目錄: https://portforward.com/router.htm 嘗試找到您的路由器製造商並閱讀解決方案。如果您在清單中找不到您的路由器製造商或正在使用企業/自製路由器,您可能需要進行一些網路搜索,直到找到正確的方法。
設定連接埠轉送時,從 Nextcloud 伺服器的私人 IP 位址轉送連接埠 80 和 443(可以使用 “主機名稱-I” 指令)到路由器的公共IP位址。如果您的網際網路服務供應商沒有為您提供公用 IP 位址,您必須使用 Cloudflare 隧道等服務,該服務可讓您在 Web 伺服器和 Cloudflare 伺服器之間建立安全隧道,將網站訪客的流量轉送回您。
如果您擁有網域名稱或使用主機名稱提供者提供的主機名,請確保您的 DNS 記錄設定為指向伺服器的公共 IP 位址。或者,某些服務提供者可以完全混淆網站訪客的 IP 位址,並將資料從他們的伺服器安全地傳輸回您的伺服器。
維護與升級Nextcloud
確保您的 Nextcloud 伺服器擁有最新的更新和安全性修補程式是保持雲端儲存快速且安全的重要組成部分。在完成之前,讓我們先了解一些讓您的伺服器像新的一樣運作的方法!
部署後命令
部署 Nextcloud 伺服器後,您可能注意到在個人資料圖片選單中點擊「管理設定」後,「概述」頁面上出現了一些警告。有時,這些警告還包括可以運行以立即修復警告所涉及問題的命令。通常,命令需要作為 “www-數據” 用戶並從 “/var/www/html/nextcloud” 目錄。類型 “cd /var/www/html/nextcloud” 然後按 Enter 鍵將目前工作目錄變更為適當的資料夾,然後插入 “sudo -u www-data” 在每個命令之前。
我們現在可以運行其中一些命令來修復這些警告,以免它們成為問題:
sudo -u www-data php occ db:新增缺少的列
sudo -u www-data php occ db:add-missing-indices
sudo -u www-data php occ db:add-missing-primary-keys
這些命令將確保資料庫設定正確並且不會遺失任何關鍵資訊。快樂資料庫,快樂生活!正確的?
保持 Ubuntu 伺服器最新
定期更新伺服器的作業系統和軟體包對於確保其安全和快速非常重要。每週或每兩週查找伺服器使用率較低的時間範圍,然後執行以下命令:
sudo apt更新&& sudo apt升級-y
sudo重啟
這些命令將升級伺服器的作業系統和軟體包,並重新啟動伺服器,以便在再次啟動時套用變更。
升級Nextcloud
由於 Nextcloud 不是使用套件管理器安裝的,因此使用以下命令更新伺服器的軟體包 “易於” 不會自動將 Nextcloud 推送到下一個版本。要開始升級 Nextcloud 伺服器,我們需要點擊網頁右上角的管理員使用者的個人資料圖片,然後從下拉式選單中選擇「管理設定」。在「概述」頁面上,我們可以看到有可用的升級 - 在本例中為版本 30.0.1。如果「概述」頁面上沒有出現更新選項,請不要擔心,您已經擁有最新版本!時不時地回來查看何時有新版本可用。
一旦您確定有可用更新並且已到達適當的升級窗口,請切換回伺服器控制台並輸入以下命令:
須藤chown -R www-data:www-data / var / www
該命令將遞歸設置 “www-數據” 使用者作為所有者 “萬維網” 目錄以及所有子目錄和文件,確保升級過程可以存取和修改它需要的任何文件。
該命令完成後,返回「管理設定」功能表下的「概述」頁面,然後按一下標有「開啟更新程式」的按鈕。這將帶您進入“更新程式”選單。
從這裡,您可以點擊「開始更新」按鈕開始 Nextcloud 的更新驗證和下載過程。如果一切正常,您應該在「繼續使用基於網路的更新程式」之前的每個步驟旁邊看到綠色複選標記。
注意:如果更新過程在「下載」步驟失敗,請重試下載,直到成功。可能需要多次嘗試。
一旦「更新程式」功能表中出現所有綠色複選標記,請按一下標有「停用維護模式並在基於 Web 的更新程式中繼續」的按鈕。在執行此操作後出現的螢幕上,按一下「開始更新」以完成更新過程並開始套用它。
或者,根據較大或較慢伺服器的頁面建議,您可以導航到 “下一個雲” 目錄並使用以下命令手動執行升級:
cd /var/www/html/nextcloud
sudo -u www-data php occ 升級
升級完成後,您將被重新導向到 Nextcloud 伺服器網站上的「儀表板」頁面。您的伺服器現在正在運行最新、最好的 Nextcloud 版本!
恭喜!你做到了!
您現在是功能齊全、經過強化且高效能的 Nextcloud 伺服器的自豪擁有者和營運者。如果您願意,現在可以邀請家人或朋友使用您的伺服器進行雲端儲存。請記住,Nextcloud 是一個高度模組化的平台,因此不要害怕嘗試新應用程式或更改配置以滿足您的需求!請務必盡快設定伺服器的定期備份,並密切注意以確保一切正常。
作者的 Nextcloud 設定之旅
哇,你已經完成了所有這些,你還想閱讀更多內容嗎?想想我們印象深刻!如果您正在尋找一些靈感,這裡有一個快速瀏覽和作者的 Nextcloud 設定的一些圖片:
- 硬件:
- 虛擬化伺服器:
- 作業系統:Proxmox 虛擬化環境
- 機箱:Supermicro SC216,附選配後冗餘啟動磁碟機籠
- CPU:英特爾至強E5-2683
- RAM:4 個 32 GB DDR4 2400 MHz ECC RDIMM
- 主機板:技嘉MU70-SU0(LGA 2011-3)
- HBA:博通 SAS 9305-24i
- 網路卡:Intel X520-DA2 2 連接埠 10 GbE SFP+ 適配器
- GPU:NVIDIA Quadro K1200
- 啟動磁碟機:2 個 Samsung 850 EVO 120 GB SATA SSD
- 資料驅動器:24 個 Samsung 860 EVO 250 GB SATA SSD
- NAS:
- 作業系統:TrueNAS SCALE
- 機殼:HPE ProLiant MicroServer Gen10 Plus
- CPU:英特爾至強E-2224
- RAM:2 個 16 GB DDR4 2666 MHz ECC UDIMM
- HBA:內建 HPE 智慧陣列 E208i-p SR Gen10 控制器
- 網路卡:HPE 乙太網路 560SFP+ 2 埠 10 GbE SFP+ 轉接器
- 啟動磁碟機:Micron M600 256 GB SATA SSD(USB 連線)
- 快取驅動器:2 個 Samsung 860 EVO 250 GB SATA SSD(USB 連線)
- 數據驅動器:4 個 WD Red Plus 4 TB 5400 RPM HDD
- 備份磁碟機:WD Red Pro 14 TB 7200 RPM HDD(USB 連線)
- 調製解調器:
- 網件CM1200
- DOCSIS 3.1
- 4x 1 GbE RJ45 WAN 連接埠(相容於 2 連接埠連結聚合)
- 路由器:
- 作業系統:pfSense
- 機殼:戴爾 OptiPlex 7040 SFF
- CPU:Intel Core i5 6500
- RAM:8 GB DDR4
- 網路卡:Intel E1G44ET 4 埠 1 GbE RJ45 轉接器
- 啟動磁碟機:2 個 Samsung 860 EVO 250 GB SATA SSD
- 核心交換器:
- 戴爾網路 N4032F
- 24 個 10 GbE SFP+ 端口
- 2 個 40 GbE QSFP+ 端口
- 1 GbE 管理端口
- 接入開關:
- 戴爾網路 X1052
- 48 個 1 GbE RJ45 端口
- 4 個 10 GbE SFP+ 端口
- 接入點:
- 操作系統:OpenWRT
- Linksys EA8300 最大流
- AC2200
- MU-MIMO
- Wi-Fi 5(802.11ac)
- 1 個 1 GbE RJ45 LAN 端口
- 4 個 1 GbE RJ45 LAN 端口
- UPS:
- CyberPower CP1500AVRLCD3
- 1500VA
- 900W
- 虛擬化伺服器:
- 虛擬機:
- Proxmox 虛擬化環境:
- 2 個 Windows Server 2022 Datacenter 網域控制站
- Ubuntu Server 24.04.1 Nextcloud Web 伺服器
- Windows Server 2022 遊戲伺服器
- 真正的 NAS 規模:
- Proxmox 備份伺服器備份目標
- Proxmox 虛擬化環境:
Andrew 使用他的 Nextcloud 伺服器為他所愛的人託管資料儲存服務。透過將 Active Directory 網域與冗餘網域控制器、保存所有使用者資料的 NAS 以及虛擬化伺服器結合,Andrew 優化了他的設置,以便在家中和任何有網路連線的地方提供高效能儲存服務。
他的設置的支柱是 Dell Networking N4032F,它在 Proxmox VE 伺服器和 TrueNAS SCALE 儲存陣列之間提供每秒 10 GB 的連接。資料、管理和儲存流量已分為三個 VLAN,可在發生漏洞時提供額外的安全性。他的接入交換器為他的遊戲 PC、接入點和其他各種設備提供標準的 1 GB/秒連接。所有伺服器和虛擬機器均由執行 Ubuntu Server 的 Raspberry Pi Model 3B+ 和 Uptime Kuma 執行個體進行監控。一旦伺服器/虛擬機器發生故障,Andrew 就會收到電子郵件通知,並且在停電的情況下,一旦 UPS 報告電量較低,伺服器就會正常關閉。
Andrew 還使用 Supermicro 24 碟位 2U 機箱以及從 eBay 和其他「可疑」來源獲得的部件定制了他的虛擬化伺服器。在ZFS RAIDZ2 佈置中,這個僅由消費級驅動器組成的24 個SSD 陣列可為虛擬機的讀取操作提供大約每秒8.2 GB 的吞吐量,為虛擬機的寫入操作提供大約每秒2.7 GB 的吞吐量(此處在Windows Server 2022 VM 上測量) :
資料儲存展示的真正明星是 Andrew 的 HPE ProLiant MicroServer Gen10 Plus,它裝有四個 WD Red Plus 4 TB 硬碟,並透過 USB 3.2 Gen2 (10 Gbps) 和 Gen1 (5 Gbps) 隨意連接到 Micron SSD啟動TrueNAS,一個用於備份儲存的WD Red Pro 14 TB 驅動器,以及另外兩個用於快取的Samsung 860 EVO SSD。需要明確的是,安德魯並不建議這樣做,但他喜歡利用他擁有的硬體來推動其可能性。夥計們,在任何情況下,絕對不能保證五個九的可靠性。
其他值得注意的設備包括經過改造的Dell OptiPlex 7040 SFF PC,它運行pfSense 為他的家庭實驗室的各個子網提供路由服務,以及Netgear CM1200 調製解調器,它出於某種原因令人驚訝地支持鏈路聚合。我們是否提到每個伺服器資料連線(1 或 10 GBps)都是故障冗餘的?這將使 Andrew 的儲存系統理論上能夠在特定條件下以 20 Gbps 的速率雙向共享數據,並且多個連接同時發生。要是他有足夠的動力去接近那個目標就好了!
結論
我們希望您能在這份冗長但詳細的 Nextcloud 設定指南中找到一些價值。以困難的方式做事通常會帶來好處,並且更多地了解雲端儲存的工作原理總是有好處的。如果您還沒有這樣做,請訂閱 儲存評論通訊 要獲取更多伺服器、儲存系統和家庭實驗室文章,請在 YouTube、TikTok、X(以前稱為 Twitter)或 Instagram 上查看我們!
參考資料/來源:
- https://www.linode.com/docs/guides/how-to-install-nextcloud-on-ubuntu-22-04/
- https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html
- https://docs.nextcloud.com/server/latest/admin_manual/contents.html
- 各種頁面
- https://www.php.net/manual/en/ini.core.php
- https://nextcloud.com/
- https://ubuntu.com/download/server
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
- https://snapcraft.io/install/core/ubuntu
- https://docs.clamav.net/manual/Usage
- 各種頁面
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
- https://docs.nextcloud.com/server/30/admin_manual/configuration_files/external_storage/smb.html
- https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
- https://www.php.net/manual/en/intro.apcu.php
- https://www.php.net/manual/en/apcu.configuration.php
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
參與 StorageReview
電子通訊 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | 的TikTok | RSS訂閱