(黃獻德) Hsien-De Huang | E-Mail:TonTon (at) TWMAN.ORG | TonTon (痛痛)
Malware Analysis Network in Taiwan (MiT) | 惡意程式分析網在台灣 (抬丸郎)
Deep Learning (深度學習), Malware Analysis (惡意程式分析), Ontology (知識本體)
Android Reverse Engineering (Android 逆向工程), Type-2 Fuzzy Logic (第二型模糊邏輯)

ONE PIECE (海賊王)

ONE PIECE (海賊王)

2012年12月4日

用 ownCloud 打造無限大的私有雲端硬碟

本文已於2013/08/22 15:00
更新ownCloud新版安裝,請務必改參考:
Cent OS 6.4 x86_64 裝 Google Chrome 跟 ownCloud 5.0.10
http://blog.twman.org/2013/08/ownCloud-5.0.10.html

開始安裝前,極度建議你一定要先看下面這一篇 !
Cent OS 5.8 x64 PHP 5.1.6 無痛快速升級至 5.4.9

(建議整個從頭看到完理解後再開始做 ! 因為藍字的錯誤訊息是一直持續補充的 !)

嗯 ! 繼上一篇的升級後 ... 這篇要寫的就是我想幫 TWMAN+ 整合進去的後端功能:一個惡意程式分析(含樣本及報告) 儲存庫
原本想要使用 Google Drive,但不支援 Linux;突然想到前天玩的 ASUS Web Storage,才 8GB ... 感覺好像不夠 ? 就這樣被我找到了這個東西啦 !!! 

(有人說做 Open Source 是判國行為,但我就猜一定還是會有人做出來的)
好啦 ! 這東西其實安裝起來一整個就是超簡單 !


首先你得先在上一篇升級完 php 和 mysql 後,把 mysql 啟動:/etc/init.d/mysqld start

接著記得一併幫 mysql 設定一下帳號密碼: 

mysqladmin -u username password password
粗體的 username 跟 password 請依自己環境修改

PS: 在這邊可能會碰上不能登入mysql或幫mysql 設定帳密,請把它移除 (yum remove mysql;yum --enablerepo=remi-test install mysql ) 就搞定



再來就是請你移駕到官網:http://owncloud.org


這邊一定要注意它寫的這一行 ....
To enable .htaccess files you need to ensure that ‘AllowOverride’ is set to ‘All’ in the ‘Directory /var/www/’ section of your virtual host file.

就是要你記得改一下你的 AllowOverride,不然你三不五時就會看到這堆字


Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.

<Directory />
    AllowOverride All
</Directory>

<Directory /xxx/owncloud/data/>
   AllowOverride All
</Directory>

我是這樣設定,就不再出現那行警告,也不會再發生直接 key 檔案路徑就整個曝露出來 ! 下方還有另個解法


然後就是下載它的 web-install 版啦 (嗯 ! 這東西感覺好贊哦 ! )

wget https://download.owncloud.com/download/community/setup-owncloud.php  --no-check-certificate

接著就是打開瀏覽器輸入:
https://your.domain.name/setup-owncloud.php

(特別說明怎樣開 Apache SSL 的指令,要key一些資訊)
#openssl genrsa -out f102.twman.org.key 1024 
#openssl req -new -key f102.twman.org.key -out f102.twman.org.csr
#openssl x509 -req -days 365 -in f102.twman.org.csr -signkey f102.twman.org.key -out f102.twman.org.crt

到這邊,基本上就非常簡單啦 ....


直接連你的網址 https://your.domain.name/setup-owncloud.php 就可以



 這邊只要一直按下一步就可以啦 !



看到下面這個畫面就可以說已經完成了



基本上到這邊應該就可以成功 ! 但如果很不幸你開不起來,如果你沒修改過你的 httpd.conf 就開始裝這東西的話,會碰到權限問題



