ウェブサイト検索

RHEL/CentOS/SL 7.x/6.x での MySQL データベースを使用した Seafile (セキュア クラウド ストレージ) のインストール


Seafile は、Python で書かれた高度なオープンソースの共同クラウド ストレージ アプリケーションであり、ファイル共有と同期のサポート、チーム コラボレーション、クライアント側の暗号化を使用したプライバシー保護を備えています。すべての主要なプラットフォーム (Linux、Raspberry Pi、Windows、Mac、iPhone、Android) で実行されるクライアントと同期するマルチプラットフォーム ファイルとして構築されており、LDAP や WebDAV などのローカル サービスと簡単に統合したり、高度な機能を使用して展開したりできます。 MySQL、SQLite、PostgreSQL、Memcached、Nginx、Apache Web サーバーなどのネットワーク サービスとデータベース。

このチュートリアルでは、MySQL データベースをデプロイした RHEL/CentOS/Scientific Linux 7.x/6.x への Seafile Server のインストールと、init の起動を段階的に説明します。 > デフォルトの Seafile ポート (8000/TCP) およびデフォルトの HTTP トランザクション ポート (80/TCP) でサーバーを実行するためのスクリプト、必要なポートを開くために必要なファイアウォール ルールを作成します。

要件

  1. 静的 IP アドレスを使用した最小限の CentOS 6.5 のインストール。
  2. MySQL/MariaDB データベース
  3. Python 2.6.5+ または 2.7
  4. Python セットアップツール
  5. Python-simplejson
  6. Python イメージング
  7. Python-mysqldb

このインストール手順はCentOS 6.4 64 ビット システムでテストされていますが、init 起動スクリプトがディストリビューションごとに異なる仕様であれば、他の Linux ディストリビューションでも使用できます。 。

ステップ 1: Python モジュールをインストールする

1. まずシステムのアップデートを実行し、次に次のコマンドを使用して必要な Python モジュールをすべてインストールします。

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. Debian または Ubuntu サーバーを使用している場合は、次のコマンドを使用してすべての Python モジュールをインストールします。

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

ステップ 2: Seafile サーバーをインストールする

3. すべての Python モジュールがインストールされたら、Seafile サーバー構成とホーム ディレクトリ上のすべてのデータをホストするために使用される強力なパスワードを持つ新しいシステム ユーザーを作成し、新しく作成したユーザー アカウントに切り替えます。

adduser seafile
passwd seafile
su - seafile

4. 次に、MySQL データベースにログインし、Seafile サーバー コンポーネントごとに 1 つずつ、合計 3 つのデータベースを作成します: ccnet サーバーseafile サーバー、および seahub すべてのデータベースに対して 1 人のユーザーを使用します。

mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

5. 次に、Seafile サーバー をダウンロードしてインストールします。 Seafile 公式ダウンロード ページに移動し、wget コマンドを使用してサーバー アーキテクチャ用の最後の .Tar Linux アーカイブ リリースを取得し、それを以前に作成したホーム Seafile ユーザーに抽出して Seafile と入力します。抽出されたディレクトリ。

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. MySQL データベースを使用して Seafile サーバーをインストールするには、setup-seafile-mysql.sh 初期化スクリプトを実行し、スクリプトによって次の設定オプションを使用してすべての質問に答えます。 Python に必要なすべてのモジュール。

./setup-seafile-mysql.sh
  1. サーバーの名前は何ですか?=わかりやすい名前を選択してください (スペースは使用できません)。
  2. サーバーのIPまたはドメインは何ですか?=サーバーのIP アドレス または有効なドメイン名 を入力します。
  3. ccnetサーバーにどのポートを使用しますか?=[Enter] を押します – デフォルトのままにしておきます – 10001
  4. Seafile データをどこに置きますか?=[Enter] を押します – デフォルトの場所は $HOME/seafile-data ディレクトリになります。
  5. Seafile サーバーにどのポートを使用しますか?=[Enter] を押します – デフォルトのままにしておきます – 12001

  1. seafile httpserver にどのポートを使用しますか?=[Enter] を押します – デフォルトのままにしておきます – 8082
  2. Seafile データベースを初期化する方法を選択してください:=1 を選択し、デフォルトの MySQL 認証情報 (localhost、3306、root パスワード) を指定します。
  3. seafile の MySQL ユーザーの名前を入力します:=seafile (他のユーザー名を作成した場合は、そのユーザー名を入力します) と seafile MySQL ユーザーのパスワードを入力します。
  4. ccnet-server、seafile-server、seahub データベースでは、[Enter] キーを押すだけです (デフォルト)。

