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

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

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

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

前提条件
  • Ubuntu 18.04
  • root権限

何をしますか?

  1. SeafilePythonの依存関係をインストールする
  2. MySQLのインストールと構成
  3. Linuxシステム用のSeafileサーバーをダウンロード
  4. Seafileサーバーをインストールする
  5. NginxとLetsencryptをインストールする
  6. NginxをSeafileサーバーのリバースプロキシとして構成する
  7. Seafileサーバーの構成
  8. SeafileServerをサービスとして実行する
  9. UFWファイアウォールを設定する
  10. テスト
ステップ1-SeafilePython依存関係をインストールする

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

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

 sudo apt update 

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

 sudo apt install python -y 
sudo apt install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests -y

すべての依存関係がインストールされるのを待ちます。

ステップ2-MySQLのインストールと構成

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

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

 sudo apt install mysql-server mysql-client -y 

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

 systemctl start mysql 
systemctl enable mysql

MySQLサーバーはUbuntuシステムにインストールされています。

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

 mysql_secure_installation 

ここで、MySQLパスワードポリシーについて尋ねられます。0はLOW、1はMEDIUM、2はSTRONGです。 MEDIUMパスワードポリシーの番号「1」を入力し、Enterキーを押してから、安全なパスワードを入力します。

その他の場合は、以下に示すように「Y」と入力するだけです。

匿名ユーザーを削除しますか? ([はい]の場合はy | Yを押し、[いいえ]の場合は他のキーを押します):Yリモートログインを許可しませんか? ([はい]の場合はy | Yを押し、[いいえ]の場合は他のキーを押します):Yテストデータベースを削除してアクセスしますか? (はいの場合はy | Yを押し、いいえの場合は他のキーを押します):Y特権テーブルを今すぐリロードしますか? (はいの場合はy | Yを押し、いいえの場合はその他のキーを押します):Y 

MySQLルートパスワードの設定が完了しました。

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

MySQLクライアントコマンドを使用して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>

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

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

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

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

 useradd -m -s / bin / bash mohammad 

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

 su --mohammad 
wget https://download.seadrive.org/seafile-server_6.2.5_x86-64.tar.gz

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

 tar -xf seafile-server_6.2.5_x86-64.tar.gz 
mv seafile-server-6.2.5 / seafile-server /

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

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

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

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

 su --mohammad 
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サーバーを実行するためのテストを行います。

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

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

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

 ./ seafile.sh start 

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

 ./ seahub.sh start 

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

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

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

 netstat -plntu 

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

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

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

ステップ5-Letsencryptを使用してNginxをインストールして構成する

このガイドでは、seafileサーバーはHTTPSが有効になっているNginxWebサーバーで実行されます。このステップでは、Nginx WebサーバーとLetsencryptツールをインストールしてから、seafileサーバーのドメイン名のSSLletsencryptとDHPARAMキーを生成します。

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

 sudo apt install nginx -y 

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

 systemctl start nginx 
systemctl enable nginx

次に、SSLletsencrypt証明書を生成するためのletsencryptツールをインストールします。

 sudo apt install letsencrypt -y 

NginxWebサーバーとletsencryptツールがインストールされています。

次に、「/ etc / nginx」ディレクトリに移動し、letsencrypt用の新しい構成ファイル「certbot.conf」を作成します。

 cd /etc/nginx/ 
vim snippets / certbot.conf

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

 location/.well-known{エイリアス/var/www/html/.well-known;}

保存して終了します。

デフォルトの仮想ホストファイルを編集します。

vimサイト-利用可能/デフォルト

以下のインクルード行を「サーバー{...}」ブラケットに追加します。

 include snippets / certbot.conf; 

保存して終了します。

nginx構成をテストし、Webサーバーを再起動します。

 nginx -t 
systemctl restart nginx

これで、seafileサーバーのドメイン名用の新しいletsencryptSSL証明書を生成する準備が整いました。

以下に示すように、「certbot」コマンドを使用してSSL証明書ファイルを生成します。

 certbot certonly --rsa-key-size 4096 --webroot --agree-tos --no-eff-email --email [email protected] -w / var / www / html -d cloud.hakase-labs .io 

注:

  • 新しいSSL証明書を生成し、キーサイズを「4096」に指定します。

これで、「/ etc /letsencrypt/live」ディレクトリにあるすべてのSSL証明書ファイルを取得できます。

また、セキュリティを強化するために、OpenSSLコマンドを使用してサイズ4096のDiffie-Hellmanキーを生成します。

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

必要なすべての証明書が生成されました。

ステップ6-NginxをSeafileサーバーのリバースプロキシとして構成する

'/ etc / nginx'構成ディレクトリに移動し、vimを使用して新しい仮想ホストファイル'seafile'を作成します。

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

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

