NAS4Free 上安裝 owncloud – 自建家用雲端儲存空間
[alert type=”alert” close=”yes”]如果要把NAS4Free弄來當ownCloud服務,建議在安裝NAS4Free時,選擇 “Full Installation”. embedded 版本的設定, 如 php.ini, 在重新機時會恢復成預設值 [/alert]
本篇應該是在 NAS4Free 上鑽研其功能的最後一篇文章. 也是官方沒有公開說明的附加功能 – 就是在 NAS4Free 上安裝 ownCloud. 關於 ownCloud, 我就不多做介紹. 簡單來說他是開放原始碼的 Dropbox 或 Box 相近的雲端儲存服務. ownCloud 也是有提供用戶端的同步軟體. Windows 桌上的是免費的. 但 iOS 和 Android 版本需要付費才能下載.
1. 開啟 NAS4Free 裡內建的網站伺服器 lighthttpd. 去 Services -> Webserver 裡. 可以參照以下的設定
- Protocol: HTTP
- Port: 8888 (如果要使用正常的網站埠口 80, 必須去 System -> General 裡, 把 Port 改成 80 以外的埠口. 如 8080. 但下次登入就必須在網址後加 http://nas4free:8080, 如要加密, 可以買 SSL 認證, 埠口就可以使用443了, 詳細設定請看本篇最底)
- Run as: www
- Document root: /mnt/NAS4FREE/CLOUD/owncloud (可以點 … 自選)
- Upload directory: /mnt/NAS4FREE/CLOUD/upload (可以點 … 自選)
- Authentication: 可以不勾
- Directory listing: 建議不勾
- Auxiliary parameters: (如果不是用加密的埠口, 就必須加入下面的參數讓目錄可以受到保護.)
$HTTP["url"] =~ "^/data/" {
url.access-deny = ("")
}
$HTTP["url"] =~ "^/owncloud($|/)" {
dir-listing.activate = "disable"
}
2. 開啟 SSH 服務 (如不想遠端控制, 可省略)
如果手邊剛好有多的鍵盤, 可直接在NAS4Free主機下進入shell畫面設定, 要不然就要去 NAS4Free 的設定網頁裡把 SSH 打開.
- 去 Services 裡選 SSH
- TCP port: 22
- Permit root login: 勾選 (相關的設定必須要有 root 權限才能完成)
- Password authentication: 勾選
3. 下載和安裝 ownCloud 在 NAS4Free 上
在編寫本篇教學時, ownCloud 的最近版本是8.1. 所以本篇所提供的下載連結會以8.1為主. 建議參觀官方網站下載最近版本. 首先SSH登入到shell或用鍵盤直接進入shell裡頭.
在提示鍵入帳號和密碼時, 我們要登入 root. 密碼是和網頁介面一樣.
login as: root
root@192.168.1.250's password: 網站登入的密碼.
登入成功後, 切換到之前在 lighthttpd 裡設定的文件根目錄裡. 本例是/mnt/NAS4FREE/CLOUD/owncloud. 之後下載,解壓,更改權限. 語文如下.
# cd /mnt/NAS4FREE/CLOUD/
# fetch https://download.owncloud.org/community/owncloud-8.1.0.tar.bz2
# tar -xvf owncloud-8.1.0.tar.bz2
# rm owncloud-8.1.0.tar.bz2 (刪除下載的壓縮檔. 空間在 NAS 上是很珍貴的)
# chown -R www:www owncloud (把 owncloud 目錄的使用者改成 www)
我是使用 embedded 版本的 NAS4Free 安裝在一個2G的隨身碟裡. PHP5 已經是安裝好了. 但預設的最大上傳 size 太小了. 要更新一下.
# nano /usr/local/etc/php.ini
找下面這2個參數, 把上限提升到4G
upload_max_filesize = 4G
post_max_size = 4G
再來就是去 owncloud 目錄裡的 config 裡頭把config.sample.php備份一份再改成 config.php 變成正式的設定檔.
# cd /owncloud/config
# cp config.sample.php config.php
基本上這在 shell 裡的設定差不多到這裡就告一段落了. 接下來就可以打開瀏灠器來做網頁的設定.
開啟 ownCloud 的設定網頁
用您喜愛的瀏灠器在網址列打入 http://nas4free:8080 (你NAS4Free 被指派的IP位址). 如果看到下面的設定畫面, 就可以設定管理者的帳號. 如果您打算讓 ownCloud 開放給很多個使用者或是做更複雜的工作, 就可能要考慮用專的資料庫(如MySQL 或 MariaDB). 如果像我只是自已家的私有雲儲存空間, 用內建的 SQLite 就夠了. 下圖右是詳細的資料庫設定畫面.
把管理者帳號建立完畢後, 如果看到以下畫面, 就恭喜您了. 現在有自已的私人雲端儲存空間讓檔案可以同步.
附加教學 1: 使用自簽認證來設定 lighttpd 的加密功能讓連線可以通過HTTPS保護
在第一個步驟設定 lighttpd 時, 可以使用自我認證的 HTTPS 加密讓連線可以受到保護. 當然如果有購買網址的專業使用者, 也可以使用真正加密的SSL認證. 但我們是建立自家用的雲端空間, 使用自建的認證即可. 但 NAS4Free 的 lighttpd 所能使用的私有認證需要改成 RSA 版本. 首先先產生 SSL 認證.
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
生成之後, 用 cat server.pem 指令, 把 —-BEGIN CERTIFICATE—- 開始到 —-END CERTIFICATE—- 的亂數部份拷貝, 再貼到 lighttpd 裡的 certificate 裡.
再來, 把 private key 轉成 RSA 版本. 需要鍵入這行指令.
openssl rsa -in server.pem -out new.key
生成 RSA 版本的私人認證後, 才可以貼到 lighttpd 裡的私人認證 private key 裡. 要不然會出現 ”The attribute ‘Private key’ does not appear to be a valid private key.” 的錯誤訊息. 一樣用 cat new.key 指令, 把 —–BEGIN RSA PRIVATE KEY—–開始到—–END RSA PRIVATE KEY—–之間的亂碼拷貝到 lighttpd 裡的 private key 裡.
如下圖, 就可以使用 HTTPS 的通訊協定了.
附加教學 2: 桌機和手機端的同步處理
我本身使用了 Windows 的同步軟體來同步我的 Documents 到 ownCloud 上. 還滿方便. 以下提供不同作業系的版本還有手機版本.
https://download.owncloud.com/desktop/stable/ownCloud-1.8.4.5267-setup.exe
https://download.owncloud.com/desktop/stable/ownCloud-1.8.4.2531.pkg
https://software.opensuse.org/download/package?project=isv:ownCloud:desktop&package=owncloud-client