Seafile Server が正常にインストールされると、外部接続を許可するためにファイアウォールでどのポートを開く必要があるか、サーバーを起動するためにどのスクリプトを処理するかなど、いくつかの有用な情報が生成されます。

ステップ 3: ファイアウォールを開き、Seafile 初期スクリプトを作成する

7. テストのためにローカル スクリプトから Seafile サーバーを起動する前に、root アカウントに戻り、 にある iptables ファイアウォール ファイル設定を開きます。 /etc/sysconfig/ システム パスに移動し、最初の REJECT 行の前に次の行ルールを追加し、iptables を再起動して新しいルールを適用します。

su - root
nano /etc/sysconfig/iptables

以下のルールを追加します。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

次のコマンドを使用して iptables を再起動し、ルールを適用します。

service iptables restart

: インストール プロセスで Seafile の標準ポートを変更した場合は、それに応じてファイアウォールの iptables ルールを更新してください。

8. 次に、Seafile Server をテストします。 Seafile ユーザーと seafile-server ディレクトリに切り替え、seafile.sh スクリプトと seahub.sh スクリプトを使用してサーバーを起動します。

初めて seahub.sh スクリプトを開始するときは、特にこの構成を運用環境に展開する場合は、電子メール アドレスを使用して Seafile Server の管理者アカウントを作成し、管理者アカウントに強力なパスワードを選択します。

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. サーバーが正常に起動したら、ブラウザを開き、HTTP プロトコルを使用してポート 8000 でサーバーの IP アドレスまたはドメイン名に移動し、作成した管理者アカウントを使用してログインします。上記のステップで。

http://system_IP:8000

OR 

http://domain_name:8000

10. 最初の構成テストの後、Seafile サーバーを停止し、他の Linux システム デーモン プロセスと同様に、プロセス全体をより簡単に管理できるようにする init スクリプトを作成します。

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

この init スクリプトに次の内容を追加します。Seafile が他のシステム ユーザーにインストールされている場合は、su – $USER -c 行でユーザーとパスを適宜更新してください。

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. init ファイルが作成されたら、実行権限があることを確認し、開始停止 を使用してプロセスを管理します。 > と再起動スイッチ。 chkconfig コマンドを使用して、システム起動時に Seafile サービスを追加できるようになりました。

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. デフォルトでは、Seafile サーバーは Web トランザクションに 8000/TCP HTTP ポートを使用します。標準 HTTP ポートでブラウザから Seafile サーバーにアクセスする場合は、ポート 80 でサーバーを起動する次の init スクリプトを使用します (< 未満のポートでサービスを起動することに注意してください) b>1024 には root 権限が必要です)。

nano /etc/init.d/seafile

この init スクリプトに次のコンテンツを追加して、標準 HTTP ポートで Seafile を起動します。 Seafile が他のシステム ユーザーにインストールされている場合は、su – $USER -c および $HOME 行でユーザーとパスを適宜更新してください。

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. 以前にポート 8000 で Seafile を起動した場合は、すべてのプロセスが強制終了されていることを確認し、ポート 80 でサーバーを起動します。

chmod +x /etc/init.d/seafile
service seafile start | stop | restart

ブラウザを開いて次のアドレスにアクセスします。

http://system_ip 

OR

http://domain_name.tld

14. netstat コマンドを使用して、Seafile がどのポートで実行されているかを確認することもできます。

netstat -tlpn

それでおしまい! Seafile は、パブリックな DropboxOwncloudPydioOneDrive などの他のクラウド共同作業およびファイル同期プラットフォームを喜んで置き換えることができます。ユーザースペースの高度なセキュリティにより、チームワークを向上させ、ストレージを完全に制御できるように設計されています。

今後の記事では、Linux および Windows システムに Seafile クライアントをインストールする方法と、Seafile Server に接続する方法について説明します。それまでは Tecmint にご注目いただき、貴重なコメントをお寄せください。