五步架設專屬于你的Seafile云服務器
譯文如今,云計算是熱門詞匯;大家都在紛紛向云遷移,哪怕大多數人甚至不知道云的實際含義。在我看來,云是個虛幻的地方,處理和存儲我的數據;在此過程中,將我從存儲數據的某一個設備解放出來。有了“云”,我就可以從任何聯網的設備訪問自己的數據。
實際上發生的是,我的數據從本地機器轉移到了遠程機器或者遠程機器集群,數據就在那些機器進行存儲和處理。
數據的這種“轉移”顯著改變了情況。如果我并不“擁有”那些遠程機器,擁有遠程機器的人也就成了我數據的“共同擁有者”。“共同擁有者”可以掃描我的私密數據,查看它有沒有侵犯任何版權,可能因眾多說不清道不明的原因,阻止我訪問自己的數據。
過去曾發生了一起事件,微軟在某用戶的秘密文件夾中發現了一些令人不快的內容后,據說該公司阻止這個用戶訪問其自己的數據。我想知道微軟在私有文件夾中做了什么?
問題是,我并不信賴第三方云提供商,諸如此類的事件進一步加強了我不信任它們的觀念。
這就是為何我把自己的所有私密數據放在由我本人運行和控制的云上。我用過幾種開源文件同步和存儲解決方案,包括ownCloud,最近日漸了解了Seafile,它很快成了我的心頭好。
幾周前,我將Seafile安裝到服務器上,讓它成為了我的主要云。既然開源的宗旨在于分享,我就分享一下將Seafile安裝到服務器上的具體步驟。
我的服務器
我在虛擬專用服務器(VPS)上運行Seafile,該服務器運行的操作系統是全面打上補丁的Ubuntu 14.04。所以給自己弄一臺Ubuntu或Debian機器,不妨開始上手。
***步:安裝和保護MariaDB
我并不使用MySQL,強烈建議使用MariaDB。為了將***版本的MariaDB即10.x(我不建議使用5.x分支版本)安裝到Ubuntu上,你需要啟用額外的軟件庫。訪問該頁面,即可了解為操作系統添加相應軟件庫的說明步驟。由于我使用Ubuntu 14.04,按照下列步驟添加了軟件庫:
- 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’
更新軟件庫,安裝MariaDB:
- sudo apt-get update
- sudo apt-get install mariadb-server
安裝過程中,MariaDB會要求輸入數據庫的根密碼,這個根密碼不同于系統根密碼。輸入所需的密碼,才能繼續下一步。
安裝過程中,MariaDB會要求輸入數據庫的根密碼,這個根密碼不同于系統根密碼。
現在我們需要保護數據庫,但是我們先要終結數據庫服務器守護進程,之后才能進入到下一步,否則你會遇到錯誤:
- sudo killall mysqld
現在運行下面這個命令:
- sudo mysql_install_db
一旦它成功運行,啟動數據庫服務器:
- sudo service mysql start
然后運行這個命令:
- sudo mysql_secure_installation
它會要求你提供根密碼。在下一步,它會詢問你想不想更改數據庫的根密碼:回答no。在其余步驟,統統回答“yes”。要是一切正常,你會看到這個信息:
Thanks for using MariaDB!(感謝使用MariaDB!)
第二步:安裝Apache
現在可以安裝Web服務器,并啟動所需的模塊了。在該服務器上,我運行Apache以及FastCGI。由于FastCGI無法通過默認的軟件庫來獲得,于是我們只好啟用Multiverse軟件庫。在大多數情況下,multiverse軟件庫出現在源列表中,但是已被注釋掉(具體取決于你的VPS提供商)。打開源列表文件,去掉注釋:
- sudo nano /etc/apt/source.list
如果軟件庫不在source.list文件中,那就從Ubuntu維基的這個頁面(https://help.ubuntu.com/lts/serverguide/configuration.html)添加它們。
默認的Ubuntu軟件庫看起來就像下面這些,不過你可能想找到更靠近你服務器的鏡像,以獲得更好的性能:
- 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軟件庫被啟用,運行更新,安裝兩個程序包:
- sudo apt-get update
- sudo apt-get install apache2 libapache2-mod-fastcgi
然后啟用這些模塊:
- a2enmod rewrite
- a2enmod fastcgi
- a2enmod proxy_http
第三步:配置Vhost
在我們繼續下一步之前,先創建Web目錄,到時我們要把Seafile程序包下載到這里。在Ubuntu上,它應該在/var/www/下。
- sudo mkdir -p /var/www/directory_name
示例:
- sudo mkdir -p /var/www/sea
現在我們得為seafile服務器創建一個vhost文件:
- nano /etc/apache2/sites-available/your_vhost_name.conf
示例:
- nano /etc/apache2/sites-available/sea.conf
該vhost文件應該看起來就像下面這樣:
- <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中,你得更改三個部分:體現URL的ServerName或你服務器的DocumentRoot;提供我們上面創建的目錄的路徑:Alias /media /var/www/your_directory_path/seafile-server-latest/seahub/media。
打開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
現在不妨使用“cd”命令,進入到剛創建的用來安裝Seafile的目錄:
- cd /var/www/sea/
使用wget命令將***的Seafile程序包裝入到該目錄(你應該訪問下載頁面: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命令,進入到解壓縮的“seafile-server”目錄:
- cd seafile-server*
運行該腳本,它會為Seafile服務器創建所需的數據庫和目錄:
- ./setup-seafile-mysql.sh
該腳本會引導你安裝使用MySQL的Seafile服務器。第3步到第6步選擇默認選項:
按回車鍵繼續
1: 賦予服務器名稱
2: 服務器IP或域名
3: 默認端口
4: 你想把seafile數據放在哪里?
5: 你想為seafile服務器使用哪個端口?
6: 你想為seafile文件服務器使用哪個端口?
7: 創建用戶(如果你沒有用戶,那就選擇選項[1],這會自動創建數據庫和用戶。)
如果你選擇了選項 [1]以創建數據庫,就會遇到下列選項:在選項4中,創建一個新用戶,而不是使用“root”作為Seafile數據庫的根用戶。我在本文中創建了一個名為“seau”的用戶。其余的保持原狀。
- 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” ]
一旦完成,腳本會顯示所執行任務的摘要。
現在,我們得編輯兩個配置文件了:ccnet.conf和seahub_settings.py。這些文件駐留在文檔根目錄中。
用所需的編輯工具打開ccnet.conf,我使用nano:
- sudo nano /var/www/your-directory/ccnet/ccnet.conf
在該文件中,檢查“SERVICE_URL”指向正確的域。
- SERVICE_URL = http://www.your_domain.com:8000
現在,編輯第二個配置文件:
- sudo nano /var/www/your-directory/seahub_settings.py
并在DATABASES前面添加下面這一行:
- FILE_SERVER_ROOT = ‘http://www.your-domain.com/seafhttp’
第五步:啟動服務器
首先我們要運行腳本,它將啟用我們在第三步:配置Vhost進行的apache2配置里面所配置的網站。
- a2ensite your_vhost_name.conf
在本文中它是:
- a2ensite sea.conf
然后重啟apache:
- service apache2 restart
現在不妨運行Seafile服務器:
- /var/www/your-directory/seafile-server-latest/./seafile.sh start
- /var/www/your-directory/seafile-server-latest/./seahub.sh start-fastcgi
第二個命令會要求你為Seafile服務器創建管理員帳戶,這將是現有的電子郵件ID和密碼。該電子郵件ID和密碼將用于登錄進入到你的服務器。
就是這樣。一切都搞定了。
打開任何Web瀏覽器(建議使用Chrome),輸入網站URL或服務器的IP地址。
示例:
- www.seafile.com
或
- 10.20.11.11
打開Seafile服務器的登錄頁面。
這會打開Seafile服務器的登錄頁面。輸入你在上面創建的用戶名和密碼,你就會登錄進入到完全屬于你自己的Seafile服務器!再見了,Dropbox!
#p#
Seafile服務器使用入門
Seafile使用不同的模式。不像Dropbox或ownCloud,這里的一切都是庫。可以把這些庫當成是目錄。這些庫是可使用桌面客戶軟件在不同的機器之間同步的內容。
你可以在默認的“My Library”里面創建所需的文件夾,也可以創建新的庫,如果你在同步方面想要更靈活的話。我完全刪除了默認的“My Library”,創建了幾個庫,比如Images、Documents、eBooks、Music和Movies等。關于Seafile的好消息就是,你可以直接從Web瀏覽器加密這些庫。
接下來為你的操作系統下載桌面客戶軟件。***次運行客戶軟件后,它會詢問你喜歡客戶軟件將文件保留在哪個位置。
Seafile桌面客戶軟件
輸入服務器的帳戶詳細信息。然后右擊你想與這臺機器同步的那個庫。
Seafile桌面客戶軟件上的文件同步
客戶軟件為你提供了選項,為該文件選擇所需的位置。
客戶軟件為你提供了選項,為該文件選擇所需的位置。這是我最喜歡Seafile的一個地方,因為那樣我可以將與文件夾同步的不同庫放在不同的分區上。
就是這樣!盡情享用完全屬于你自己的“Seafile云服務器”。
原文標題:How to Install a Seafile Server to Run a Private Cloud