GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSにNginxを使用してSeafileをインストールする方法

Seafileは、複数のプラットフォームからの同期(クロスプラットフォームシステム)、組み込みのファイル暗号化によるプライバシー保護、2要素認証(TFA)のサポート、バージョン管理などの高度な機能を備えたオープンソースのファイルホスティングおよびクラウドストレージシステムです。ファイルロック、オンライン編集、その他多数。 SeafileはCおよびPythonプログラミング言語で記述されており、Dropbox、mega.co.nzなどの同様の機能を提供します。

このチュートリアルでは、NginxWebサーバーとMariaDBデータベースを使用してSeafileサーバーをインストールおよび構成する方法を段階的に説明します。 Ubuntu 20.04システムで最新のMariaDBを使用して、HTTPSSSLLetsencryptを有効にしたNginxWebサーバーの下にseafileサーバーをインストールします。

前提条件
  • Ubuntu 20.04
  • root権限

何をしますか?

  • SeafilePythonの依存関係をインストールする
  • MariaDBのインストールと構成
  • Linuxサーバー用のSeafileサーバーをダウンロード
  • MariaDBを使用してSeafileServerをインストールする
  • ドメイン名を使用してSeafileを構成する
  • SeafileをSystemdサービスとして実行する
  • SSLLetsencryptとDHPARAMを生成します
  • Nginxをリバースプロキシとしてインストールして構成する
  • ファイアウォールの設定
  • テスト
ステップ1-SeafilePython依存関係をインストールする

システムにseafileサーバーをインストールする前に実行する必要がある最初のステップは、その依存関係をインストールすることです。 SeafileはPythonベースのアプリケーションであり、サーバーで実行するにはpython3.xが必要です。

パッケージをインストールする前に、Ubuntuリポジトリを更新する必要があります。

 sudo apt update 

次に、以下のaptコマンドを使用して、seafileサーバーのインストールに必要なすべての依存関係を使用してpython3.xをインストールします。

 sudo apt install python3 libpython3.8 python3-setuptools python3-pil python3-ldap python3-urllib3 ffmpeg python3-pip python3-mysqldb python3-memcache python3-requests libmemcached-dev 

その後、以下のpipコマンドを使用して、PyPIリポジトリから追加のPythonパッケージをインストールします。

 pip3 install --timeout =3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap 

その結果、Seafileのすべてのパッケージ依存関係がインストールされました。

ステップ2-MariaDBをインストールして構成する

Seafileは、SQLiteとMariaDBデータベースサーバーのサポートを提供します。このガイドでは、インストールにMariaDBデータベースサーバーを使用します。最新のMariaDBバージョンを使用してseafileサーバーをデプロイします。

以下のaptコマンドを使用してMariaDBサーバーをインストールします。

 sudo apt install mariadb-server -y 

インストールが完了したら、MariaDBサービスを開始し、システムの起動時に毎回起動できるようにします。

 systemctl start mariadb 
systemctl enable mariadb

MariaDBサーバーがUbuntuシステムにインストールされている場合は、次のコマンドを使用して確認してください。

 systemctl status mariadb 

MariaDBサービスが稼働しています。

次に、「mysql_secure_installation」コマンドを使用してMariaDBルートパスワードを構成する必要があります。

 mysql_secure_installation 

次に、MariaDBの構成について尋ねられ、MariaDBの強力なルートパスワードを入力します。

 rootの現在のパスワードを入力します(noneの場合はEnter):Enterキーを押します
rootパスワードを設定しますか? [Y / n] Y
匿名ユーザーを削除しますか? [Y / n] Y
rootログインをリモートで禁止しますか? [Y / n] Y
テストデータベースを削除してアクセスしますか? [Y / n] Y
特権テーブルを今すぐリロードしますか? [Y / n] Y

次に、Seafileサーバー用の新しいデータベースを作成します。 seafileコンポーネントごとに3つのデータベースを作成し、新しいデータベースユーザーを作成します。 「seafile」という名前の新しいユーザーを作成し、「ccnet-db」、「seafile-db」、および「seahub-db」の3つのデータベースすべてに対するすべての権限を持ちます。

以下のコマンドを使用してMySQLシェルにログインします。

 mysql -u root -p 

次に、新しいデータベース「ccnet-db」、「seafile-db」、「seahub-db」を作成し、新しいユーザー「seafile」を作成します。次に、3つのデータベース権限すべてを「seafile」ユーザーに付与します。

以下のMySQLクエリを実行します。

データベースの作成`ccnet-db`文字セット='utf8';
データベースの作成`seafile-db`文字セット='utf8';
データベースの作成`seahub-db`文字セット=' utf8';