這是因為 apache 預設的 user 和 group 都是 apache,但owncloud卻是用一般大家都常用的 nobody;另外,你也很可能碰上 apache 明明有啟動但網頁就是開不起來,請檢查一下你的 log 檔是不是有下列這樣的資訊

NSS_Initialize failed. Certificate database: /etc/httpd/alias.

SSL Library Error: -8038 SEC_ERROR_NOT_INITIALIZED

這是RHEL 5.6以後的bug,該bug是因為套件mod_nss 1.0.8-3的安裝後script錯誤造成的,解決方法很簡單,只需要變更/etc/http/alias下*.db檔案的權限即可解決



chmod g+r /etc/httpd/alias/*.db
chgrp nobody /etc/httpd/alias/*.db
然後重新啟動:service httpd restart




除此之外還有可能發生一樣也是apache user權限的錯誤

PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session)


# chown nobody -R /var/lib/php/session

也或許你也會很白目的像我改錯地方而發生這問題

Invalid method in request \x16\x03

檢查一下這一行 <VirtualHost _default_:443> 就可以解決了



趕快登入吧 ! 進去後記得修改一下語系 (有繁體中文)
主畫面所具備功能:新增:可新增檔案、資料夾、URL等;向上的箭頭則為上傳檔案。



看到了吧 ... 這個硬碟空間你可以慢慢的增加啊 !
You have used 7.9 kB of the available 5302.2 GB



修改密碼:點選左下方的齒輪裡的個人可以修改密碼。 
Media Ampache address: https://your.domain.name/owncloud/remote.php/ampache/
WebDAV https://your.domain.name/owncloud/remote.php/webdav/, 是後續手機端會使用到的網址路徑。

檔案版本:如果是可編輯的檔案:office或文字檔等,當滑鼠停留在上方時會出現 “History” 選項,供選擇是否回複上一版本。



選擇分享則可輸入使用者帳號,將該資料夾分享給對方 



音樂:直接在檔案部份上傳MP3檔案,再至音樂頁籤選擇 “重新掃描收藏 “ 即可 需注意的是這邊是採用 ID3 編碼來辨識歌曲,若沒自行編修過,會有亂碼。

 
圖片:跟音樂不一樣,檔案上傳後便會自動判斷。



日曆:目前看來似乎尚無法匯入Android(或網頁)上的 Google Calendar 且同步 (因為需帳密);估計只能透過其它Google Play 上的 CalDav軟體才可以編輯及同步。
(不過我是直接使用Google的Calendar Apps所以就不深入研究了)




通訊錄:看起來跟日曆是一樣的問題。



還有什麼雲端硬碟服務可以讓你這樣囂張啊 ?
(可以自行設定上下載檔案的大小限制)


------------------2013/01/04 Update--------------
首先要修改在 owncloud 根目錄底下的 .htaccess
打開可以看到這樣的設定

php_value upload_max_filesize 513M

php_value post_max_size 513M
php_value memory_limit 512M
看英文應該看得懂是啥意思吧 ? 直接就改成你想要的吧
另外,還要再去改 php.ini,一般而言呢 都是在 /etc 底下,一樣改一下吧


; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 8M

到了這邊的畫面,進去管理以後可能會看到這樣的畫面



Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root.


解決方法,前面有提過(或上網查)都會說啥你的 httpd.conf 裡的 <Directory " 你的目錄 "> 裡 的 AllowOverride

要修正為 AllowOverride All,但我測一下,好像沒太多關系

只要你照著那句訊息講的去把owncloud/config/config.php 裡 data 這個目錄的路徑修為不在 Apache 根目錄底下就可以 !

------------------2013/01/04 Update--------------

除此之外它也有 webdav ... 而且還可以裝一些 3rd Party Apps




最後就是要來看一下 PC 端的應用啦 !

http://owncloud.org/sync-clients/



直接安裝就可以使用了 !




然後輸入一些帳密相關資訊




接著就看到 SSL 資訊 ( 我個人是偏好 SSL 加密啦 )




------------------2013/01/04 Update--------------

CSync failed to reach the host. Either host or proxy settings are not valid.

這是一個大問題 ... 但我試了一下之後,好像是我直接重新設定 Apache 的 SSL key 就好了 ? 囧 ( 完全不知怎解決的)
------------------2013/01/04 Update--------------

最後,到這邊,其實就很像其它家的雲端硬碟服務一樣



設定好後,很快就可以自動上下載,最重要的是 ... 機器是自己的 ... 至少可以不用擔心你的資訊放在外人那邊 (傳說中的私有雲 (Private Cloud) !!! 另外就是這硬碟空間是隨你高興的啊 ! 唯一美中不足的就是沒有 Smart Phone 版本可以用,因為偉大的好先生的德政,所以台灣沒辦法付費買Google Play 的軟體啊 !


Google Play:https://play.google.com/store/apps/details?id=com.owncloud.android


iOS:https://itunes.apple.com/us/app/owncloud/id543672169?ls=1&mt=8


嗯, 補充更新 ... 有朋友建議可以用 webdav 來解決手機端的問題 ... 測試了一下, 果然行的通欸!




https://play.google.com/store/apps/details?id=com.estrongs.android.pop




使用方法非常的簡單 ... 安裝好該 Apps 後,直接在遠程新建一個 webdavs


輸入你的 ownCloud 相關資訊
(https://your.domain.names/owncloud/remote.php/webdav/)



就可以看到了 !

在我的 3G 上面測起來感覺速度還不差 (其實學校網路真的不快)



立馬來試試看同步的效率怎樣 ! 
在手機裡編輯一個文件



網頁介面上馬上就看到囉 !






---- 2013/01/04 Update ---
(不建議,請看下方 2013/01/07補充)
補充更新一下,在個人設定頁面可以看到
Media Ampache address: https://your.domain.names/owncloud/remote.php/ampache/
這時候請您自行到 Google Play 上下載 Ampache.Net



就可以像這樣串流播放啦 !




------------------2013/01/04 Update--------------


------------------2013/01/07 Update--------------
後來我發現更神的事了 ... 因為上面介紹使用的軟音樂串流播放得另外再多一套 APPS,所以我便試著用 ES 打開音樂







居然就可以直接串流播放耶,ES這 APPS會也太強大了啊 ?
------------------------分隔線------------------------

話說,我還是有點不死心 ... 發揮了柯南的精神找到了 ownCloud 的 APK 



(結果我找得是舊版,不能登入,改用學弟找到的做測試)
 值得注意的是,這邊得要先打開允許安裝不明來源非Market應用程式





但不管是檔案或是音樂都是得要直接下載,才可以編輯及播放,這點就不方便了。



------------------2013/01/07 Update--------------

很有趣對吧 ? 記得一起觀注一下它吧
https://plus.google.com/u/1/102805591550379137055/posts
https://www.facebook.com/owncloud

PS: 我還是覺得,如果有人能做一個 Apps 可以 Single Sign on 到各家雲端硬碟的服務 .... 然後 user 只看到一個大資料夾,那一定很棒 ! 
再補充說明:意外找到一個軟體 ... Dropboxifier,而且有不少文章介紹了哩 !

用 Dropboxifier 串連3大免費雲端空間、指定資料夾檔案同步

Dropboxifier 讓Dropbox自動同步在不同地方的資料夾、檔案

有興趣的可以再自己玩看看啦 !


最後補上一個玩失敗想重裝來清空資料庫, 重新 Setup 的方法




# mysql -u root -p -A mysql
mysql> drop database owncloud;
mysql> delete from user where user like 'oc_%';
mysql> flush privileges;
mysql> exit
# rm -f /your/directory/owncloud/config/config.php
# rm -rf /your/directory/owncloud/data/*