NextCloud 安裝教學、使用方式與常見問題

本篇 ShengYu 介紹 NextCloud 安裝教學、使用方式與常見問題,NextCloud是一個開源的雲端儲存和檔案同步解決方案,讓使用者可以在自己的伺服器上建立和管理私有雲。它類似於商業服務如 Dropbox 或 Google Drive,但提供了更高的隱私和控制權。目前 NextCloud 已經不支援 SQLite 只有支援 MySQL/MariaDB。NextCloud是一個靈活、安全且功能豐富的私有雲解決方案,特別適合希望保護資料隱私並需要自定義功能的使用者和企業,詳細介紹請見本文。

以下為本篇內容的目錄,

  • Ubuntu NextCloud 安裝步驟
  • 更換 nextcloud 儲存路徑
  • 調整 PHP 的記憶體限制
  • Nextcloud 影片沒有預覽圖(縮圖)的問題
  • 為什麼 nextcloud 手機版 app 的功能沒有網頁版完整
  • QA. NextCloud 設定檔位置在哪?
  • QA. nextcloud log 檔位置在哪?
  • 遇到 Internal Server Error 問題怎麼看 log
  • 遇到 Nextcloud 硬碟容量滿的問題
  • 增加信任的網域及內網的 IP
  • QA. 怎麼分享照片給別人,即使別人沒有帳號的情況下
  • QA. 手機照片備份後,我手機刪了某張照片後,nextcloud 遠端備份的那張會刪除嗎?
  • QA. 反過來的話,手機照片備份後,nextcloud 遠端備份刪了某張照片後,我手機那張會刪除嗎?
  • QA. 通常檢視、整理、刪減照片這個動作應該在手機端操作還是 nextcloud 遠端上?
  • 資料安全建議

Ubuntu NextCloud 安裝步驟

以下為 Ubuntu 22.04 的 NextCloud 安裝方式,在 Ubuntu 22.04 中 php 版本已更新到 8.1,以下為安裝步驟,

1
2
3
sudo apt update && sudo apt upgrade
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql \
php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip

使用 MySQL 指令執行以下步驟,建立一個名為 nextcloud 的mysql 資料庫及使用者,your-password 部分的密碼改用你自己的設定。

1
2
3
4
5
6
sudo mysql
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'your-password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
quit;

到目前為止,已經完成 nextcloud 所有依賴套件的安裝,接下來準備安裝 nextcloud,
下載 nextcloud,現在最新版的 nectcloud是 29.0.3,然後解壓縮到 /var/www/html 目錄下,官網說明是解壓縮到 /var/www/ 這邊我採用常見的作法,如果沒有安裝unzip程式會無法解壓縮,要先用 sudo apt install unzip 安裝 unzip 程式,

1
2
3
wget https://download.nextcloud.com/server/releases/nextcloud-29.0.3.zip
sudo unzip nextcloud-29.0.3.zip -d /var/www/html
sudo chown -R www-data:www-data /var/www/html/nextcloud/

以下 apache2 的設定有兩種方式,一種方式是用 IP 或是 https://www.example.com/nextcloud/ 這種方式。另一種是用 vhost 虛擬主機的方式,例如你想要你的 Nextcloud 能夠像 https://cloud.example.com/ 這樣的子網域存取的話.。

這邊先介紹第一種方式,新增 nextcloud.conf 設定檔到 apache2 下

1
sudo vim /etc/apache2/sites-available/nextcloud.conf

nextcloud.conf 設定檔如下,

1
2
3
4
5
6
7
8
9
10
11
Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>

這是第二種 vhost 虛擬主機方式,建立 apache2 的虛擬主機設定檔,如果有多個主機名稱,需要個別建立。

nextcloud.conf 設定檔如下,ServerName 的 your.server.com 要換成你自己的網域名稱,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
ServerName your.server.com

<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>

之後啟用這個網站設定,

1
sudo a2ensite nextcloud

啟用 apache2 的相關模組,

1
sudo a2enmod rewrite headers env dir mime setenvif ssl

重新啟動 apache2,

1
sudo systemctl restart apache2

在瀏覽器上輸入: http://xx.xx.xx.xx/nextcloud/(第一種設定) 或是 http://your.server.com (第二種設定)

接下來就可以看到 nextcloud 的設定畫面,最上面是準備要新增 nextcloud 的管理員帳號,中間是 server 上資料的存放位置,下面是資料庫的相關設定。

設定資料庫內容,輸入在剛剛前面 mysql 設定的帳號密碼,

按下 Install 等一段時間安裝後,之後就會跳轉頁面,這樣就可以開始使用 nextcloud 了唷!耶!

相關參考
Example installation on Ubuntu 22.04 LTS
Apache Web server configuration
Ubuntu Server 22.04 LTS的架設 8. Nextcloud server架設

安裝完基本上已經可以使用,但是想要或提更加的使用體驗的話,最好確認你的環境是否有調整到最佳狀態,可以利用概覽確認建議修正事項,詳細看後續介紹。

更換 nextcloud 儲存路徑

預設的檔案路徑是放在 /var/www/html/nextcloud/data ,但 /var 這個目錄磁碟空間往往比較小,
所以我個人是把檔案放在 /home/nextcloud 這個目錄下。
所以要先在 /home 目錄下建立 nextcloud目錄並把owner及權限設好,執行:

1
2
3
sudo mkdir /home/nextcloud
sudo chown -R www-data:www-data /home/nextcloud
sudo chmod 755 /home/nextcloud

設定 crontab 機制

在網頁版裡的基本設定>背景工作裡將 AJAX 換成 Cron。

其他相關參考
Nextcloud 基本參數調校作業

調整 PHP 的記憶體限制

在網頁版裡的管理>概覽裡會出現「目前的 PHP 的記憶體限制設定低於建議值 512 MB。」的訊息

編輯 php 設定檔

1
sudo vim /etc/php/8.1/apache2/php.ini

從原本的 128M 改成 512M,

1
memory_limit = 512M

之後在重啟 Apache 服務,

1
sudo systemctl restart apache2

Nextcloud 影片沒有預覽圖(縮圖)的問題

Nextcloud 安裝後上傳影片檔案發現影片沒有預覽圖(縮圖),預設就是這樣,影片要一個一個打開看才知道是哪個影片,這樣實在很不方便,解決方法如下,

Nextcloud 依賴 ffmpeg 來產生影片預覽縮圖。請確保已安裝並正確設定了 ffmpeg。
在 Debian/Ubuntu 系統上,可以使用以下指令安裝 ffmpeg:

1
sudo apt-get install ffmpeg

在 Nextcloud 的 config.php 檔案中,確保預覽功能已啟用。
sudo vim /var/www/html/nextcloud/config/config.php
新增或確保以下設定存在:

1
2
3
4
5
6
7
'enable_previews' => true,
'enabledPreviewProviders' => [
'OC\Preview\Movie',
'OC\Preview\PNG',
'OC\Preview\JPEG',
'OC\Preview\GIF',
],

有時,調整 enabledPreviewProviders 的順序也能解決問題。確保 OC\Preview\Movie 位於清單的頂部。

存檔後重新整理網頁或APP即可,到這邊為止網頁版與手機版就可以看到影片預覽縮圖了

查看 Nextcloud 日誌檔案中的錯誤資訊,可能會給出更多關於問題的線索。日誌檔案位於
/var/www/html/nextcloud/data/nextcloud.log

但網頁版播放影片失敗是另外的問題?

為什麼 nextcloud 手機版 app 的功能沒有網頁版完整

Nextcloud 的手機版 app 一般不如網頁介面功能全面。這是因為手機應用主要專注於檔案同步和基本功能,以保持輕便和易於使用。網頁介面則提供了更廣泛的功能和設定選項,適合進行更深入的管理和設定。

以下是一些在手機版 app 上可能缺少的功能:

  1. 詳細的管理設定:如使用者管理、組織管理和應用管理等。
  2. 應用擴展:一些應用和擴展功能僅能透過網頁介面訪問和設定。
  3. 詳細日誌和報告:更詳細的日誌和報告功能通常需要在網頁介面中查看。
  4. 高級設定:如共享設定、高級安全設定等。

如果你需要使用這些更高級的功能,建議使用網頁介面訪問 Nextcloud。手機版應用更多是用於日常的檔案訪問和簡單的同步操作。

QA. NextCloud 設定檔位置在哪?

NextCloud 設定檔設定位置在 /var/www/html/nextcloud/config/config.php

QA. nextcloud log 檔位置在哪?

Nextcloud 的 log 檔位置通常在安裝目錄下的 data 資料夾內。預設情況下的路徑是:

1
2
3
/var/www/nextcloud/data/nextcloud.log # 官網設定

/var/www/html/nextcloud/data/nextcloud.log # 其他常見設定

網頁版要怎麼查看的話,可以看這篇
https://rangotec.com/blog/46.html

遇到 Internal Server Error 問題怎麼看 log

查看 log

1
2
3
tail -f /var/log/apache2/error.log
or
tail -f /usr/local/apache2/logs/error.log

遇到 Nextcloud 硬碟容量滿的問題

首先先確認是不是真的硬碟容量滿了,使用 df -h 指令查看,我就遇過我的 VM 開 40GB 空間,但VM開啟安裝好後檢查空間上限結果是變成19 GB
Nextcloud 誤報儲存已滿
NextCloud 在Nginx下報告報告空間不足
它使用NGINX,NextCloud 是透過 /index.php/apps/files/ajax/getstoragestats.php 來取得可用空間的,但是如果設定不正確的nginx的pathinfo,就會壞掉,看起新版沒有這個檔案了。

增加信任的網域及內網的 IP

新增加信任的網域及內網的 IP,如果未來有設要跟 NextCloud 結合會建在這裡增網域及 IP

1
2
3
4
5
'trusted_domains' => 
array (
0 => '[sub.domain].com',
1 => '192.168.1.10',
),

QA. 怎麼分享照片給別人,即使別人沒有帳號的情況下

選照片後,可以按分享連結後就可以產生一個短連結分享給其他人,這就很像google 雲端硬碟分享照片設定權限給任何知道連結的人都能觀看的那個功能。

QA. 手機照片備份後,我手機刪了某張照片後,nextcloud 遠端備份的那張會刪除嗎?

手機照片備份到 Nextcloud 後,如果你在手機上刪除了某張照片,Nextcloud 遠端備份的那張照片通常不會自動刪除。Nextcloud 主要是用於備份和同步檔案,但它不會預設同步刪除操作,除非你啟用了特定的同步選項。

QA. 反過來的話,手機照片備份後,nextcloud 遠端備份刪了某張照片後,我手機那張會刪除嗎?

如果你在 Nextcloud 遠端備份中刪除了某張照片,通常情況下,你手機上的那張照片不會被刪除。這是因為大多數情況下,Nextcloud 的自動上傳功能是單向的(從手機上傳到伺服器),而不是雙向同步。

QA. 通常檢視、整理、刪減照片這個動作應該在手機端操作還是 nextcloud 遠端上?

通常情況下,建議在手機端進行檢視、整理和刪除照片,因為手機端的操作更加直觀和方便,並且可以確保你只刪除真正不需要的照片。下面是一些詳細的理由和建議:

在手機端操作的優勢

  1. 直觀方便:手機端可以直接預覽照片,放大細節,更容易判斷照片的質量和是否需要保留。
  2. 立即效果:在手機端刪除或整理照片可以立即看到效果,不需要等待同步。
  3. 避免誤刪:在手機端操作,可以更好地控制刪除的內容,減少誤刪重要照片的風險。

Nextcloud 遠端操作的優勢

  1. 節省手機儲存:如果你的手機儲存空間有限,可以將不常用的照片備份到 Nextcloud 後再從手機上刪除。
  2. 集中管理:Nextcloud 端可以更方便地集中管理和備份大量照片,特別是如果你有多台裝置需要統一管理照片。

推薦的操作流程

  1. 在手機端進行初步整理

    • 定期在手機端查看和刪除不需要的照片(例如模糊、不合格或重覆的照片)。
    • 保留重要的和需要備份的照片。
  2. 將整理後的照片備份到 Nextcloud

    • 使用 Nextcloud 自動上傳功能,備份整理後的照片到伺服器。
  3. 在 Nextcloud 端進行二次整理(可選)

    • 如果需要進一步分類或刪除不需要的備份照片,可以在 Nextcloud 端進行。
    • 注意確保不會影響手機端的照片。

資料安全建議

  1. 多重備份:除了 Nextcloud,可以考慮將重要照片備份到其他雲服務或外部儲存裝置,增加資料的安全性。
  2. 定期檢查:定期檢查手機和 Nextcloud 上的照片,確保所有重要照片都已經備份,並且沒有誤刪。

其他網友遇到的問題

Nextcloud 局域网上传速度慢
不確定新版本還有沒有這個問題,待確認

其他相關參考
使用 Nextcloud 在 ASUSTOR NAS 上進行協同作業
在 ASUSTOR NAS 上安裝 Nextcloud 並將其與 OnlyOffice 結合使用以進行協同作業

以上就是 NextCloud 安裝教學與使用方式介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!