安裝 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 https://download.nextcloud.com/server/releases/nextcloud-${VER}.zip
接下來解壓縮檔案,並將解壓的結果移動到網頁伺服器主目錄中。
$ unzip nextcloud-${VER}.zip
$ sudo chown apache.apache nextcloud -R
$ sudo mv nextcloud /var/www/html
$ rm nextcloud-${VER}.zip
3 準備資料庫資訊
為了權限問題,建議資料庫的 root 使用者帳號不要在開放的網站上使用,可透過 phpMyAdmin 新增一組權限較少的一般用戶帳號給網站專案使用,接下來我們利用 phpMyAdmin 資料庫管理工具來初始化 Nextcloud 的資料庫,依照前述文件的內容,請先連線到管理介面,點選「使用者帳號」->「新增使用者帳號」,畫面如下。
輸入資料庫「使用者名稱」、「主機名稱」及二次密碼,其中建議主機名稱的部份填入「localhost」。
再把畫面往下拖曳,選擇權限相關的設定,這裡我們將暫時為此使用者開放所有的指令權限。
最後畫面拉到最下方,按下「執行」鍵完成用戶新增的作業,完成後,畫面上方會出現此次新增用戶的指令,如下所示,貼上給大家參考一下,也可以透過指令列來建立新的用戶。
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED VIA mysql_native_password USING '***';GRANT ALL PRIVILEGES ON *.* TO 'nextclouduser'@'localhost' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
接下來要新增一組新的資料庫,點選畫面最上方的【資料庫】,並在【建立新資料庫】的名稱部份填入【nextcloud】(範例,可依你自己的需求)、【編碼與規則】的部份選擇【utf8mb4_unicode_ci】,最後請按下【建立】鍵完成。
完成的畫面如下所示。
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,出現的安裝畫面如下所示:
如上圖所示,請先自行設定管理者的「使用者名稱」及「密碼」,並且點擊畫面上的「設定資料庫」選擇「MySQL/MariaDB」的部份,以下欄位請填寫對應的值:填入上述流程設定的資料庫使用者名稱、資料庫使用者密碼、資料庫名稱,然後按下「安裝」鍵繼續,系統就會開始進行程式安裝的動作,完成後,不知道為什麼 Nextcloud 在 22 版本後,會導到一個不存在的位置(可能是我們設定的原因),沒關係,當出現「無法連上這個網站」字樣後,請重新自行以:
http://yourhostname/nextcloud/index.php/core/apps/recommended
來登入即可,畫面會如下所示:
請按下「安裝推薦的應用程式」繼續,系統會幫你初始化一些常見的 Apps,不過一般來說,我們會建議若不確定要啟用哪些應用程式的話,可以等到後續再自行啟用即可,完成後會自動登入 admin 帳號,畫面如下所示:
這樣就完成最簡單的安裝工作了。
6 登入及調整 phpMyAdmin 帳號權限
登入的連結,預設是 http://yourhostname/nextcloud,畫面如下,帳號密碼就是剛才在設定資料庫資訊最一開始所設定的。
還記得剛剛新增的資料庫帳號嗎?記得要把他的權限調降回來,只要一般的權限就可以了,如下圖所示:
完成後把畫面往下拖曳,按下「執行」鍵即完成設定,同樣會出現對應的指令,未來可參考使用。
REVOKE ALL PRIVILEGES ON *.* FROM 'nextclouduser'@'localhost'; REVOKE GRANT OPTION ON *.* FROM 'nextclouduser'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, EVENT, TRIGGER, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE 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;
7 如果發現無法安裝的可能問題
如果你發現無法正確的安裝 Nextcloud 的話,有可能是以下 2 個因素:
- 沒有正確設定好 SELinux 的模式
如果沒有設定 SELinux 的話,在安裝過程中 SELinux 就會限制 Nextcloud 存取目錄或是檔案而造成無法安裝的問題,此時可以關閉 SELinux,或是依照本文第 4 部份來調整即可。
- 沒有安裝所需要的 PHP 套件
若無法安裝,也有可能沒有安裝到必要套件,Nextcloud 的安裝頁面會提供提示給您。
8 其它參考文件
如果您想在 Fedora 系統上測試 Nextcloud,也可以參考:
- 小魚電腦應用:如何在Fedora系統上安裝nextcloud