create user' seafile'@' localhost'identified by' [email protected]';

GRANT ALL PRIVILEGESON`ccnet-db`。*to` seafile` @ localhost;
`seafile-db`。*のすべての特権を`seafile`@localhostに付与;
`seahub-db`。*のすべての特権を`seafile`@localhost;<に付与/ pre>

MariaDBサーバーがインストールされ、rootパスワードが設定され、seafileインストール用のデータベースが作成されました。

ステップ3-Linuxサーバー用のSeafileサーバーをダウンロードする

このチュートリアルでは、seafileサーバーはsystemdシステム上でサービスとして実行され、root以外のユーザーの下で実行されます。

'ryujin'という名前の新しいユーザーを作成します。

 useradd -m -s / bin / bash ryujin 

次に、「ryujin」ユーザーにログインし、wgetを使用してseafileサーバーの最新バージョンをダウンロードします。

 su --ryujin 
wget -q https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz
>

'seafile-server.tar.gz'ファイルを抽出し、マスターディレクトリの名前を'seafile-server'に変更します。

 tar -xf seafile-server_7.1.3_x86-64.tar.gz 
mv seafile-server-* / seafile-server /

seafileサーバーのソースコードが「/home/ ryujin/seafile-server」ディレクトリにダウンロードされました。

ステップ4-MariaDBを使用してSeafileサーバーをインストールする

このステップでは、Seafileが提供するMariaDBセットアップスクリプトを使用してseafileサーバーをインストールします。

'ryujin'ユーザーとしてログインし、'seafile-server'ディレクトリに移動します。

 su --ryujin 
cd seafile-server /

次に、「setup-seafile-mysql.sh」スクリプトを実行します。

 ./ setup-seafile-mysql.sh 

インストールスクリプトは、Pythonモジュールのチェックを実行します。すべての依存関係がインストールされていることを確認してから、Enterキーを押します。

これで、Seafileの構成が始まります。

  • サーバー名:「hakase-cloud」などのseafileサーバー名を入力します。
  • サーバードメイン名:seafileサーバーのドメイン名「cloud.hakase-labs.io」を入力します。
  • seafileデータディレクトリ:構成をデフォルトのままにして、Enterキーを押します。
  • seafileファイルサーバーポート:デフォルトのポート「8082」のままにします。

次に、データベース構成について説明します。スクリプトにデータベースを作成させるか、既存のデータベースを使用するかの2つのオプションを求められます。

オプション「2」を選択して、既存のデータベース設定を使用します。

  • データベースホスト:デフォルトのローカルホスト
  • データベースポート:mysqlの通常のポート「3306」のデフォルト
  • データベースユーザーは「seafile」で、パスワードは「[メール保護]」です。
  • ccnetデータベース:'ccnet-db'
  • seafileデータベース:'seafile-db'
  • seahubデータベース:'seahub-db'

ここでもう一度Enterキーを押して、seafileサーバーの構成を確認します。

インストールが完了すると、次のような結果が得られます。

seafileサーバーのインストールと構成が正常に完了しました。また、seafileファイルサーバーはポート「8082」で実行され、seahubサービスはポート「8000」で実行されます。

次に、startスクリプトを使用してseafileサーバーとseahubサーバーを実行するためのテストを行います。

'ryujin'ユーザーとして、'〜/seafile-server-latest'ディレクトリに移動します。

 su --ryujin 
cd〜/ seafile-server-latest /

次に、以下のコマンドを実行して、seafileサーバーを起動します。

 ./ seafile.sh start 

次に、seahubサーバーを実行します。

 ./ seahub.sh start 

'seahub.sh'開始スクリプトを初めて実行するときに、seafileサーバーの管理者ユーザーとパスワードを作成するように求められます。

管理者のメールアドレスとパスワードを入力し、Enterキーを押します。

そして、adminユーザーとパスワードが作成されました。netstatコマンドを使用して、seafileとseahubのサービスポート「8082」と「8080」を確認してください。

 ss -plnt4 

そして、seafileサーバーとseahubサーバーがUbuntu20.04システムで稼働していることがわかります。

次に、seafileとseahubサーバーを停止します。

 ./ seafile.sh stop 
./seahub.sh stop

ステップ5-ドメイン名でSeafileを構成する

このチュートリアルでは、ドメイン名「seafile.hakase-labs.io」でSeafileを実行します。そのためには、Seafile構成の一部を編集する必要があります。

ユーザー「ryujin」にログインし、「conf」ディレクトリに移動します。

 su --ryujin 
cd conf /

vimエディターを使用して構成「ccnet.conf」を編集します。

 vim ccnet.conf 

