twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux Jp チュートリアル プライベートクラウド用に Seafile サーバーをインストールする

プライベートクラウド用に Seafile サーバーをインストールする

原文はこちらです。

クラウドは、最近バズワードとなっています。誰もがクラウドを使い始めていますが、多くの人はそれが本当は何を意味するのかわかっていません。私にとってのクラウドは、私のデータを処理、格納する仮想の場所です。実際にデータを格納しているデバイスに束縛されることなく、処理が行えるのです。「クラウド」によって、どのネットワーク デバイスからでも自分のデータにアクセスできるようになりました。

実際には、私のデータをローカル マシンからリモート マシン、またはリモートのマシン群に移動したことを意味します。そのリモート マシンにデータの格納と処理を任せた訳です。

この移動は、大きな変化を意味します。もし、これらのリモート マシン群を所有していないときは、誰かが共同所有者になるわけです。この共同所有者は、私の個人データを見て、著作権侵害がないかを調べ、データへのアクセスを特に理由なくブロックするのです。

実際、Microsoft がユーザーの個人フォルダー内に問題のありそうな内容を見つけて、データ アクセスを禁止するという事件があったと言われています。Microsoft は、個人フォルダー内で何をしていたのでしょう。

要するに私はクラウド提供者を信用できないし、このような事件が起こると、さらに信用できなくなります。

このため、私は個人データをすべて、自分が所有し、実行するクラウド上に格納しています。ownCloud を含むファイル同期や格納管理のための OSS を利用していましたが、最近気に入ったものが Seafile です。

最近、Seafile を私のサーバーにインストールして、プライマリ クラウドとしました。OSS はシェアするのが基本ですから、私もサーバーへの Seafile インストールについて説明しようと思います。

サーバー

私は、仮想プライベート サーバー (VPS) 上の Ubuntu 14.04 で Seafile を実行しています。みなさんも Ubuntu か Debian マシンを準備してください。

ステップ 1: MariaDB のインストールとセキュリティ強化

MySQL ではなく、MariaDB をお勧めします。最新の MariaDB は 10.x (5.x ブランチはお勧めしません) ですが、Ubuntu 上ではリポジトリの追加が必要です。このページを見て、各 OS のリポジトリ追加について確認してください。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!

ステップ 2:  Apache のインストール

つづいて、ウェブ サーバーをインストールして、必要なモジュールを有効にします。ここでは Apache と FastCGI モジュールを使います。FastCGI モジュールは、標準のリポジトリでは有効ではないので、Multiverse リポジトリを有効にします。VPS にもよりますが、通常はソースには Multiverse リポジトリはあるのですが、コメントアウトされています。ソースを開いてコメントを外します。

sudo nano /etc/apt/source.list

ソースにリポジトリがなければ、Ubuntu Wiki のこのページに倣って追加してください。

標準の 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

Mutiverse リポジトリを有効にしたら、アップデートして、パッケージを 2 つインストールします。

sudo apt-get update
sudo apt-get install apache2 libapache2-mod-fastcgi

以下のモジュールを有効にします。

a2enmod rewrite
a2enmod fastcgi
a2enmod proxy_http

ステップ 3: Vhost の構築

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 で、以下の 3 点の変更を行います。

  • ”ServerName” に URL かサーバー名、
  • ”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

ステップ 4: Seafile のインストール

Seafile に必要なパッケージをインストールします。

apt-get install python2.7 python-setuptools python-imaging python-mysqldb python-flup

Seafile 用に作成したディレクトリに 'cd' します。

cd /var/www/sea/

Seafile パッケージを、このディレクトリ内に wget します(最新版を確認します)。

sudo wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_4.0.5_x86-64.tar.gz

ファイルを抽出します。

tar xzvf seafile-server*

'seafile-server' ディレクトリに cd します。

cd seafile-server*

以下のスクリプトを実行して、Seafile サーバーに必要なデータベースとディレクトリを作成します。

./setup-seafile-mysql.sh

このスクリプトは、MySQL を使うように Seafile を設定します。ステップ 3-6 は、標準値を選択します。

“ENTER” を入力して続けます。

  1.  サーバー名を入力します。
  2.  サーバー IP かドメイン名称
  3.  標準ポート
  4.  seafile データの格納場所
  5.  seafile サーバー用に使うポート
  6.  seafile ファイル サーバー用に使うポート
  7.  ユーザーの作成 (ユーザーがなければ、オプション [1] を選択すると、自動的にデータベースとユーザーを作成してくれます。)

オプション [1] を選択して、データベースを作成すると、続いて次のオプションから選択します。オプション 4 では、Seafile データベースのルート ユーザーとして、'root' を使うかわりに、新規ユーザーを作成します。私は、'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” ]

スクリプトが終了すると、実行結果のサマリーが表示されます。

ドキュメント ルート ディレクトリにある 2 つのファイル 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

2 番目のファイルを編集します。

sudo nano /var/www/your-directory/seahub_settings.py

DATABASES の前に以下の行を追加します。

FILE_SERVER_ROOT = ‘http://www.your-domain.com/seafhttp’

ステップ 5: サーバーを起動する

「ステップ 3 :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
2 つめのコマンドを実行すると、Serfile サーバーの管理アカウントを聞いてきます。既存の e メール アドレスとパスワードを入力します。この e メール アドレスとパスワードを使ってサーバーにログインします。

これで完了です。

Chrome がお勧めですが、ブラウザーを使って、サイト URL かサーバーの IP アドレスを開きます。

www.seafile.com

10.20.11.11
seafile

Seafie サーバーのログイン ページが表示されます。先に作成したユーザー名とパスワードを入力します。これで、自分専用の Seafile サーバーにログインできました。Dropbox とはさようならです。

Seafile サーバーを使い始める

Seafile は異なるモデルを使います。Dropbox や ownCloud と異なり、すべてがライブラリです。つまり、ディレクトリと考えて下さい。このライブラリが、デスクトップ クライアントを使うことで、マシン間で同期します。

デフォルトの 'My Library' 内に、ディレクトリを作成したり、新しいライブラリを作成したりして、同期方法に柔軟性を確保できます。私は、標準の 'My Library' を削除して、'Images'、'Documents'、'eBooks'、'Music'、'Movies' などのライブラリを作成しました。Seafile に関する新しいこととして、ブラウザーを使ってこれらのライブラリを暗号化できるようになりました。

それでは、使用している OS に適したクライアントをダウンロードしましょう。クライアントを最初に実行するときに、ファイルを格納する場所を尋ねられます。

seafile

アカウントの詳細を入力します。同期したいライブラリについて右クリックします。

seafile file sync
seafile desktop

クライアントは、このファイルの格納場所の選択画面を表示します。これも、私がとても気に入っている Seafile の機能です。これでそれぞれのライブラリを違うパーティションに格納できるからです。

それでは、”Seafile Cloud サーバー” を使ってみてください。


Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!