使用ownCloud打造專用的「類Dropbox」雲端儲存系統

擔心Dropbox、Google Drive或SkyDrive不夠隱密?對於這些廠商的安全性保護機制有疑慮?那麼試著自己建立專屬的雲端儲存系統吧!

Dropbox之類的雲端儲存服務讓我們的文件檔案的存放與分享有了新的交換與處理模式,它的便利性、簡易的使用介面與智慧手機、平板電腦達到相輔相成的效果;既然個人用的雲端儲存好處多多,為何不能在工作環境裡也導入類似功能的應用系統呢?私有的專用雲端儲存顯然有下列優點:

  • 空間沒有限制,電腦硬碟有多大你就能擁有多大的存檔空間
  • 權限能依實際的組織架構做更嚴密的控管
  • 放在公司內部,不用擔心機密文件外流
  • 不必擔心外部的網路是否斷線,只要區域網路正常就能隨時存取到檔案

ownCloud是個以PHP撰寫的開放原始碼系統,提供的正是企業內部或個人專屬使用的雲端儲存功能,除了後台的PHP系統外,還有Windows、Mac OS/X、Linux與Android、iOS App等不同的Client程式,很適合拿來建立自己的私用雲端儲存系統。本文先介紹用來建立運行環境的XAMPP(XAMPP是跨平台的網頁系統的程式組合,包含了Apache Web Server、MySQL資料庫系統、PHP與Perl程式語言等組件;XAMPP的X是跨平台(Croxx-platform),AMPP分別代表Apache、MySQL、PHP與Perl),再介紹ownCloud的安裝與設定,簡單的幾個步驟就能建立自己的Dropbox環境。

ownCloud下載網址連結

owncloud-logo

owCloud有後台系統和用戶端應用程式,以下是下載網址:

XAMPP安裝

XAMPP視窗版的安裝很簡單,請依下列步驟執行即可。

  1. 由網址「http://goo.gl/Rq0Ps」下載XAMPP 1.8.1,最好選擇下載【自動安裝程式】,讓此程式自動在你的電腦建立完整的運行環境。
    圖01
  2. 執行下載的執行檔後會檢查你的電腦是否有「Microsoft Visual C++ 2008 SP1 可轉散發套件 (x86)」,若沒有則會彈出警示窗並轉向到下載網頁,將網頁切換到繁體中文後下載,當瀏覽器出現「是否執行或儲存vcredist_x86.exe」時請按執行以安裝這個必須存在的套件,安裝完畢後再繼續XAMPP的安裝。
    圖02
  3. XAMPP會先顯示歡迎視窗,請按〔Next >〕。
    圖03
  4. 勾選要安裝的組件,建議全部安裝。勾選好後按 〔Next >〕。
    圖04
  5. 指定系統的存放資料夾,選用好後按〔Install〕。本文後續皆以「C:\XAMPP」當做系統資料夾,若你安裝到不同位置,請自行變換路徑。
    圖05
  6. XAMPP安裝完成後會詢問是否要安裝XAMPP控制面板,按〔是(Y)〕安裝;控制面板提供了更方便操作的功能,將各個組件在一個面板裡集中控管。
    圖06
  7. MySQL組件需要開啟特定的通訊埠,在看到安全性警訊時請回應〔允許存取〕。
    圖06-1
  8. 接著再執行XAMPP控制面板,按下【MySQL】與【Apache】右方的〔Start〕以啟動資料庫與網頁系統程式。啟動過程會顯示在下方白框裡,若有發生錯誤可以由此框查看錯誤訊息,或按程式右方的〔Logs〕來做進一步的偵錯。
    圖07
  9. MySQL與Apache都啟動成功後,最後在瀏覽器瀏覽「http://localhost/」就會顯示XAMPP首頁,點擊〔English〕或〔中文〕顯示對應語言的網頁。
    圖08
  10. XAMPP首頁左側是常用的工具連結,右側則是工具的內容。我們可以點擊【Php】項目下方的【phpinfo()】以顯示安裝好的PHP具備的功能模組清單。
    圖09

ownCloud的安裝與設定