[SERVICE_URL]オプションで、値をドメイン名に変更し、デフォルトのHTTPプロトコルをHTTPSセキュアプロトコルに変更してください。

 SERVICE_URL =https://seafile.hakase-labs.io 

保存して閉じます。

次に、構成'seafile.conf'を編集します。

 vim seafile.conf 

'[fileserver]'セクションで、seafileサービスの'host'IPアドレスを指定します。 seafileサービスは、以下のようにローカルアドレスで実行されます。

 [fileserver] 
host =127.0.0.1
port =8082

保存して閉じます。

次に、vimエディターを使用して「seahub_settings.py」を編集します。

 vim seahub_settings.py 

以下のように「FILE_SERVER_ROOT」オプションを行の最後に追加します。

 FILE_SERVER_ROOT ='https://seafile.hakase-labs.io/seafhttp' 

保存して閉じます。

Seafileの構成が完了し、ドメイン名「seafile.hakase-labs.io」で実行されます。

ステップ6-SeafileをSystemdサービスとして実行する

ドメイン名を使用してSeafileを構成した後、seafileとseahubをsystemdサービスとして設定します。

'/ etc / systemd / system'ディレクトリに移動し、'seafile.service'という名前のseafile用の新しいサービスファイルを作成します。

 cd / etc / systemd / system / 
vim seafile.service

次の構成を貼り付けます。

 [Unit] 
Description =Seafile
After =network.target mysql.service nginx.service

[Service]
Type =forking
ExecStart =/ home / ryujin / seafile-server-latest / seafile.sh start
ExecStop =/ home / ryujin / seafile-server-latest / seafile.sh stop
User =ryujin
Group =ryujin

[インストール]
WantedBy =multi-user.target

保存して閉じます。

次に、「seahub.service」という名前のseahubサービスファイルを作成します。

 vim seahub.service 

次の構成を貼り付けます。

 [Unit] 
Description =Seafilehub
After =network.target seafile.service

[Service]
Type =forking
ExecStart =/home/ryujin/seafile-server-latest/seahub.sh start
ExecStop =/ home / ryujin / seafile-server-latest / seahub.sh stop
User =ryujin
Group =ryujin

[インストール]
WantedBy =multi-user.target

保存して閉じます。

そして、seafileとseahubサービスファイルが作成されました。

次に、systemdマネージャーをリロードし、エラーがないことを確認します。

systemctlデーモン-リロード

次に、seafileサービスを開始し、システムブートに追加します。

 systemctl start seafile 
systemctl enable seafile

その後、seahubサービスを開始して有効にします。

 systemctl start seahub 
systemctl enable seahub

seafileおよびseahubサービスが稼働しています。次のコマンドを使用して、確認してください。

 systemctl status seafile seahub 

以下は、得られる結果です。

その結果、systemdサービスとしてのSeafileとSeahubの構成が完了しました。

ステップ7-SSLLetsencryptとDHPARAMを生成する

このステップでは、SSLLetsencryptおよびDHPARAM証明書を生成します。 certbotツールを使用してSSLLetsencryptを生成し、opensslコマンドを使用してdhparam証明書を生成します。

SSL Letsencryptを生成するには、実際のドメイン名を取得し、サーバーのIPアドレスを指していることを確認してください。

以下のaptコマンドを使用して、certbotツールをUbuntuシステムにインストールします。

 sudo apt install certbot 

その後、以下のcertbotコマンドを使用して、seafileドメイン名「seafile.hakase-labs.io」のSSLLetsencryptを生成します。

 certbot certonly --agree-tos --no-eff-email --email [email protected] -d seafile.hakase-labs.io 

すべてのプロセスが完了すると、証明書は「/etc/letsencrypt/live/seafile.hakase-labs.io」ディレクトリで利用できるようになります。

次に、以下のようにopensslコマンドを使用してDHPARAM証明書を生成します。

 openssl dhparam -out /etc/nginx/dhparam.pem 2048 

DHAPRAM証明書が生成され、「/ etc / nginx/dhparam.pem」で利用できるようになります。

その結果、Seafileドメイン名とDHPARAM証明書のSSLLetsencryptが生成されました。

ステップ8-Nginxをリバースプロキシとしてインストールして構成する

このステップでは、SeafileサービスのリバースプロキシとしてNginxをインストールして構成します。 Nginx Webサーバーは、SSLLetsencryptとDHPARAM証明書が上に生成された安全なHTTPSプロトコルで実行されます。

以下のaptコマンドを使用してNginxをUbuntu20.04サーバーにインストールします。

 sudo apt install nginx -y 

