最近把 Proxmox VE NAS整合的差不多了,今天來統整一下成果。先前寫的那篇遺漏了太多部分了,所以就在這全部重整一下。一開始想寫成一篇,但是無奈太長只好拆開來寫了…。
以下的內容都是基於 ZFS 檔案系統,若還沒有開始玩 ZFS 可以準備上手了!
安裝 NextCloud
新增LXC並更新系統
先開一台 Ubuntu 18.04 的 LXC,規格不用太好,之後再調整即可,隨意開個規格即可:
開機後先修改 /etc/apt/source.list
的內容,指向國網中心,在台灣連線速度最快:
更新 LXC 並且重新啟動 LXC: apt update && apt dist-upgrade -y && reboot
安裝 LAMP
# apt install apache2 php mariadb-server -y # apt install php-mysql php-zip php-dom php-xml php-mbstring php-gd php-curl php-apcu php-imagick -y
設定開機啟動 Apache2、MariaDB:
(如果有出現 Perl: warning: Setting locale failed. 可以參考這篇文章)
# systemctl start apache2 && systemctl enable apache2 # systemctl start mariadb && systemctl enable mariadb
安裝 Acme.sh
快速取得 Let Encrypt SSL 憑證:
(這過程需要用到 curl,請先安裝 apt install curl -y
):
# curl https://get.acme.sh/ | sh
使用下面這個申請 SSL 的 Script 來申請 SSL 憑證,我放在 /root/script/
資料夾之中:
執行腳本,我使用 CloudFlare API 進行申請
新增 NextCloud 設定檔
新增 /etc/apache2/sites-available/nextcloud.conf
,內容如下:
Apache 新增以下三個模組:
# a2enmod headers # a2enmod ssl # a2enmod rewrite
啟動網站設定檔
# a2ensite nextcloud
重新啟動 Apache
# systemctl restart apache2
先執行 mysql_secure_installation
設定資料庫的 root 密碼,其他問題全部直接 Enter 過去就可以了。因為只跑 NextCloud 所以直接用 root 帳號來安裝最快,如果考慮更高安全性的人,請自己再建使用者。
建立資料庫
# mysql -u root
# CREATE DATABASE nextcloud CHARACTER SET utf8; # CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'NEXTCLOUDPASSWORD'; # GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; # flush privileges; # exit;
開始安裝 NextCloud
進入網頁根目錄,下載 NextCloud 並解壓縮:
(解壓縮需要用到 unzip :apt install unzip
)
# wget https://download.nextcloud.com/server/releases/nextcloud-15.0.5.zip # unzip nextcloud-15.0.5.zip # rm nextcloud-15.0.5.zip # rm index.html # mv nextcloud/* /var/www/html/ # mv nextcloud/.htaccess /var/www/html/ # mv nextcloud/.user.ini /var/www/html/ # chown -R www-data: /var/www/html/
打開 NextCloud 的網址,全部預設值即可,之後會再作修改:
調校 NextCloud
在設定的頁面可以看到有這些問題,我一項一項來解決。
啟用 .htaccess 功能
您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。
修改 /etc/apache2/apache2.conf
的第 107 行,改成:
存檔後重啟 Apache2:
# systemctl restart apache2
修改 .htaccess
您的網頁伺服器設定不正確,因此無法解析 “/.well-known/caldav” ,請至說明文件瞭解更多資訊。
您的網頁伺服器設定不正確,因此無法解析 “/.well-known/carddav” ,請至說明文件瞭解更多資訊。
啟用 Apache2 的 Rewrite 功能即可:
# a2enmod rewrite # systemctl restart apache2
設定 Memory Cache
在 /var/www/html/config/config.php
加入:
'memcache.local' => '\OC\Memcache\APCu',
存檔後修改 /etc/php/7.2/apache2/php.ini
,在最後一行加上:
apc.enable_cli=1
# systemctl restart apache2
設定 Opcache 快取
在 /etc/php/7.2/apache2/conf.d/10-opcache.ini
檔案下方加入以下內容啟用 Opcache:
# systemctl restart apache2
修正資料庫 bigint
先加入 occ 指令設定 alias 方便後續操:
# echo "alias occ='sudo -u www-data php /var/www/html/occ'" >> ~/.bashrc # source ~/.bashrc
輸入 occ db:convert-filecache-bigint
,輸入 y
確認轉換:
設定系統 Crontab
到「基本設定」的工作背景選擇 「Cron」:
並使用 www-data 使用者身份執行五分鐘一次的 crontab 任務:
# crontab -u www-data -e
加入:
*/5 * * * * php -f /var/www/html/cron.php
調校完畢
如此一來基本調校安裝就大功告成啦!
改造 NextCloud
隱藏 index.php
預設的 NextCloud 是會讓你看見 index.php
這個路徑的,為了美觀,使用下列方法隱藏 index.php
路徑
編輯 config/config.php
,加入:
'htaccess.RewriteBase' => '/',
執行 occ
指令重新產生 .htaccess
occ maintenance:update:htaccess
成果如下:
自動檢查檔案資料夾系統變化
編輯 config/config.php
,加入:
'filesystem_check_changes' => 1,
這樣未來就可以透過任何軟體直接修改家目錄的檔案了,此參數的功能可以讓 NextCloud 自去檢查檔案是否被修改/增加/刪除,達到同步的效果,如果沒有這行的話,直接透過 Linux 刪除家目錄的檔案,NextCloud 是不會發現檔案遭到異動的。
關閉檔案資料夾權限檢查
編輯 config/config.php
,加入:
'check_data_directory_permissions' => false,
之後整合 OpenMediaVault 的時候必須的重要設定,整合時需要大量的權限修改,這些修改並不符合 NextCloud 系統所期許的,系統會認為你的設定是不安全而不讓你登入 NextCloud,關掉後就可以盡情改造了。
再來..請看下一篇:[DIY NAS] Proxmox VE + NextCloud + OpenMediaVault + OpenLDAP 整合紀錄(二):OpenMediaVault
系列文章:
[DIY NAS] Proxmox VE + NextCloud + OpenMediaVault + OpenLDAP 整合紀錄 (一):NextCloud
[DIY NAS] Proxmox VE + NextCloud + OpenMediaVault + OpenLDAP 整合紀錄(二):OpenMediaVault
[DIY NAS] Proxmox VE + NextCloud + OpenMediaVault + OpenLDAP 整合紀錄(三):整合 NextCloud + OpenMediaVault