ownCloud的安裝分成安裝網頁系統和建立資料庫兩大步驟。

  1. 首先到「http://owncloud.org/support/install/」 下載ownCloud最新版。下載後解壓縮將之存入c:\xampp\htdocs\owncloud資料夾。c:\xampp\htdocs就是被稱為文件根目錄(Documents Root)的資料夾,各式各樣的網頁系統都是安裝在這個資料夾裡。檔案存放完畢後開啟瀏覽器瀏覽「http://localhost/owncloud」網址就能開始執行ownCloud,第一次執行時必須輸入啟始資料以完成設定。先點擊【進階】以顯示更多選項。啟始欄位說明如下:
    1. 在開始的兩個欄位指定系統管理員帳號密碼。
    2. 在【資料夾】欄位指定上傳檔案的存放資料夾。
    3. 在【設定資料庫】欄位選擇資料庫類型,若使用的資料較少或想要簡單點的,直接使用SQLite即可,但為了更好的擴充彈性建議使用MySQL:先輸入MySQL的系統管理員帳號密碼,再指定ownCloud的資料庫名稱,最後輸入MySQL資料庫的主機名(一般用localhost)。
      圖13
  2. 如果系統沒有順利建立或要再安裝第二次但卻失敗時,請依下列手動程序執行:
    1. 在XAMPP首頁左側下方點擊【PhpMyAdmin】,進入MySQL資料庫管理頁面。
      圖10
    2. 點擊右側上方的【用戶】,查看是否有ownCloud安裝程式建立的oc_admin帳號,若有oc_admin帳號的話,勾選後按【刪除選中的用戶】裡的〔執行〕,將oc_admin由資料庫裡刪除。
      圖11
    3. 再確認資料庫系統管理員root的密碼是否輸入正確:點擊root右方的【編輯權限】,找到修改密碼框後重新指定密碼,最後按〔執行〕以變更root密碼。修改密碼後再由XAMPP控制面板點擊MySQL右側的〔Config〕,編輯MySQL的設定檔my.ini,將[client]裡的「;password」開頭的半形分號刪除,於此行等號右方輸入密碼,這樣才能讓PhpMyAdmin能順利連上MySQL。
      圖12
    4. 再重新由步驟1開始設定ownCloud。

開始使用ownCloud網頁系統

在網址輸入「http://localhost/owncloud」以檢視ownCloud網頁,第一次瀏覽時會自動以系統管理員帳號admin登入,左下角的齒輪圖示是設定,按下後會出現設定的各項選項。點擊【個人】(Personal)→【語言】(Language),將網頁語言更換為「臺灣話」以顯示繁體中文。接著我們先來上傳一個檔案來試看看是否可以順利執行。
圖14

我們在新的瀏覽器分頁由「http://owncloud.org/sync-clients/」下載ownCloud的本地端同步工具,將下載的owncloud-1.*-setup.exe存入硬碟後,再點擊網頁上方新增按鈕右側的上傳圖示,將之上傳到ownCloud的存放目錄裡。上傳時右上角會出現進度條,上傳完成後進度條會消失,但游標卻經常保持為上傳中的樣式,此時重新重整網頁即可看到檔案已顯示在清單中了。

將游標移到檔名右方會顯示出操作選項,有更名、分享、下載與歷史等4項。透過分享可以將上傳的檔案分享給其他使用者,很輕鬆的達到文件流通的目的。
圖15

ownCloud進階設定

驗證安裝並且上傳測試檔案成功後,接著再來設定系統其他選項,讓系統更符合我們的使用需求。點擊左下角設定的【管理】來放大上傳檔案的最大容量。
我們可以把最大上傳容量由512 MB修改成「2 GB」,ZIP檔案最大輸入大小由800 MB修改成「2 GB」。設定好後按ZIP大小下方的〔Save〕。我們可以切換回【檔案】頁面,將游標移到上傳圖示上讓最大上傳容量顯示出來以確認修改成功。

圖16

接著我們再來設定使用者的設置選項。

在使用者網頁最上方輸入使用者各個欄位後按〔創造〕就能產生新的使用者帳號。預設容量限制若選用「none」,則該名使用者會擁有磁碟機的全部可用空間,為避免硬碟被使用殆盡,務必指定容量為1GB、5GB、10GB或自行輸入大小。

圖17

LDAP帳號設定

若企業或你的運行環境裡有建立LDAP(AD)環境的話,則可以透過ownCloud的「LDAP user and group backend」應用程式(其實就是外掛)將ownCloud的使用者資料與LDAP帳號同步,同步後就不必重新建立ownCloud帳號,而只要直接使用既有的LDAP帳號就能登入且立即使用ownCloud。LDAP使用者的設定步驟如下:

  1. 首先按左下角的設定→再點擊【應用程式】,找到「LDAP user and group backend」後點擊並按〔啟用〕。
    圖18
  2. 再由設定→【管理】找到LDAP設定欄位。如果看到紅色的警告文字「Warning: The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it.」表示必須先啟用PHP的LDAP模組後才能順利使用LDAP功能,因此請依下列步驟來建立LDAP模組:
    • 用XAMPP控制面板停止Apache系統後,再將C:\XAMPP\PHP資料夾的下列檔案複製到C:\XAMPP\Apache\bin,覆蓋原有或新增缺少的檔案:
版本 複製的檔案
XAMPP 1.8.1 libsasl.dll
XAMPP 1.7.7 libeay32.dll libsasl.dll ssleay32.dll
  • 編輯C:\XAMPP\PHP\php.ini,找到「;extension=php_ldap.dll」,將開頭的半形分號刪去,讓Apache啟動時會載入php_ldap.dll。
  • 重新啟動Apache Web Server。
  • 用瀏覽器瀏覽「http://localhost/xampp」,按左方的【Phpinfo】後在右方找LDAP,若啟用成功就能看到如下畫面,會顯示LDAP模組的相關資訊:
    圖19

3.ownCloud的LDAP設定分成基本與進階兩個分頁,在基本分頁裡主要設定LDAP主機的設置,若使用Windows AD的話,則必須再設定進階分頁裡的選項。

