五步架設(shè)專(zhuān)屬于你的Seafile云服務(wù)器
譯文如今,云計(jì)算是熱門(mén)詞匯;大家都在紛紛向云遷移,哪怕大多數(shù)人甚至不知道云的實(shí)際含義。在我看來(lái),云是個(gè)虛幻的地方,處理和存儲(chǔ)我的數(shù)據(jù);在此過(guò)程中,將我從存儲(chǔ)數(shù)據(jù)的某一個(gè)設(shè)備解放出來(lái)。有了“云”,我就可以從任何聯(lián)網(wǎng)的設(shè)備訪問(wèn)自己的數(shù)據(jù)。
實(shí)際上發(fā)生的是,我的數(shù)據(jù)從本地機(jī)器轉(zhuǎn)移到了遠(yuǎn)程機(jī)器或者遠(yuǎn)程機(jī)器集群,數(shù)據(jù)就在那些機(jī)器進(jìn)行存儲(chǔ)和處理。
數(shù)據(jù)的這種“轉(zhuǎn)移”顯著改變了情況。如果我并不“擁有”那些遠(yuǎn)程機(jī)器,擁有遠(yuǎn)程機(jī)器的人也就成了我數(shù)據(jù)的“共同擁有者”。“共同擁有者”可以?huà)呙栉业乃矫軘?shù)據(jù),查看它有沒(méi)有侵犯任何版權(quán),可能因眾多說(shuō)不清道不明的原因,阻止我訪問(wèn)自己的數(shù)據(jù)。
過(guò)去曾發(fā)生了一起事件,微軟在某用戶(hù)的秘密文件夾中發(fā)現(xiàn)了一些令人不快的內(nèi)容后,據(jù)說(shuō)該公司阻止這個(gè)用戶(hù)訪問(wèn)其自己的數(shù)據(jù)。我想知道微軟在私有文件夾中做了什么?
問(wèn)題是,我并不信賴(lài)第三方云提供商,諸如此類(lèi)的事件進(jìn)一步加強(qiáng)了我不信任它們的觀念。
這就是為何我把自己的所有私密數(shù)據(jù)放在由我本人運(yùn)行和控制的云上。我用過(guò)幾種開(kāi)源文件同步和存儲(chǔ)解決方案,包括ownCloud,最近日漸了解了Seafile,它很快成了我的心頭好。
幾周前,我將Seafile安裝到服務(wù)器上,讓它成為了我的主要云。既然開(kāi)源的宗旨在于分享,我就分享一下將Seafile安裝到服務(wù)器上的具體步驟。
我的服務(wù)器
我在虛擬專(zhuān)用服務(wù)器(VPS)上運(yùn)行Seafile,該服務(wù)器運(yùn)行的操作系統(tǒng)是全面打上補(bǔ)丁的Ubuntu 14.04。所以給自己弄一臺(tái)Ubuntu或Debian機(jī)器,不妨開(kāi)始上手。
***步:安裝和保護(hù)MariaDB
我并不使用MySQL,強(qiáng)烈建議使用MariaDB。為了將***版本的MariaDB即10.x(我不建議使用5.x分支版本)安裝到Ubuntu上,你需要啟用額外的軟件庫(kù)。訪問(wèn)該頁(yè)面,即可了解為操作系統(tǒng)添加相應(yīng)軟件庫(kù)的說(shuō)明步驟。由于我使用Ubuntu 14.04,按照下列步驟添加了軟件庫(kù):
- sudo apt-get install software-properties-common
- sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
- sudo add-apt-repository ‘deb http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main’
更新軟件庫(kù),安裝MariaDB:
- sudo apt-get update
- sudo apt-get install mariadb-server
安裝過(guò)程中,MariaDB會(huì)要求輸入數(shù)據(jù)庫(kù)的根密碼,這個(gè)根密碼不同于系統(tǒng)根密碼。輸入所需的密碼,才能繼續(xù)下一步。
安裝過(guò)程中,MariaDB會(huì)要求輸入數(shù)據(jù)庫(kù)的根密碼,這個(gè)根密碼不同于系統(tǒng)根密碼。
現(xiàn)在我們需要保護(hù)數(shù)據(jù)庫(kù),但是我們先要終結(jié)數(shù)據(jù)庫(kù)服務(wù)器守護(hù)進(jìn)程,之后才能進(jìn)入到下一步,否則你會(huì)遇到錯(cuò)誤:
- sudo killall mysqld
現(xiàn)在運(yùn)行下面這個(gè)命令:
- sudo mysql_install_db
一旦它成功運(yùn)行,啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器:
- sudo service mysql start
然后運(yùn)行這個(gè)命令:
- sudo mysql_secure_installation
它會(huì)要求你提供根密碼。在下一步,它會(huì)詢(xún)問(wèn)你想不想更改數(shù)據(jù)庫(kù)的根密碼:回答no。在其余步驟,統(tǒng)統(tǒng)回答“yes”。要是一切正常,你會(huì)看到這個(gè)信息:
Thanks for using MariaDB!(感謝使用MariaDB!)
第二步:安裝Apache
現(xiàn)在可以安裝Web服務(wù)器,并啟動(dòng)所需的模塊了。在該服務(wù)器上,我運(yùn)行Apache以及FastCGI。由于FastCGI無(wú)法通過(guò)默認(rèn)的軟件庫(kù)來(lái)獲得,于是我們只好啟用Multiverse軟件庫(kù)。在大多數(shù)情況下,multiverse軟件庫(kù)出現(xiàn)在源列表中,但是已被注釋掉(具體取決于你的VPS提供商)。打開(kāi)源列表文件,去掉注釋?zhuān)?/p>
- sudo nano /etc/apt/source.list
如果軟件庫(kù)不在source.list文件中,那就從Ubuntu維基的這個(gè)頁(yè)面(https://help.ubuntu.com/lts/serverguide/configuration.html)添加它們。
默認(rèn)的Ubuntu軟件庫(kù)看起來(lái)就像下面這些,不過(guò)你可能想找到更靠近你服務(wù)器的鏡像,以獲得更好的性能:
- deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
- deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
- deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
- deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
一旦multiverse軟件庫(kù)被啟用,運(yùn)行更新,安裝兩個(gè)程序包:
- sudo apt-get update
- sudo apt-get install apache2 libapache2-mod-fastcgi
然后啟用這些模塊:
- a2enmod rewrite
- a2enmod fastcgi
- a2enmod proxy_http
第三步:配置Vhost
在我們繼續(xù)下一步之前,先創(chuàng)建Web目錄,到時(shí)我們要把Seafile程序包下載到這里。在Ubuntu上,它應(yīng)該在/var/www/下。
- sudo mkdir -p /var/www/directory_name
示例:
- sudo mkdir -p /var/www/sea
現(xiàn)在我們得為seafile服務(wù)器創(chuàng)建一個(gè)vhost文件:
- nano /etc/apache2/sites-available/your_vhost_name.conf
示例:
- nano /etc/apache2/sites-available/sea.conf
該vhost文件應(yīng)該看起來(lái)就像下面這樣:
- <VirtualHost *:80>
- ServerName www.your-domain-name.com
- # Use "DocumentRoot /var/www/html" for Centos/Fedora
- # Use "DocumentRoot /var/www" for Ubuntu/Debian
- DocumentRoot /var/www/your-directory/
- Alias /media /var/www/your-directory/seafile-server-latest/seahub/media
- RewriteEngine On
- # </Location>
- <Location /media>
- Require all granted
- </Location>
- # seafile fileserver
- ProxyPass /seafhttp http://127.0.0.1:8082
- ProxyPassReverse /seafhttp http://127.0.0.1:8082
- RewriteRule ^/seafhttp - [QSA,L]
- # seahub
- RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
- </VirtualHost>
在你的vhost中,你得更改三個(gè)部分:體現(xiàn)URL的ServerName或你服務(wù)器的DocumentRoot;提供我們上面創(chuàng)建的目錄的路徑:Alias /media /var/www/your_directory_path/seafile-server-latest/seahub/media。
打開(kāi)apache.conf文件:
- nano /etc/apache2/apache2.conf
在末尾處添加這一行(別忘了更改目錄的路徑):
- FastCGIExternalServer /var/www/your_directory_path/seahub.fcgi -host 127.0.0.1:8000
#p#
第四步:安裝Seafile
先安裝Seafile所需的程序包:
- apt-get install python2.7 python-setuptools python-imaging python-mysqldb python-flup
現(xiàn)在不妨使用“cd”命令,進(jìn)入到剛創(chuàng)建的用來(lái)安裝Seafile的目錄:
- cd /var/www/sea/
使用wget命令將***的Seafile程序包裝入到該目錄(你應(yīng)該訪問(wèn)下載頁(yè)面:http://www.seafile.com/en/download/,獲得***版本):
- sudo wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_4.0.5_x86-64.tar.gz
解壓縮文件:
- tar xzvf seafile-server*
然后使用cd命令,進(jìn)入到解壓縮的“seafile-server”目錄:
- cd seafile-server*
運(yùn)行該腳本,它會(huì)為Seafile服務(wù)器創(chuàng)建所需的數(shù)據(jù)庫(kù)和目錄:
- ./setup-seafile-mysql.sh
該腳本會(huì)引導(dǎo)你安裝使用MySQL的Seafile服務(wù)器。第3步到第6步選擇默認(rèn)選項(xiàng):
按回車(chē)鍵繼續(xù)
1: 賦予服務(wù)器名稱(chēng)
2: 服務(wù)器IP或域名
3: 默認(rèn)端口
4: 你想把seafile數(shù)據(jù)放在哪里?
5: 你想為seafile服務(wù)器使用哪個(gè)端口?
6: 你想為seafile文件服務(wù)器使用哪個(gè)端口?
7: 創(chuàng)建用戶(hù)(如果你沒(méi)有用戶(hù),那就選擇選項(xiàng)[1],這會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)和用戶(hù)。)
如果你選擇了選項(xiàng) [1]以創(chuàng)建數(shù)據(jù)庫(kù),就會(huì)遇到下列選項(xiàng):在選項(xiàng)4中,創(chuàng)建一個(gè)新用戶(hù),而不是使用“root”作為Seafile數(shù)據(jù)庫(kù)的根用戶(hù)。我在本文中創(chuàng)建了一個(gè)名為“seau”的用戶(hù)。其余的保持原狀。
- 1 What is the host of mysql server?
- [ default “localhost” ]
- 2 What is the port of mysql server?
- [ default “3306” ]
- 3 What is the password of the mysql root user?
- [ root password ]
- verifying password of user root … done
- 4 Enter the name for mysql user of seafile. It would be created if not exists.
- [ default “root” ] seau
- 5 Enter the password for mysql user “seau”:
- [ password for seau ]
- 6 Enter the database name for ccnet-server:
- [ default “ccnet-db” ]
- 7 Enter the database name for seafile-server:
- [ default “seafile-db” ]
- 8 Enter the database name for seahub:
- [ default “seahub-db” ]
一旦完成,腳本會(huì)顯示所執(zhí)行任務(wù)的摘要。
現(xiàn)在,我們得編輯兩個(gè)配置文件了:ccnet.conf和seahub_settings.py。這些文件駐留在文檔根目錄中。
用所需的編輯工具打開(kāi)ccnet.conf,我使用nano:
- sudo nano /var/www/your-directory/ccnet/ccnet.conf
在該文件中,檢查“SERVICE_URL”指向正確的域。
- SERVICE_URL = http://www.your_domain.com:8000
現(xiàn)在,編輯第二個(gè)配置文件:
- sudo nano /var/www/your-directory/seahub_settings.py
并在DATABASES前面添加下面這一行:
- FILE_SERVER_ROOT = ‘http://www.your-domain.com/seafhttp’
第五步:?jiǎn)?dòng)服務(wù)器
首先我們要運(yùn)行腳本,它將啟用我們?cè)诘谌剑号渲肰host進(jìn)行的apache2配置里面所配置的網(wǎng)站。
- a2ensite your_vhost_name.conf
在本文中它是:
- a2ensite sea.conf
然后重啟apache:
- service apache2 restart
現(xiàn)在不妨運(yùn)行Seafile服務(wù)器:
- /var/www/your-directory/seafile-server-latest/./seafile.sh start
- /var/www/your-directory/seafile-server-latest/./seahub.sh start-fastcgi
第二個(gè)命令會(huì)要求你為Seafile服務(wù)器創(chuàng)建管理員帳戶(hù),這將是現(xiàn)有的電子郵件ID和密碼。該電子郵件ID和密碼將用于登錄進(jìn)入到你的服務(wù)器。
就是這樣。一切都搞定了。
打開(kāi)任何Web瀏覽器(建議使用Chrome),輸入網(wǎng)站URL或服務(wù)器的IP地址。
示例:
- www.seafile.com
或
- 10.20.11.11
打開(kāi)Seafile服務(wù)器的登錄頁(yè)面。
這會(huì)打開(kāi)Seafile服務(wù)器的登錄頁(yè)面。輸入你在上面創(chuàng)建的用戶(hù)名和密碼,你就會(huì)登錄進(jìn)入到完全屬于你自己的Seafile服務(wù)器!再見(jiàn)了,Dropbox!
#p#
Seafile服務(wù)器使用入門(mén)
Seafile使用不同的模式。不像Dropbox或ownCloud,這里的一切都是庫(kù)??梢园堰@些庫(kù)當(dāng)成是目錄。這些庫(kù)是可使用桌面客戶(hù)軟件在不同的機(jī)器之間同步的內(nèi)容。
你可以在默認(rèn)的“My Library”里面創(chuàng)建所需的文件夾,也可以創(chuàng)建新的庫(kù),如果你在同步方面想要更靈活的話(huà)。我完全刪除了默認(rèn)的“My Library”,創(chuàng)建了幾個(gè)庫(kù),比如Images、Documents、eBooks、Music和Movies等。關(guān)于Seafile的好消息就是,你可以直接從Web瀏覽器加密這些庫(kù)。
接下來(lái)為你的操作系統(tǒng)下載桌面客戶(hù)軟件。***次運(yùn)行客戶(hù)軟件后,它會(huì)詢(xún)問(wèn)你喜歡客戶(hù)軟件將文件保留在哪個(gè)位置。
Seafile桌面客戶(hù)軟件
輸入服務(wù)器的帳戶(hù)詳細(xì)信息。然后右擊你想與這臺(tái)機(jī)器同步的那個(gè)庫(kù)。
Seafile桌面客戶(hù)軟件上的文件同步
客戶(hù)軟件為你提供了選項(xiàng),為該文件選擇所需的位置。
客戶(hù)軟件為你提供了選項(xiàng),為該文件選擇所需的位置。這是我最喜歡Seafile的一個(gè)地方,因?yàn)槟菢游铱梢詫⑴c文件夾同步的不同庫(kù)放在不同的分區(qū)上。
就是這樣!盡情享用完全屬于你自己的“Seafile云服務(wù)器”。
原文標(biāo)題:How to Install a Seafile Server to Run a Private Cloud