サーバー{リッスン80; server_name cloud.hakase-labs.io;書き直し^https:// $ http_host $ request_uri?永続; server_tokens off; }サーバー{リッスン443sslhttp2; server_name cloud.hakase-labs.io; ssl on; ssl_certificate /etc/letsencrypt/live/cloud.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cloud.hakase-labs.io/privkey.pem; ssl_session_timeout 5m; ssl_session_cache shared:SSL:5m; ssl_dhparam /etc/nginx/dhparam.pem; #SSLセキュリティssl_protocolsTLSv1TLSv1.1 TLSv1.2; ssl_ciphers'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SH 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_headerX-転送-$remote_addrの場合;場所/{proxy_passhttp://127.0.0.1:8000; proxy_set_header Host $ host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $ server_name; proxy_read_timeout 1200s; #OfficeOnlineServerを介したOfficeファイルの表示/編集に使用client_max_body_size0; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } location / seafhttp {rewrite ^ / seafhttp(。*)$ $ 1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; }場所/メディア{ルート/home/ mohammad / seafile-server-latest / seahub; }} 

保存して終了します。

seafile仮想ホストを有効にして、構成をテストします。

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

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

 systemctl restart nginx 

seafileサーバーのリバースプロキシとしてのNginx構成が完了しました。

ステップ7-Seafileサーバーを構成する

Nginx Webサーバードメイン名でseafileサーバーを実行するには、「ccnetサービス」、「seafileサーバー」、および「seahubサーバー」のデフォルトの「seafile」構成を編集する必要があります。

'mohammad'ユーザーとしてログインし、'conf/'ディレクトリに移動します。

 su --mohammad 
cd conf /

ccnetサービス構成ファイル'ccnet.conf'を編集します。

 vim ccnet.conf 

'SERVICE_URL'行で、次のように値をHTTPSを使用したドメイン名に変更します。

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

保存して終了します。

次に、seafileサーバー構成の「seafile.conf」ファイルを編集します。

 vim seafile.conf 

以下のように、値が「127.0.0.1」ローカルホストの「host」行を追加します。

 [fileserver] host =127.0.0.1port =8082 

保存して終了します。

最後に、「seahub_settings.py」ファイルを編集します。

 vim seahub_settings.py 

'FILE_SERVER_ROOT'行で、値をHTTPSを使用してドメイン名に変更します。

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

保存して終了します。

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

このチュートリアルでは、Ubuntu18.04システムでseafileサーバーをサービスとして実行します。 seafileとseahubの新しいサービススクリプトを作成します。

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

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

次のseafileサービススクリプトをそこに貼り付けます。

 [Unit] Description =SeafileAfter =network.target mysql.service [Service] Type =forkingExecStart =/ home / mohammad / seafile-server-latest / seafile.sh startExecStop =/ home / mohammad / seafile-server-latest / seafile.sh stopUser =mohammadGroup =mohammad [Install] WantedBy =multi-user.target 

保存して終了します。

次に、seahubサービスファイル「seahub.service」を作成します。

 vim seahub.service 

次のseahubサービススクリプトをそこに貼り付けます。

 [Unit] Description =SeafilehubAfter =network.target seafile.service [Service] Type =forkingExecStart =/ home / mohammad / seafile-server-latest / seahub.sh startExecStop =/ home / mohammad / seafile-server-latest /seahub.sh stopUser =mohammadGroup =mohammad [Install] WantedBy =multi-user.target 

保存して終了します。

注:

  • seafile.shおよびseahub.shスクリプトのパスを変更します。

次に、systemdシステムをリロードします。

systemctlデーモン-リロード

そして、seafileとseahubサービスを開始します。

 systemctl start seafile 
systemctl start seahub

これらのサービスがシステムの起動時に毎回起動できるようにします。

 systemctl enable seafile 
systemctl enable seahub

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

 systemctl status seafile 
systemctl status seahub

netstat -plntu

ステップ8-UFWファイアウォールを設定する

すべてのシステムでファイアウォールを常にオンにすることをお勧めします。 ubuntuシステムの場合、UFWファイアウォールをオンにして、SSH、HTTP、HTTPSポートを追加します。

'ssh'ポートを追加し、UFWファイアウォールを有効にします。

 ufw allow ssh 
ufw enable

「y」と入力してファイアウォールをオンにします。

次に、HTTPおよびHTTPSサービスを追加します。

 ufw allow http 
ufw allow https

ファイアウォールのリストルールを確認してください。

ufwステータス番号

また、リストにはSSH、HTTP、HTTPSの3つのサービスがあります。

ステップ9-テスト

Webブラウザーを開き、seafileサーバーのURLインストールを入力します。私のは:

http://cloud.hakase-labs.io/

そして、安全なHTTPS接続のログインページにリダイレクトされます。

管理者のメールアドレス「[emailprotected]」とパスワード「mypassword」を入力し、「ログイン」ボタンをクリックします。

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

追加-画像をアップロードし、seafileダッシュボードに表示します。

Ubuntu18.04でのNginxWebサーバーとLetsencryptを使用したseafileサーバーのインストールと構成が正常に完了しました。


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

  2. Ubuntu11.10にPHP5とMySQLを使用してNginxをインストールする方法

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

  1. Ubuntu18.04にNginxでWordPressをインストールする方法

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

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

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

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

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