前不久百度了一下,購置一臺ECS可以干些什么,居然有人說可以搭建私有云,當時就心動了一下,接著就是不停的搜索,學習,整理,折騰了前前后后兩天,終于在我的ECS上面搭建好自己的私有云。
我用的是Nextcloud,我在網(wǎng)上看到還有Owncloud,Seafile,Sync等等,最后選擇Nextcloud也是因為學習的是Nextcloud教程,大家有興趣可以試試別的,不知道效果怎么樣。閑話到這里,下面是我的搭建過程,分享給大家,權作拋磚引玉。
我發(fā)現(xiàn)Nextcloud支持Webdav,這個功能太方便了,意外之喜!
第一步 安裝系統(tǒng)盤
在我的ECS里,我安裝的是LAMP環(huán)境(Ubuntu 16.04 Apache PHP7.1,這個可以直接復制,在阿里云市場可以搜索到),聽說PHP版本在7.0以下的會報錯,不知道具體什么原因,所以我老打老實地安裝了個7.1版本的。
安裝過程就不贅述了,很簡單,按照提示創(chuàng)建實例就可以了。
第二步 修改sql數(shù)據(jù)庫密碼,創(chuàng)建數(shù)據(jù)庫
創(chuàng)建好之后,就到了第二步,修改sql數(shù)據(jù)庫密碼。打開ssh,輸入
cd /root/oneinstack
./reset_db_root_password.sh
然后創(chuàng)建數(shù)據(jù)庫
如:創(chuàng)建oneinstack的數(shù)據(jù)庫(舉例)
mysql -uroot –p #進入數(shù)據(jù)庫控制臺
Enter password: #數(shù)據(jù)庫root密碼,??輸入密碼不顯示在屏幕上
MySQL [(none)]> create database nextcloud; #特別注意有分號
MySQL [(none)]> show databases; #查看數(shù)據(jù)庫,除nextcloud數(shù)據(jù)庫,其它3個為系統(tǒng)默認庫,不能刪除
MySQL [(none)]> exit; #退出數(shù)據(jù)庫控制臺,特別注意有分號
- 如果需要刪除一個數(shù)據(jù)庫:
如:刪除nextcloud的數(shù)據(jù)庫(舉例)
# mysql -uroot –p #進入數(shù)據(jù)庫控制臺
Enter password: #數(shù)據(jù)庫root密碼,??輸入密碼不顯示在屏幕上
MySQL [(none)]> drop database nextcloud;
MySQL [(none)]> show databases; #查看數(shù)據(jù)庫
MySQL [(none)]> exit; #退出數(shù)據(jù)庫控制臺,特別注意有分號。
-
創(chuàng)建數(shù)據(jù)庫用戶
為了安全我們通常給每一個網(wǎng)站程序建立唯一的數(shù)據(jù)庫連接帳號(帳號名不能為root)。
如:添加一個用戶名為admin,密碼為password,授權為本機localhost對nextcloud數(shù)據(jù)庫所有權限,命令如下:
mysql -uroot –p
Enter password: #輸入數(shù)據(jù)庫的root密碼,默認不顯示密碼
MySQL [(none)]> grant all privileges on nextcloud.* to admin@’localhost’ identified by ‘password’; #授權語句,特別注意有分號
MySQL [(none)]> flush privileges; #權限立即生效MySQL [(none)]> exit; #退出數(shù)據(jù)庫控制臺,特別注意有分號
第三步 把Nextcloud壓縮包使用FTP軟件
這里我使用的是Filezilla,通過Filezilla把nextcloud放到
cd /data/wwwroot/default
然后解壓,得到一個nextcloud的文件夾,因為數(shù)據(jù)庫在第二步已經(jīng)設置好了,所以這里我們直接打開瀏覽器,輸入IP地址/nextcloud,進入界面,設置用戶名和密碼,點擊配置數(shù)據(jù)庫,把設置好的數(shù)據(jù)庫用戶,數(shù)據(jù)庫密碼,數(shù)據(jù)庫名輸入進去,localhost不變,點擊安裝完成。到了這一步,我們的nextcloud就安裝完成了。
[nextcloud下載鏈接]https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip)
第四步 把OSS掛載到nextcloud
到了這一步,說明我們的nextcloud已經(jīng)在我們的服務器安裝好,現(xiàn)在要做的就是擴大它的存儲空間。這里我用的是阿里云提供的ossfs教程。因為自己也是按照這個教程來設置的,所以就不再做復制粘貼了,上鏈接
[OSS掛載ECS對應文件夾教程]https://help.aliyun.com/document_detail/32196.html?spm=5176.87240.400427.67.MN9NjQ
需要注意的幾點是:
1.鏈接中示例的第4步要改一改權限,參見如下對照:
- 示例:(原文)
將my-bucket這個bucket掛載到/tmp/ossfs目錄下,AccessKeyId是faint,AccessKeySecret是123,oss endpoint是http://oss-cn-hangzhou.aliyuncs.com
echo my-bucket:faint:123 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com
- 示例:(修改)
將my-bucket這個bucket掛載到/tmp/ossfs目錄下,AccessKeyId是faint,AccessKeySecret是123,oss endpoint是http://oss-cn-hangzhou.aliyuncs.com
echo my-bucket:faint:123 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com -o allow_other
可以發(fā)現(xiàn),就是最后一行新增了-o allow_other,這個是777權限。
2.你不能把整個nextcloud文件夾都掛載到oss上去,不然就算掛載成功,也會提示沒內(nèi)存或者Forbidden錯誤(有的教程里面可以掛載整個nextcloud的data文件夾,我現(xiàn)在還不知道怎么弄的);
我的辦法是:只掛載存儲內(nèi)容的文件夾,即
cd /data/wwwroot/dafault/nextcloud/data/admin/files
#這個files文件夾就是nextcloud里面的用戶最終保存文件的文件夾,只掛載這個文件夾,就不會提示錯誤。
3.記得設置開機自啟
- 通過fstab的方式自動mount
在/etc/fstab中加入下面的命令
ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0
#your后面的要填自己的bucket信息,不要直接復制粘貼,url如果是內(nèi)網(wǎng)的話最好填內(nèi)網(wǎng)url,不走流量
保存/etc/fstab文件。執(zhí)行mount -a命令,如果沒有報錯,則說明設置正常。
到這一步,ubuntu16.04就能自動掛載了。
好了,大功告成,到了這里,說明256TB的私有云就搭建完成了!
不過這里要說的是,我發(fā)現(xiàn)這個Geek的私有云隨著存儲內(nèi)容的增多,變得越來越貴。
我的ECS和OSS在一個區(qū)域,走內(nèi)網(wǎng),所以不走流量,但是OSS還有存儲費用,請求次數(shù)費用,ECS還有帶寬流量(我用的是流量計費模式),和ECS包年包月費用,這樣幾筆算下來,存儲量一大,費用就驚人,所以這個256TB在我看來,只是個噱頭罷了,土豪除外。
當然了,如果這是日常存存文件,同步一下工作文檔,用的量少,不僅可以方便同步,還算安全,至少如果不會像經(jīng)營性網(wǎng)盤那樣存在數(shù)據(jù)泄露的可能,畢竟兩者還是有區(qū)別的。
話說回來,如果存儲量少,也就沒有掛載的必要了,如果想省錢,性價比高,又要有超大的存儲量,就又形成了一個悖論,至少現(xiàn)在我還解不了,不知道各位看客有沒有別的好的方案,不妨擺上案桌,大家一起來分享探討一番。
(沒有貼圖,見諒!想來按照這個步驟也看的明白了)