Seafileは、複数のプラットフォームからの同期(クロスプラットフォームシステム)、組み込みのファイル暗号化によるプライバシー保護、2要素認証(TFA)のサポート、バージョン管理などの高度な機能を備えたオープンソースのファイルホスティングおよびクラウドストレージシステムです。ファイルロック、オンライン編集、その他多数。 SeafileはCおよびPythonプログラミング言語で記述されており、Dropbox、mega.co.nzなどの同様の機能を提供します。
このチュートリアルでは、NginxWebサーバーとMySQLデータベースを使用してSeafileサーバーをインストールおよび構成する方法を段階的に説明します。 Ubuntu18.04システムで最新のMySQL5.8を使用して、HTTPSSSLLetsencryptを有効にしたNginxWebサーバーの下にseafileサーバーをインストールします。
- Ubuntu 18.04
- root権限
何をしますか?
- SeafilePythonの依存関係をインストールする
- MySQLのインストールと構成
- Linuxシステム用のSeafileサーバーをダウンロード
- Seafileサーバーをインストールする
- NginxとLetsencryptをインストールする
- NginxをSeafileサーバーのリバースプロキシとして構成する
- Seafileサーバーの構成
- SeafileServerをサービスとして実行する
- UFWファイアウォールを設定する
- テスト
システムに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
すべての依存関係がインストールされるのを待ちます。
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 -yNginxWebサーバーと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 nginxseafileサーバーのリバースプロキシとしての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サーバーのインストールと構成が正常に完了しました。
新規ユーザーとSSHキー認証を設定します。 Ubuntu18.04でAnsibleを使用する Ubuntu18.04にNginxとLetsencryptを使用してMagento2をインストールする方法Ubuntu