Seafileは、Dropbox&Boxに似たオープンソースのクラウドベースのファイルストレージシステムです。違いは、Seafileをクライアント自身のシステムにデプロイできることです。これにより、パスワードはシステムをセットアップしたクライアントと、企業のクラウドホスティング会社ではなく自分のユーザーとの間でのみ交換されるため、安全性とセキュリティの要素が向上します。
ISPConfig用のSeafileサーバーのセットアップチュートリアルはいくつかありますが、ISPConfig開発者の推奨に従って、実際にそのままにしておく必要のあるファイルの編集の大部分を必要としなかったものはありません。このセットアップはUbuntu18.04LTSおよびISPConfig3用に作成されていますが、他のディストリビューションでも使用できます。このソリューションは私には有効ですが、保証は明示または暗示されていません。
読者がMySQLとApache(httpsも)を使用してSeafileをデプロイしたいと考えていることを前提としています。また、これはISPConfigチュートリアルではないため、機能的にISPConfigを使用できることも前提としています。
1セットアップWebサイト
ISPConfigホスティングコントロールパネルを開き、[サイト]タブをクリックして、新しいウェブサイトを作成します。 Auto-Subdomain、SSL、Let's Encrypt SSL、およびFast-CGIforPHPには必ずNoneを選択してください。技術的には既存のWebサイトを使用できますが、新しいWebサイトを作成すると、すべてのクラウドファイルを他のサイトから分離しておくことができるため、より効果的に機能します。これは、構成の変更にISPConfigパネルを使用する場合にも必要です。
Webサイトの構成パネルで、[オプション]タブをクリックし、[Apacheディレクティブ]セクションに以下を挿入します。
Alias /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media
RewriteEngine On
<Location /media>
Require all granted
</Location>
# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub # SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 ProxyPass / http://127.0.0.1:8000/ ProxyPassReverse / http://127.0.0.1:8000/
また、まもなく必要になるため、このサイトのシェルユーザーを作成する必要があります。
2データベースの作成
ISPConfigの[サイト]パネルで、[データベースユーザー]を選択し、[新しいユーザーを追加]を選択します。クライアントごとに、そのクライアントのseafileデータベースを管理する単一のユーザーを作成します。
データベースユーザーが作成されたら、[データベース]をクリックし、新しいデータベースを追加します。 ccnetdb、seafiledb、seahubdbの3つの個別のデータベースを追加する必要があります
3Seafileソフトウェアをダウンロードしてインストールします
インストールする必要のある必須パッケージがいくつかあります。ソフトウェアをインストールするのに十分な権限を持つユーザーを使用してサーバーにSSHで接続します。
apt-get install python2.7 python-setuptools python-simplejson python-pil python-mysqldb python-flup
すべてのサーバーをウェブディレクトリではなくプライベートディレクトリ内で実行したいので、そのように設定します。上で作成したユーザー名でサーバーにSSHで接続します。
cd private
mkdir seafile
cd seafile
wget https://download.seadrive.org/seafile-server_6.3.2_x86-64.tar.gz
or for 32bit
wget https://download.seadrive.org/seafile-server_6.2.5_i386.tar.gz
tar zxvf seafile-server_6.3.2_x86-64.tar.gz
mkdir installed
mv seafile-server_* installed
cd seafile-server-*
./setup-seafile-mysql.sh
この時点で、システムとインストールに関連するプロンプトの質問に答える必要があります。 「seafileデータベースを初期化する方法を選択してください」というタイトルのセクションが表示されたら、2を選択して、ISPConfigセットアップからデータベース情報を入力する必要があります。
4初期実行
seafileを起動し、初期設定が機能していることを確認します。
./seafile.sh start
./seahub.sh start
サービスを開始したら、Webブラウザを開き、ポート8000で上記で作成したWebサイトアドレスに移動します。
http://192.168.1.111:8000/
5Apacheセットアップ
次に、/ path / to / seafile-server / ccnet / ccnet.conf
のSERVICE_URLを変更します。SERVICE_URL = https://www.myseafile.com
また、/ path / to / seafile-server / seahub_settings.py
のFILE_SERVER_ROOTを変更する必要があります。FILE_SERVER_ROOT = 'https://www.myseafile.com/seafhttp'
Apacheを再起動します。
sudo service apache2 restart
Seafileサービスを再起動します。
./seafile.sh start
./seahub.sh start
6サービスを自動的に開始します
ここでの目標は、スタートアップサービスを作成するのではなく、すべてをISPConfigに含めることであるため、ユーザーのcronジョブにseafileスクリプトを追加します。当然、クライアントが完全なcronジョブを追加できることを確認する必要があります。
スタートアップファイルを作成します:
cd ~/private/seafile
touch startSeafile.sh
chmod +x startSeafile.sh
次のコードをstartSeafile.shスクリプトに貼り付けます。
#!/bin/bash
# Change the value of "seafile_dir" to your path of seafile installation
seafile_dir=/var/www/clients/client1/web2/private/seafile
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log
## Sleep command is necessary to prevent MYSQL errors if
## this script runs before MYSQL is fully operational
sleep 60 &
wait %1
case "$1" in
start)
${script_path}/seafile.sh start >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh start >> ${seahub_init_log} &
wait %1
;;
restart)
${script_path}/seafile.sh restart >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh restart >> ${seahub_init_log} &
wait %1
;;
stop)
${script_path}/seafile.sh $1 >> ${seafile_init_log} &
${script_path}/seahub.sh $1 >> ${seahub_init_log}
;;
*)
echo "Usage: /etc/init.d/seafile {start|stop|restart}"
exit 1
;;
esac
cronファイルが正しく書き込まれるようにするために、確認する必要のあることがいくつかあります。 [クライアント]->[クライアント]->[制限]をクリックします。 CronJobLimitsが実行間の遅延が0のFullCronに設定されていることを確認してください。その後は、単一のstartServer.shcronジョブをISPConfigの[実行するコマンド]セクションに追加するだけで済みます。
/var/www/clients/client1/web42/private/seafile/startSeafile.sh start
以上です!
- ISPConfig
- シーファイル