openSUSE Leap 42.1 で Nginx を使用して Seafile をインストールする方法
このページでは
- ステップ 1 - ホスト名を構成する
- ステップ 2 - 依存関係をインストールする
- ステップ 3 - データベースを構成する
- ステップ 4 - Seafile のインストールと構成
- ステップ 5 - Nginx のインストールと構成
- ステップ 6 - seafile とテストを開始する
- 参照
Seafile は、独自のサーバーにインストールできる Dropbox や Google Drive のような機能を備えた無料のファイル ホスティング ソフトウェアです。 Seafile は、オープンソース ライセンスの下でリリースされています。 seafile を使用して独自の安全なファイル同期および共有サーバーを構築できます。これは、ユーザーがサーバー上のデータを暗号化できる信頼性の高いファイル共有ソフトウェアです。 Seafile は C と python で書かれています。
このチュートリアルでは、openSUSE Leap 42.1 で seafile を使用して独自のファイル同期および共有サーバーを構築する方法を紹介します。 seafile のインストールをガイドし、nginx リバース プロキシ サーバーの背後で https 暗号化を使用して Web GUI を構成します。
前提条件
- OpenSUSE Leap 42.1 - 64 ビット
- ルート権限
- zypper コマンドを理解する
ステップ 1 - ホスト名を構成する
openSUSE サーバーにログインします。
ssh
サーバーにログインしたら、hosts ファイルを vim で編集します。
vim /etc/hosts
構成を貼り付けます (IP とホスト名を独自の値に置き換えます)。
192.168.1.101 cloud.kuonseafile.co cloud
保存して終了。
ノート:
192.168.1.101=サーバーの IP アドレス。
クラウド=サーバーのホスト名。
kuonseafile.co=私のドメイン名。
ホスト名と FQDN (完全修飾ドメイン名) を確認します。
hostname
hostname -f

ステップ 2 - 依存関係をインストールする
Seafile は Python で記述されているため、インストールにはいくつかの Python ライブラリが必要です。データベースについては、seafile は SQLite と MySQL をサポートしています。このチュートリアルでは、SQLite よりも優れたパフォーマンスを提供する MySQL データベースを使用します。
以下の zypper コマンドを使用して、MySQL/MariaDB サーバーを含むすべてのパッケージをインストールします。
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-client
インストールが完了したら、次のステップに進みます。
ステップ 3 - データベースの構成
seafile をデプロイするときに知っておくべきことが 1 つあります。 Seafile には 3 つのデータベースが必要です。
- ccnet データベース
- シーファイル データベース
- シーハブ データベース
ステップ 2 で、MySQL/MariaDB サーバーを正常にインストールしました。次のコマンドで起動します。
rcmysql start
mysqladmin コマンドを使用して、mysql root ユーザーの新しいパスワードを設定します。
/usr/bin/mysqladmin -u root password 'aqwe123'
次に、MySQL シェルにログインし、seafile 用に 3 つのデータベースを作成し、その 3 つのデータベース用に新しいユーザーを 1 人作成します。
MySQL シェルにログインします。
mysql -u root -p
タイプパスワード「aqwe123」
seafile インストール用に 3 つのデータベースを作成します - ccnet_db、seafile_db、seahub_db:
create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';
パスワード [email を使用して、新しいユーザー seafilecloud を作成します。
create user ';
seafilecloud ユーザーにすべてのデータベースへのアクセスを許可します。
grant all privileges on ccnet_db.* to ';
flush privileges;
すべてのデータベースで seafile をインストールする準備が整いました。

ステップ 4 - Seafile のインストールと構成
このステップでは、seafile をインストールして構成します。 seafile ユーザーとホーム ディレクトリの下に seafile をインストールするため、\seafile\ という名前の新しい Linux ユーザーを作成する必要があります。
新しいユーザーを作成する
インストール用に seafile という名前の新しいユーザーを作成します。
useradd -m -s /bin/bash seafile
ノート:
-m=\/home/\ の下にユーザーの新しいホーム ディレクトリを作成します。
-s /bin/bash=ユーザーのシェルを定義します。
シーファイルをダウンロード
以下の su コマンドで seafile ユーザーに切り替えます。
su - seafile
seafile ホーム ディレクトリにいるので、wget コマンドで seafile サーバー 5 をダウンロードします。
wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_5.1.3_x86-64.tar.gz
seafile アーカイブを抽出し、名前を変更します。
tar -xzvf seafile-server_5.1.3_x86-64.tar.gz
mv seafile-server-5.1.3/ seafile-server
Seafile 5 をインストールする
seafile-server ディレクトリに移動し、セットアップ ファイルを実行して seafile をインストールします。
cd seafile-server/
MySQL データベースとともに seafile をインストールするので、セットアップ ファイル MySQL を実行します。
./setup-seafile-mysql.sh
次に、サーバーの詳細を尋ねられます。
server name=サーバーのホスト名を使用します。
Server ip or Domain=サーバーの IP アドレスを使用します。
Seafile Data direcoty=
seafile ファイル サーバーのポート=Enter キーを押します。

次に、データベースを構成します。インストール用に独自のデータベースを作成したので、番号「2」を選択してください。
次に、データベース プロファイルについて尋ねられます。
mysql のホスト=デフォルトは localhost です。
デフォルト ポート=3306.
Seafile の MySQL ユーザー=ユーザー weve を使用しますステップ 3 で作成した - \seafilecloud\.
MySQL パスワード=seafilecloud ユーザーのパスワード。
ccnet データベース=データベースを作成しました - ccnet_db br> seafile データベース=seafile_db.
seahub データベース=seahub_db.

エラーが発生しなかった場合は、\Enter\ を押してインストールを確認できます。

スクリプトが構成とデータベースを生成するのを待ちます。

Seafile と Seahub を起動する
Seafile がインストールされました。次のコマンドで起動できます。
./seafile.sh start
./seahub.sh start
seafile の管理者ユーザーを作成するように求められます。管理者の電子メールとパスワードを入力するだけです。

この段階で、ポート 8000 で seafile Web GUI にアクセスできます。
ステップ 5 - Nginx のインストールと構成
Nginx は、メモリ使用量と CPU 消費量が少ない軽量の Web サーバーです。このステップでは、nginx をインストールしてから、リバース プロキシが seafile にアクセスするための新しい仮想ホストを作成します。サーバー上の接続に対して https を有効にします。
Nginxをインストールする
zypper コマンドを使用して、nginx ウェブサーバーをインストールします。
zypper in nginx
SSL 証明書を生成する
次に、nginx ディレクトリに移動し、SSL 証明書用の新しいディレクトリを作成します。次に、OpenSSL コマンドを使用して証明書ファイルを生成します。
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/
次に、証明書ファイルを生成します。
openssl genrsa -out privkey.pem 4096
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
仮想ホストの構成
nginx ディレクトリに、\vhosts.d\ という名前の新しいディレクトリを作成して、仮想ホスト ファイルを保存します。そのディレクトリを作成してから、vim で新しい仮想ホスト ファイルを作成します。
mkdir -p /etc/nginx/vhosts.d/
cd /etc/nginx/vhosts.d/
vim cloud.kuonseafile.conf
以下に仮想ホスト構成を貼り付けます。
server {
listen 80;
server_name cloud.kuonseafile.co; #Domain Name
rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem; # path to your cacert.pem
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # path to your privkey.pem
server_name cloud.kuonseafile.co; #Domain Name
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
server_tokens off;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
fastcgi_read_timeout 36000;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
location /media {
root /home/seafile/seafile-server/seahub;
}
}
server_name を独自のドメイン名に置き換えます - 3 行目と 11 行目。
ファイルを保存してエディターを終了し、次のコマンドで構成をテストします。
nginx -t
構成に問題やエラーがないことを確認してください。
独自のドメインと HTTPS を使用するように Seafile を構成する
ユーザー seafile に切り替えて、構成を編集します。構成を編集する前に、seafile および seahub サービスをオフにします。
su - seafile
cd seafile-server/
./seafile.sh stop
./seahub.sh stop
seafile ユーザーのホーム ディレクトリに戻り、conf ディレクトリに移動してファイル ccnet.conf と seahub_settings.py を編集します。
cd ~/
cd conf/
ccnet.conf ファイルを編集します。
vim ccnet.conf
5 行目: SERVICE_URL - 独自のドメイン名のドメインを https に置き換えます。
SERVICE_URL = https://cloud.kuonseafile.co/
保存して終了。
seahub_settings.py を編集します
vim seahub_settings.py
以下の新しい行を追加して、ファイル サーバーのルートを定義します。
FILE_SERVER_ROOT = 'https://cloud.kuonseafile.co/seafhttp'
保存して終了。
ステップ 6 - seafile とテストの開始
Nginx がインストールされている - MariaDB/MySQL がインストールされており、seafile サーバーがインストールされています。
Nginx と MySQL をブート時に開始するようにします。
systemctl enable nginx
systemctl enable mysql
サービスを再起動します。
systemctl restart nginx
systemctl restart mysql
次に、 seafile ユーザーから seafile と seahub を起動します。
su - seafile
cd seafile-server/
./seafile start
./seahub start-fastcgi
すべてのサービスが開始されます。
これで、サーバーの URL を使用して seafile サーバーにアクセスできます。私は:
cloud.kuonseafile.co
seafile の https 接続ログイン ページにリダイレクトされます。
ステップ 4 で作成した管理者ユーザーの詳細を入力します。

これで、seafile ファイル マネージャーが表示され、seafile サーバーへのファイルのアップロードを開始できます。

参照
- http://manual.seafile.com/deploy/https_with_nginx.html