Seafileは、DropboxやGoogle Driveのような機能を備えた無料のファイルホスティングソフトウェアで、独自のサーバーにインストールできます。 Seafileはオープンソースライセンスの下でリリースされています。独自の安全なファイル同期を構築し、seafileとサーバーを共有できます。これは、ユーザーがサーバー上のデータを暗号化できる信頼性の高いファイル共有ソフトウェアです。 SeafileはCとPythonで記述されています。
このチュートリアルでは、openSUSELeap42.1でseafileを使用して独自のファイル同期および共有サーバーを構築する方法を示します。 seafileのインストールをガイドし、nginxリバースプロキシサーバーの背後でhttps暗号化を使用してウェブGUIを構成します。
前提条件
- OpenSUSELeap42.1-64ビット
- root権限
- zypperコマンドを理解する
openSUSEサーバーにログインします:
ssh [email protected]
サーバーにログインした後、vimでhostsファイルを編集します:
vim /etc/hosts
構成を貼り付けます(IPとホスト名を独自の値に置き換えます):
192.168.1.101 cloud.kuonseafile.co cloud
保存して終了します。
注:
192.168.1.101=サーバーのIPアドレス。
クラウド=サーバーのホスト名。
kuonseafile.co=私のドメイン名。
ホスト名とFQDN(完全修飾ドメイン名)を確認します:
hostname
hostname -f
SeafileはPythonで記述されているため、インストールにはいくつかのPythonライブラリが必要です。データベースの場合、seafileはSQLiteとMySQLをサポートしています。このチュートリアルでは、SQLiteよりも優れたパフォーマンスを提供するMySQLデータベースを使用します。
以下のzypperコマンドを使用して、MySQL/MariaDBサーバーを含むすべてのパッケージをインストールします。
zypper in python python-imaging python-MySQL-python python-setuptools mariadb mariadb-clientのzypper
インストールが完了したら、次の手順に進みます。
seafileをデプロイするときに知っておくべきことが1つあります。 Seafileには3つのデータベースが必要です:
- ccnetデータベース
- seafileデータベース
- seahubデータベース
ステップ2で、MySQL / MariaDBサーバーが正常にインストールされました。次に、以下のコマンドでサーバーを起動します。
rcmysql start
mysqladminコマンドを使用してmysqlrootユーザーの新しいパスワードを設定します。
/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 protected]'を使用して新しいユーザーseafilecloudを作成します:
create user [email protected] identified by '[email protected]';
次に、seafilecloudユーザーにすべてのデータベースへのアクセスを許可します。
grant all privileges on ccnet_db.* to [email protected] identified by '[email protected]';
grant all privileges on seafile_db.* to [email protected] identified by '[email protected]';
grant all privileges on seahub_db.* to [email protected] identified by '[email protected]';
flush privileges;
すべてのデータベースでseafileをインストールする準備ができています。
このステップでは、seafileをインストールして構成します。 seafileをseafileユーザーとホームディレクトリの下にインストールするので、「seafile」という名前の新しいLinuxユーザーを作成する必要があります。
新しいユーザーを作成する
インストール用にseafileという名前の新しいユーザーを作成します:
useradd -m -s /bin/bash seafile
注:
-m=「/home/」の下にユーザーの新しいホームディレクトリを作成します。
-s/bin /bash=ユーザーのシェルを定義します。
Seafileをダウンロード
以下の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
Seafile5をインストールする
seafile-serverディレクトリに移動し、セットアップファイルを実行してseafileをインストールします。
cd seafile-server/
MySQLデータベースを使用してseafileをインストールするので、セットアップファイルMySQLを実行します:
./setup-seafile-mysql.sh
次に、サーバーの詳細を尋ねられます。
サーバー名 =サーバーのホスト名を使用します。
サーバーのIPまたはドメイン =サーバーのIPアドレスを使用します。
Seafile Data direcoty =Enterキーを押すだけです。
seafileファイルサーバーのポート =Enterキーを押すだけです。
次に、データベースを構成します。インストール用に独自のデータベースを作成したので、番号 "2"を選択します 。
ここで、データベースプロファイルについて尋ねられます:
mysqlのホスト =デフォルトはlocalhostです。
デフォルトのポート =3306。
seafileのMySQLユーザー =手順3で作成したユーザー「seafilecloud」を使用します。
MySQLパスワード =seafilecloudユーザーのパスワード。
ccnetデータベース =データベースを作成しました--ccnet_db。
seafileデータベース =seafile_db。
seahubデータベース =seahub_db。
エラーが発生しなかった場合は、「Enter」を押してインストールを確認できます。
スクリプトが構成とデータベースを生成するのを待ちます。
SeafileとSeahubを起動する
Seafileがインストールされたので、以下のコマンドで開始できます:
./seafile.sh start
./seahub.sh start
seafileの管理者ユーザーを作成するように求められます。管理者のメールアドレスとパスワードを入力するだけです。
この段階で、ポート8000でseafileWebGUIにアクセスできます。
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行目)に置き換えます。
メディアロケーションの47行目では、seafileインストールのパスに置き換えます-'/ home / seafile / seafile-server/seahub'。
ファイルを保存してエディターを終了し、次のコマンドを使用して構成をテストします。
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'
保存して終了します。
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サーバーへのファイルのアップロードを開始できます。