圖20
圖21

  • LDAP基本設定
欄位名 說明 範例
主機(Host) LDAP主機名稱或IP 10.1.5.1
基本判別名 (Base DN) LDAP主機的基本識別名稱(LDAP網域) DC=mydomain,DC=com,DC=tw
用戶判別名 (User DN) 用來登入LDAP主機的帳號 ldap_user@mydomain.com.tw 或 CN=ldap_user,DC=mydomain,DC=com,DC=tw
密碼(Password) 用來登入LDAP主機的密碼
用戶登錄過濾器 (User Login Filter) 在LDAP裡判別登入帳號的比對方式 sAMAccountName=%uid
用戶列表過濾器 (User List Filter) 列出使用者帳號清單的方式。範例的表示式是找出物件類別是User但不是Computer的物件 (&(objectClass=user)(!(objectClass=computer)))
群組過濾器 (Group Filter) 列出LDAP群組清單的方式 objectClass=group
  • LDAP進階設定
欄位名 說明 範例
端口(Port) LDAP通訊埠號碼 預設是389
基本用戶樹 (Base User Tree) LDAP的帳號樹狀結構 一般設成與Base DN相同即可
基本群組樹 (Base Group Tree) LDAP的群組樹狀結構 一般設成與Base DN相同即可
群組-成員組合 (Group-Member association) LDAP群組成員的欄名 Windows AD必須選用「member (AD)」
使用TLS (Use TLS) LDAP資訊傳輸時是否使用TLS加密機制 一般不必勾選
大小寫不敏感的LDAP服務器 (Case insensitive LDAP server (Windows) LDAP物件名稱是否大小寫嚴格區分的設定 一般不必勾選
關閉SSL證書校驗 (Turn off SSL certificate validation) 是否關閉SSL證書認證 一般不必勾選

4.以上LDAP欄位都輸入完畢後,先按〔Test Configuration〕檢查是否能正確存取LDAP主機,若測試失敗,則重整網頁後看下方的測試紀錄以找到除錯資訊,再依據顯示的資訊排除問題。

結語

ownCloud是開放原始碼的系統,不僅安裝、設定容易,當我們有需要時也能直接修改程式,而且ownCloud使用的開發環境是非常普遍的PHP+MySQL組合,要自己架站或安裝在主機商的遠端機器上都很方便。

然而有一件需要使用者們耐心等待的:以Windows建立的ownCloud系統無法處理上傳的中文檔名,主因是Windows的NTFS檔案系統以UTF-16編碼儲存檔名,而ownCloud以UTF-8編碼處理檔名,在編碼轉換過程中發生了錯誤。目前ownCloud開發團隊已經積極在處理這個檔名的編碼問題,相信不久之後就能解決這個惱人的問題。目前只能先用英文檔名上傳囉。

2013/03/19附記:ownCloud 5.0已經於2013/03/15釋出,初步測試中文已能正常操作了!還沒使用的朋友請直接安裝最新的5.0版吧。

本文節錄自《密技偷偷報第66期)》-《打造私人專屬的VIP雲端硬碟-Dropbox空間不夠?雲端硬碟自己架,想要多大就有多大》一文。

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

15 個回應

  1. weldon表示:

    您好~
    我依照您的教學說明成功將XAMMP安裝完成,並成功啟動了

    但是在owncloud安裝步驟1卡關了,網頁畫面出現HTTP500內部發生錯誤…

    還請您抽空指點一二.

    謝謝您

  2. Jason表示:

    請問一下ad部份怎麼設定? 看不太懂…..

    試了一下,有連線成功(但有驚嘆號),在帳號名單也沒看到有帳號匯入。請問一下User Dn 是要Administrator?

    假設Ip為10.1.1.1
    domain名稱:abcxxx.com
    administrator: kk123

    那要怎麼設定ldap相關設定??

    • 簡睿表示:

      印象中可能是Dn用錯,建議先用LDAP Browser之類的工具先確認一次。比照文章裡的LDAP設定應該就能連才對。

  3. Chris表示:

    請問一下ownCloud怎麼新增app到ownCloud裡???

    • 簡睿表示:

      按左下角的設定→再點擊【應用程式】,能使用的App就會列出來。若要新增清單以外的應用程式要查一下它的文件。

  4. 榮哥表示:

    請問
    如何修改owncloud存放資料路徑

  5. roger表示:

    搜索不能识别中文,有解决方案吗?谢谢

  6. Mr D表示:

    你好, 我遇到一個問題
    不知能否找出原因呢

    我已經在php.ini 那邊設定上傳上限為8gb(memory, post, upload….等等都設定了)
    但始終無法上傳大於2gb的檔案

    不知道有什麼方法可以上傳大容量的檔案呢?

    • 簡睿表示:

      系統預設最大2GB, 要查一下看能否設定。

      apps\files\admin.php裡的程式如下:

       
      $upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize'));
      $post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size'));
      $maxUploadFilesize = OCP\Util::humanFileSize(min($upload_max_filesize, $post_max_size));
      

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *