安裝 Nextcloud 主程式

1 系統基本環境

基本的作業系統部份,在本文中我們採用 Rocky Linux 8,可以參考Rocky Linux 8 基本安裝將基本的系統安裝起來,另外在環境部份採 Apache + MariaDB + PHP,可參考在 Rocky Linux 8 安裝 Apache + MariaDB + PHP文件,而不是快速佈署體驗,如果只是想試試 Nextcloud 的基本功能的話,可以參考相關的Nextcloud 快速安裝體驗文件。

2 下載及解壓縮最新 Nextcloud 安裝檔

在撰寫本文件時,Nextcloud 的最新版本為 24.0.1,您可以至官方網站中確認最新版本,在說明的過程中,我們會選用 zip 這種較常見的壓縮形式,並搭配 Rocky Linux 8 本機的指令來完成解壓縮及下載,相關需要安裝的工具皆已在基本安裝的說明文件中提及,若沒有安裝的朋友,可以至前述的連結參考安裝。

首先,我們先要下載最新的 Nextcloud 安裝檔,指令如下:

$ export VER="24.0.1"
$ cd /tmp
$ wget -c https://download.nextcloud.com/server/releases/nextcloud-${VER}.zip
以續傳的方式下載,若中斷可以重新再執行一次。

接下來解壓縮檔案,並將解壓的結果移動到網頁伺服器主目錄中。

$ unzip nextcloud-${VER}.zip
$ sudo mv nextcloud /var/www/html
$ sudo mkdir /var/www/html/nextcloud/data -> 因為 data 目錄一開始不會建立,若有啟用 selinux 要先自行建立。若覺得麻煩,可以關掉 selinux 來嚐試。
$ rm nextcloud-${VER}.zip
$ sudo chown apache.apache /var/www/html/nextcloud -R
3 準備資料庫資訊

接下來要新增一組新的資料庫,點選畫面最上方的【資料庫】,並在【建立新資料庫】的名稱部份填入【nextcloud】(範例,可依你自己的需求)、【編碼與規則】的部份選擇【utf8mb4_unicode_ci】,最後請按下【建立】鍵完成。

image-1654222575191.png

完成的畫面如下所示。

image-1654222677881.png

為了權限問題,建議資料庫的 root 使用者帳號不要在開放的網站上使用,可透過 phpMyAdmin 新增一組權限較少的一般用戶帳號給網站專案使用,接下來我們利用 phpMyAdmin 資料庫管理工具來初始化 Nextcloud 的資料庫,依照前述文件的內容,請先連線到管理介面,點選「使用者帳號」->「新增使用者帳號」,畫面如下。

image-1654221293310.png

輸入資料庫「使用者名稱」、「主機名稱」及二次密碼,其中建議主機名稱的部份填入「localhost」。

image-1654221505512.png

最後把畫面拉到最下方,按下「執行」鍵完成用戶新增的作業,完成後,畫面上方會出現此次新增用戶的指令,如下所示,貼上給大家參考一下,也可以透過指令列來建立新的用戶。

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED VIA mysql_native_password USING '***';GRANT USAGE ON *.* TO 'nextclouduser'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

接著再點選畫面中的「資料庫」連結,選擇畫面下方剛新增的 nextcloud 資料庫名稱,並按下執行。

image-1654829864996.png

接下來先使用「全選」的選項,如下圖所示。

image-1654831873835.png

最後按下執行,完成資料庫權限的設定,參考的指令如下:

GRANT ALL PRIVILEGES ON `nextcloud`.* TO 'nextclouduser'@'localhost' WITH GRANT OPTION;
4 設定 SELinux

預設 Rocky Linux 8 是啟用 SELinux 模式的,若沒有關閉的話(建議開啟),需執行以下指令,nextcloud 主目錄的路徑,請依照實際的狀況調整:

先安裝 SELinux 管理工具:

$ sudo yum install policycoreutils-python-utils -y
上次中介資料過期檢查:2:19:43 前,時間點為西元2022年06月03日 (週五) 17時43分24秒。
依賴關係解析完畢。
========================================================================================
 軟體包                             架構         版本                軟體庫        大小
