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