2022-05-25

在 Android 裝置上建立 NextCloud伺服器

承接上次的 NextCloud 與 Collabora Office Online 整合
由於在下有一些不常使用的 Android 裝置,因此打算將這些 Android 裝置製作成流動雲端平台
可以將這些不常使用的 Android 裝置翻新
預覽

使用 Termux

Termux 一款 Android 應用程式,能夠讓 Android 裝置能夠執行一些 Linux 指令
還有第三方開發者將一些 Linux發行版 修改成能夠透過 PRoot 的方式,能夠在 Termux 中運行 Linux發行版

見下文
第一次執行 Termux 時,輸入
pkg update

見下文
確認安裝更新

見下文
更新中途有一些套件需要 確認更新來源版本
一般都可以輸入 Y 更新來源版本

見下文
Termux 更新完成

下載及安裝 PRoot 及 Linux發行版

見下文
更新完成後,輸入
pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Debian/debian.sh && bash debian.sh

安裝 PRoot 及使用由 EXALAB 提供已製作 Debian檔案系統
如果不使用 Debian ,亦可以使用其他 Linux發行版,可以到 EXTLAB 的 github 頁面查看

見下文
指令會自動下載及安裝 PRoot 及 對應的 Linux發行版

見下文
將 Linux發行版 檔案系統解壓縮

見下文
完成下載及安裝及解壓縮

執行 Linux發行版

在下使用 Debian ,其操作方式與平時在電腦上運作的 Debian 完全相同,很容易便能夠掌握及使用

見下文
由於仍在 Termux 的狀態,輸入
./start-debian.sh

載入到 Debian ,輸入
apt update

更新套件資料,再輸入
apt upgrade

升級 Debian 的套件

見下文
見下文
確認更新

安裝伺服器及其他工具

見下文
更新後,輸入
apt install nano curl wget bzip2 tar zip apache2 sqlite3 php libapache2-mod-php php-curl php-gd php-mbstring php-sqlite3 php-xml php-zip fonts-noto

安裝需要使用的套件

見下文
確認更新

見下文
更新完成

下載 NextCloud 及 NextCloud Office 及 Collabora Online

見下文
輸入
wget "https://download.nextcloud.com/server/releases/nextcloud-23.0.4.tar.bz2" -O "nextcloud.tar.bz2"

下載 NextCloud伺服器
由於 EXALAB 暫時只提供 Debian 10 ,其 PHP 版本為 7.3 ,因此只能支援至 NextCloud 23.0.4
除非閣下自行編譯,否則在下建議使用 NextCloud 23.0.4 已經足夠

見下文
wget "https://github.com/nextcloud-releases/richdocuments/releases/download/v5.0.5/richdocuments-v5.0.5.tar.gz" -O "nextcloud-office.tar.gz"

下載 NextCloud Office
NextCloud 23.0.4 只能支援至 NextCloud Office 5.0.5

見下文
wget "https://github.com/CollaboraOnline/richdocumentscode/releases/download/21.11.402/richdocumentscode_arm64.tar.gz" -O "collabora-online-server-arm64.tar.gz"

經 EXALAB 下載 Debian 是 ARM64版本,因此 Collabora Online - Built-in CODE Server 都需要使用 ARM64版本
NextCloud 23.0.4 只能支援至 Collabora Online - Built-in CODE Server 21.11.402

解壓縮 NextCloud 及 NextCloud Office 及 Collabora Online

見下文
輸入
tar xf "nextcloud.tar.bz2"
tar xf "nextcloud-office.tar.gz" --directory "nextcloud/apps"
tar xf "collabora-online-server-arm64.tar.gz" --directory "nextcloud/apps"

將 NextCloud伺服器 解壓縮
將 NextCloud Office 解壓縮至 nextcloud/apps 的位置
將 Collabora Office Online 解壓縮至 nextcloud/apps 的位置

輸入
nano "/etc/apache2/ports.conf"

更改 Apache2 的 連接埠

見下文
見下文
由於 PRoot 沒有將 Linux發行版 虛擬化,Android 及 Linux發行版 的部分資源仍然共用
由於 Android 是原生系統,Android 擁有連接埠的優先使用權,因此 0 至 1023 沒法使用
1024 至 4999 通常由應用程式分配,亦不建議使用避免使用連接埠後令一些應用程式出現異常情況
最後的 5000 至 65535 則自由分配,因此在下建議使用這個範圍的連接埠
在下修改 /etc/apache2/ports.conf 的設定值
將 HTTP 的 80 改成 20080 ,而 SSL 的 443 改成 20443 ,方便使用
設定上不一定要使用 20080 及 20443 ,只要方便使用即可
亦不一定使用 nano ,只是最近在下習慣使用 nano ,閣下可以使用其他編輯軟件

見下文
修改 /etc/apache2/ports.conf 後,輸入
service apache2 restart

看到 綠色OK 表示 Apache2網頁伺服器 正在運作

安裝 NextCloud

見下文
由於在下使用 SQLite3 作為 NextCloud資料庫
但 NextCloud 並不建議以 SQLite 作為正式用途,因此安裝畫面會出現提示訊息
使用 SQLite 作為 NextCloud資料庫 時, SQLite 檔案預設會存放在 NextCloud目錄中
雖然可以改動存放位置,但一般不會修改,對熟識 NextCloud 結構的人
如果資料庫檔案存取在 NextCloud目錄中,便可以下載資料庫檔案 如果堅持使用 SQLite 亦可以,當然要自行承擔風險

見下文
設定 管理員帳戶 後,按 Install 開始安裝 NextCloud

見下文
由於在下預先下載 NextCloud Office 及 Collabora Online - Built-in CODE Server
因此推薦應用程式可以按 Cancel 取消安裝

見下文
第一次使用的畫面與在桌面電腦設定大致相同

啟用 NextCloud Office 及 Collabora Online

見下文
到 管理員帳戶 > Apps

見下文
見下文
由於 NextCloud Office 及 Collabora Online 未啟用
選單功能,以 Disabled apps 分類,可以快速找到 NextCloud Office 及 Collabora Online

見下文
見下文
按 NextCloud Office 及 Collabora Online 的 Enable 來啟用功能
(由於在 Disabled apps 分類,啟動後的功能的項目會消息,分類到 Enabled apps)

設定 NextCloud Office

見下文
到 管理員帳戶 > Settings

見下文
按選單功能,按 NextCloud Office 分頁

見下文
見下文
選擇 Use the built-in CODE - Collabora Online Development Edition 等待測試

見下文
測試成功後,會顯示 Collabora Online server is reachable.

測試 NextCloud Office

見下文
More > Files

見下文
按 新增檔案 > New document.odt

見下文
選擇需要的範圍,按 Create

見下文
等待載入文件

見下文
見下文
載入完成後,便可以編寫文件

補充資料

在下第一次測試時,發現無法顯示中文字
最初使用 fonts-arphic-uming 支援中文字體的字型檔套件
但在原來 Debian 9 包含 fonts-noto 系列的套件,因此改用 fonts-noto 可以支援更多 中日韓字體(CJK字體)

在下第一次測試時,發現無法顯示中文字
在下曾使用 PHP 的 Built-in Server 功能,想更簡單方便地啟動 NextCloud Office
但登入 NextCloud 後,發現網頁不斷重覆載入,但使用 Daemon 方式運作則沒有問題

總結

整個操作內容其實與在電腦上操作接近相同
只是考慮到 Android 裝置硬件限制及出現問題時檔案轉移的問題
因此改用 SQLite3 ,只需要將整個 NextCloud 目錄封存便可以方便地備份資料

這個方法可以將不再使用、但運作正常的 Android 裝置改變成的雲端平台
只需要經網頁瀏覽器存取便可以使用
NextCloud 亦提供支援不同平台的 客戶端應用程式,方便存取 NextCloud伺服器,非常簡單

感想

在 Android 上建立雲端平台,在2017年編寫的 NextCloud 與LibreOffice Online 整合 已經有構思
當時曾經使用由別人捐贈的 Android 裝置上測試
最後雖然所有需要使用的工具都編譯完成,設定 Collabora Online 亦顯示正確運作
但測試時,在文件頁面卻無法顯示內容及操作,嘗試很多方法仍然無法完成
最後只好先將在桌面電腦的結果發佈

由於當時在下一邊工作、一邊上學,又有很多個人專案、與其他人士、團體合作的專案要進行
最後這個構思便遺忘了,最近因為重新使用 NextCloud 及 Collabora Office
結果在下可以重新嘗試,這個構思終於能夠完成

參考資料

沒有留言 :

張貼留言