========================================================================================
安裝:
 policycoreutils-python-utils       noarch       2.9-19.el8          baseos       252 k
將安裝依賴項目:
 checkpolicy                        x86_64       2.9-1.el8           baseos       345 k
 python3-audit                      x86_64       3.0.7-2.el8.2       baseos        86 k
 python3-libsemanage                x86_64       2.9-8.el8           baseos       127 k
 python3-policycoreutils            noarch       2.9-19.el8          baseos       2.2 M
 python3-setools                    x86_64       4.3.0-3.el8         baseos       623 k

處理事項摘要
========================================================================================
安裝  6 軟體包

總下載大小:3.6 M
安裝的大小:10 M
下載軟體包:
(1/6): python3-audit-3.0.7-2.el8.2.x86_64.rpm           247 kB/s |  86 kB     00:00
(2/6): policycoreutils-python-utils-2.9-19.el8.noarch.r 514 kB/s | 252 kB     00:00
(3/6): checkpolicy-2.9-1.el8.x86_64.rpm                 635 kB/s | 345 kB     00:00
(4/6): python3-libsemanage-2.9-8.el8.x86_64.rpm         500 kB/s | 127 kB     00:00
(5/6): python3-policycoreutils-2.9-19.el8.noarch.rpm    2.1 MB/s | 2.2 MB     00:01
(6/6): python3-setools-4.3.0-3.el8.x86_64.rpm           593 kB/s | 623 kB     00:01
----------------------------------------------------------------------------------------
總計                                                    1.8 MB/s | 3.6 MB     00:02
執行處理事項檢查
處理事項檢查成功。
執行處理事項測試
處理事項測試成功。
執行處理事項
  準備        :                                                                     1/1
  正在安裝    : python3-setools-4.3.0-3.el8.x86_64                                  1/6
  正在安裝    : python3-libsemanage-2.9-8.el8.x86_64                                2/6
  正在安裝    : python3-audit-3.0.7-2.el8.2.x86_64                                  3/6
  正在安裝    : checkpolicy-2.9-1.el8.x86_64                                        4/6
  正在安裝    : python3-policycoreutils-2.9-19.el8.noarch                           5/6
  正在安裝    : policycoreutils-python-utils-2.9-19.el8.noarch                      6/6
  執行小令稿  : policycoreutils-python-utils-2.9-19.el8.noarch                      6/6
  核驗        : checkpolicy-2.9-1.el8.x86_64                                        1/6
  核驗        : policycoreutils-python-utils-2.9-19.el8.noarch                      2/6
  核驗        : python3-audit-3.0.7-2.el8.2.x86_64                                  3/6
  核驗        : python3-libsemanage-2.9-8.el8.x86_64                                4/6
  核驗        : python3-policycoreutils-2.9-19.el8.noarch                           5/6
  核驗        : python3-setools-4.3.0-3.el8.x86_64                                  6/6

已安裝:
  checkpolicy-2.9-1.el8.x86_64
  policycoreutils-python-utils-2.9-19.el8.noarch
  python3-audit-3.0.7-2.el8.2.x86_64
  python3-libsemanage-2.9-8.el8.x86_64
  python3-policycoreutils-2.9-19.el8.noarch
  python3-setools-4.3.0-3.el8.x86_64

完成!

接下來新增以下設定:

$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
$ sudo restorecon -Rv '/var/www/html/nextcloud/'

如果要移除這個 Nextcloud 的安裝路徑的話,那要下以下的指令。

$ sudo semanage fcontext -d '/var/www/html/nextcloud/data(/.*)?'
$ sudo semanage fcontext -d '/var/www/html/nextcloud/config(/.*)?'
$ sudo semanage fcontext -d '/var/www/html/nextcloud/apps(/.*)?'
$ sudo semanage fcontext -d '/var/www/html/nextcloud/.htaccess'
$ sudo semanage fcontext -d '/var/www/html/nextcloud/.user.ini'
$ sudo semanage fcontext -d '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
$ sudo restorecon -Rv '/var/www/html/nextcloud/'
5 進行安裝作業

接下來進行 Nextcloud 主程式安裝,連結位置預設採用 http://yourhostname/nextcloud,出現的安裝畫面如下所示: