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メンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2018/01/10 2018年 1月 09日
  2. Today's Linux 2018/01/12 2018年 1月 11日
  3. Today's Linux 2018/01/15 2018年 1月 14日
  4. Today's Linux 2018/01/16 2018年 1月 15日
  5. Today's Linux 2018/01/17 2018年 1月 16日

Linux Foundationについて

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

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

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

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

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

乞うご期待!