すべてのインストールが完了したら、Nginxサービスを開始し、システムブートに追加します。

 systemctl start nginx 
systemctl enable nginx

そして、NginxサービスはUbuntuシステムで稼働しています。

次に、「/ etc / nginx / sites-available」ディレクトリに移動し、vimエディターを使用して新しい仮想ホスト構成「seafile」を作成します。

 cd / etc / nginx / sites-available / 
vim seafile

次の構成を貼り付けます。

 server {
listen 80;
server_name seafile.hakase-labs.io;
rewrite ^ https:// $ http_host $ request_uri?永続的;
server_tokens off;
}
server {
listen 443 ssl http2;
server_name seafile.hakase-labs.io;
ssl_certificate_key /etc/letsencrypt/live/seafile.hakase-labs.io/privkey.pem;
_ time;
ssl_session_cache shared:SSL:5m;

ssl_dhparam /etc/nginx/dhparam.pem;

TLS _ v 1.1 s l s TLSv1.2;
ssl_ciphers'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
server_tokens off;
ssl_session_tickets off;

proxy_set_header X-Forwarded-For $ remote_addr;

location / {
proxy_pass http://127.0.0.1:; proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded X-Forwarded-proxy X-forwarded-for $ proxy_add_x_forwarded_for;
For $ proxy_add_x_forwarded_for;
For $ proxy_add_x_forwarded_for;
;

#OfficeOnlineServerを介してOfficeファイルを表示/編集するために使用されます
client_max_body_size0;

access_log/var/log/nginx/seahub。
error_log /var/log/nginx/seahub.error.log;
}

場所/seafdav{
http://。 seafdav;
proxy_set_header Host $ host;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_he ader X-Forwarded-For $ proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $ server_name;
proxy_set_header X-Forwarded-Proto $ schema;
proxy_set_header X-Forwarded-Proto $ schema;

access_log /var/log/nginx/seafdav.access.log;
error_log /var/log/nginx/seafdav.error.log;
/> location / seafhttp {
rewrite ^ / seafhttp(。*)$ $ 1 break;
proxy_pass http://127.0.0.1:8082;
proxy
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
場所/メディア{
root / home / ryujin / seafile-server-latest / seahub;
}
}

保存して閉じます。

次に、seafileの仮想ホスト構成をアクティブ化し、Nginx構成をテストします。

 ln -s / etc / nginx / sites-available / seafile / etc / nginx / sites-enabled / 
nginx -t

エラーがないことを確認してから、Nginxサービスを再起動します。

 systemctl restart nginx 

その結果、SeafileのリバースプロキシとしてのNginxのインストールと構成が正常に完了しました。

ステップ9-ファイアウォールのセットアップ

このチュートリアルでは、UFWファイアウォールを有効にしてSeafileを実行します。そして、SSH、HTTP、HTTPSサービスをUFWファイアウォール構成に追加する必要があります。

次のコマンドを使用して、SSH、HTTP、およびHTTPSサービスをUFWファイアウォールに追加します。

 for svc in ssh http https 
do
ufw allow $ svc
done

次に、UFWファイアウォールをアクティブにして、構成のステータスを確認します。

 ufw enable 
ufwステータス番号

そして、以下のような結果が得られます。

UFWファイアウォールが有効になっており、SSH、HTTP、HTTPSサービスが追加されています。

これで、Seafileを使用する準備が整いました。

ステップ10-テスト

Webブラウザーを開き、アドレスバーにSeafileインストールドメイン名を入力します。

https://seafile.hakase-labs.io/

これで、安全なHTTPS接続にリダイレクトされ、次のようなSeafileログインページが表示されます。

上に作成したseafileユーザーパスワードを入力し、[ログイン]ボタンをクリックします。

これで、Seafileダッシュボードが次のように表示されます。

以下は、新しいフォルダを作成し、そのファイルをSeafileサーバーにアップロードした後の結果です。

その結果、Ubuntu20.04でのNginxWebサーバーとMariaDBデータベースを使用したSeafileのインストールと構成が正常に完了しました。


Ubuntu
  1. Ubuntu20.04LTSにMariaDBをインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu20.04LTSでNginxを使用してModsecurityをデプロイする方法

  1. Ubuntu18.04LTSにNginxを使用してSeafileをインストールする方法

  2. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  3. Ubuntu15.10にNginxでMailpileをインストールする方法

  1. Ubuntu15.10でNginxを使用してRedmine3をインストールする方法

  2. Ubuntu 16.04 LTSにNginx、MariaDB、HHVMを使用してWordpressをインストールする方法

  3. Ubuntu18.04LTSにNginxを使用してGitBucketをインストールする方法