ウェブサイト検索

openSUSE Leap 42.1 で Nginx を使用して Seafile をインストールする方法


このページでは

  1. ステップ 1 - ホスト名を構成する
  2. ステップ 2 - 依存関係をインストールする
  3. ステップ 3 - データベースを構成する
  4. ステップ 4 - Seafile のインストールと構成
  5. ステップ 5 - Nginx のインストールと構成
  6. ステップ 6 - seafile とテストを開始する
  7. 参照

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 つのデータベースが必要です。

  1. ccnet データベース
  2. シーファイル データベース
  3. シーハブ データベース

ステップ 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

関連記事: