GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にNginxを使用してSeafileをインストールする方法

Seafileは、独自のサーバーでホストされているDropbox、mega.co.nzなどの同様の機能を提供するプライベートクラウドソフトウェアです。 SeafileはPythonプログラミング言語に基づいており、オープンソースライセンスでリリースされているため、独自のプライベートクラウドを作成でき、より安全になります。

Seafileは、データを安全に保存するための暗号化をサポートしています。ストレージライブラリ内のファイルを暗号化するには、ライブラリを作成するときにパスワードを設定する必要があります。パスワードはSeafileクラウドに保存されません。そのため、サーバーの管理者でさえ、パスワードなしでは暗号化されたデータを表示できません。

このチュートリアルでは、NginxWebサーバーとデータベースサーバーとしてMariaDBを使用してCentOS7にSeafileをインストールします。

前提条件
  • CentOS7サーバー
  • root権限

ステップ1-Seafile用にCentOSを準備する

sshrootパスワードを使用してcentOSサーバーにログインします。

ssh [email protected]
TYPE YOUR PASSWORD

SELinux構成ファイルをvimで編集します。

vim /etc/sysconfig/selinux

値「enforcing」を「disabled」に置き換えます。

SELINUX=disabled

ファイルを保存してエディタを終了します。

サーバーを再起動して、SELinuxポリシーの変更を適用します。

reboot

サーバーが再起動するのを待ってから、rootユーザーとしてサーバーに再度ログインします。

以下のコマンドでselinuxを確認してください:

getenforce

'無効が表示されます '結果として。

ステップ2-Seafileの依存関係をインストールする

SeafileはPythonに基づいているため、最初にインストールのためにpythonをインストールする必要があります。 SeafileはSQLiteおよびMySQL/MariaDBデータベースをサポートしています。ここでは、SQLiteよりも優れたパフォーマンスを提供するため、SeafileのデータベースとしてMariaDBを使用します。 Nginxは、SeafileとSeahubのリバースプロキシとして使用されます。

このステップでは、MariaDBとNginxといういくつかのPythonパッケージをインストールします。まず、CentOSサーバーにEPELリポジトリをインストールします。

yum -y install epel-release

次に、Pythonパッケージ、MariaDBとNginxをインストールします。

yum -y install python-imaging MySQL-python python-simplejson python-setuptools mariadb mariadb-server nginx

すべてのパッケージがインストールされるまで待ちます。

ステップ3-MariaDBを構成する

ステップ2では、MariaDBサーバーを既にインストールしているので、サービスを開始してルートパスワードを構成するだけです。

MariaDBを起動し、以下のコマンドを使用してルートパスワードを構成します。

systemctl start mariadb
mysql_secure_installation

ルートパスワードを入力します。

Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

MariaDBのrootパスワードが設定され、mysqlシェルにログインできるようになりました。
注意:MariaDBコマンドラインシェルの名前はmysqlです。

seafile用に3つのデータベースを作成します:

  1. ccnet_db
  2. seafile_db
  3. seahub_db

そして、新しいユーザー' seacloudを作成します 'パスワード付き'yourpassword '。パスワードを安全なパスワードに置き換えてください!

mysqlクライアントを使用してmysqlシェルにログインします。

mysql -u root -p
TYPE YOUR PASSWORD

以下のmysqlクエリを実行して、seafileインストール用のデータベースとユーザーを作成します。

create database ccnet_db character set = 'utf8';
create database seafile_db character set = 'utf8';
create database seahub_db character set = 'utf8';

create user [email protected] identified by 'yourpassword';

grant all privileges on ccnet_db.* to [email protected] identified by 'yourpassword';
grant all privileges on seafile_db.* to [email protected] identified by 'yourpassword';
grant all privileges on seahub_db.* to [email protected] identified by 'yourpassword';
flush privileges;
exit

上記のコマンドのパスワードを自分のパスワードに置き換えてください。

ステップ4-Seafileをインストールする

このステップでは、Seafileをインストールします。 Seafileはnginxユーザーの下で実行されるため、seafileおよびseahubサービスのリバースプロキシとしてnginxを使用できます。

ディレクトリ'/var / www / seafile'のnginxユーザーの下にseafileをインストールし、そのディレクトリを作成してcdで入力します。

mkdir -p /var/www/seafile
cd /var/www/seafile

wgetコマンドを使用してSeafileをダウンロードし、ダウンロードしたアーカイブを抽出します。

wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.5_x86-64.tar.gz
tar -xzvf seafile-server_6.0.5_x86-64.tar.gz

ディレクトリの名前を「seafile-server」に変更し、そのディレクトリに切り替えます。

mv seafile-server-6.0.5 seafile-server
cd seafile-server/

'setup-seafile-mysql.sh'ファイルを実行してデータベースを構成します。

./setup-seafile-mysql.sh

Enterキーを押すと、以下の情報を求められます:

  • サーバー名-サーバーのホスト名を使用します'natsume '
  • サーバーのIPまたはドメイン-サーバーのIPアドレス、私の場合は' 192.168.1.115 '
  • デフォルトのデータディレクトリ-Enterキーを押すだけです
  • デフォルトポート-Enterキーを押します
  • データベース構成として、番号 2を選択します。

MySQL構成の場合:

  • deafult host--localhostを使用
  • デフォルトポート-3306
  • mysqlユーザー-'seacloud '
  • パスワードは'yourpassword '
  • ccnetデータベースは'ccnet_db '
  • seafileデータベースは'seafile_db '
  • seahubデータベースは'seahub_db '

Enterキーを押すと、スクリプトによってseafileのデータベーステーブルが作成されます。

これで、seafileおよびseahubサービスを開始できます。

./seafile.sh start
./seahub.sh start

seahub.shファイルを実行すると、管理者構成の入力を求められます。

管理者のメールアドレスとパスワードを入力すると、seahubサービスが実行されます。

Seafileがインストールされて実行されているので、ポート8000​​(私の場合は192.168.1.115:8000)のサーバーIPを使用してWebブラウザーからSeafileにアクセスできますが、リバースプロキシを使用するため、ここではアクセスしません。 seafileサーバーとsystemdサービスファイルを使用してseafileを実行します。

したがって、seafileとseahubサービスを今のところ停止する必要があります。

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

ステップ5-SeafileとSeahubサービスを構成する

seafileをnginxユーザーとして実行するため、seafileインストールディレクトリとseahub_cacheディレクトリの所有者をnginxユーザーに変更する必要があります:

cd /var/www/
chown -R nginx:nginx *
chown -R nginx:nginx /tmp/seahub_cache

次に、systemdディレクトリに移動し、vimを使用してseafile.serviceファイルを作成します。

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

以下にseafileサービス構成を貼り付けます:

[Unit]
Description=Seafile Server
Before=seahub.service
After=network.target mariadb.service

[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server/seafile.sh start
ExecStop=/var/www/seafile/seafile-server/seafile.sh stop
RemainAfterExit=yes
User=nginx
Group=nginx

[Install]
WantedBy=multi-user.target

保存して終了します。

次に、新しいseahub.serviceファイルを作成します。

vim seahub.service

そして、以下の構成を貼り付けます。

[Unit]
Description=Seafile Hub
After=network.target seafile.target mariadb.service

[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server/seahub.sh start-fastcgi
ExecStop=/var/www/seafile/seafile-server/seahub.sh stop
RemainAfterExit=yes
User=nginx
Group=nginx

[Install]
WantedBy=multi-user.target

保存して終了します。

systemdサービスをリロードし、systemctlを使用してseafileとseahubを起動します。

systemctl daemon-reload
systemctl start seafile
systemctl start seahub

エラーがないことを確認し、seafileおよびseahubサービスがポート8082および8000で実行されていることを確認します。

netstat -plntu

ステップ6-SSL証明書ファイルを生成する

このチュートリアルでは、SeafileをNginxプロキシ経由で実行し、Nginxはデータセキュリティのための安全な(HTTPS)接続を提供します。無料のSSL証明書ファイルまたは有料のSSL証明書を使用できますが、これは構成には関係ありません。この手順では、「/ etc / nginx/ssl」ディレクトリにOpenSSLを使用して自己署名SSL証明書ファイルを生成します。

sslディレクトリを作成します。

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

以下のコマンドを使用して、自己署名証明書ファイルとdhparamファイルを生成します。

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
openssl req -new -x509 -sha256 -days 365 -newkey rsa:2048 -nodes -keyout server.key -out server.crt

名前、州、電子メール、ドメイン名など、OpenSSLから要求された証明書の詳細に回答します。次に、ディレクトリと証明書ファイルのアクセス許可を変更します。

chmod -R 700 /etc/nginx/ssl
chmod 400 server.*
chmod 400 dhparam.pem

SSL証明書ファイルが生成されました。

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

このステップでは、ポート8000​​および8002のseafile-serverのリバースプロキシとしてNginxを構成します。

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

cd /etc/nginx/
vim conf.d/seafile.conf

以下に仮想ホスト構成を貼り付けます:

server {  
        listen        80;
        server_name   cloud.natsume.co;
        return 301  https://$host$request_uri;
}

server { 
    listen 443 ssl;
    server_name cloud.natsume.co;
    ssl on;
    ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate         /etc/nginx/ssl/server.crt;
    ssl_certificate_key    /etc/nginx/ssl/server.key;

    ssl_ciphers  'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
    ssl_dhparam   /etc/nginx/ssl/dhparam.pem;
    ssl_prefer_server_ciphers  on;

    location / {
        fastcgi_pass    127.0.0.1:8000;
        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO           $fastcgi_script_name;

        fastcgi_param   SERVER_PROTOCOL        $server_protocol;
        fastcgi_param   QUERY_STRING        $query_string;
        fastcgi_param   REQUEST_METHOD      $request_method;
        fastcgi_param   CONTENT_TYPE        $content_type;
        fastcgi_param   CONTENT_LENGTH      $content_length;
        fastcgi_param   SERVER_ADDR         $server_addr;
        fastcgi_param   SERVER_PORT         $server_port;
        fastcgi_param   SERVER_NAME         $server_name;
        fastcgi_param   REMOTE_ADDR         $remote_addr;

        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
        fastcgi_read_timeout 36000;
    }

    # Reverse Proxy for seahub
    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;
        send_timeout  36000s;
    }

    #CHANGE THIS PATH WITH YOUR OWN DIRECTORY
    location /media {
        root /var/www/seafile/seafile-server/seahub;
    }

}

保存して終了します。

ドメイン名として「cloud.natsume.co」を使用します。上記の設定で、独自のドメイン名に置き換えてください。

次に、Nginx構成をテストし、エラーがないことを確認します。

nginx -t

systemctlコマンドでNginxを起動します:

systemctl start nginx

netstatが提供するリストでポート80と443が使用可能であることを確認してください。

netstat -plntu

次に、seafile構成にドメイン名を追加する必要があります。 seafileディレクトリに移動し、構成ファイルを編集します。

cd /var/www/seafile/
vim conf/ccnet.conf

サービスのURLをドメイン名に変更します。

SERVICE_URL = https://cloud.natsume.co

保存して終了します。

seahub構成ファイルを編集します。

vim conf/seahub_settings.py

2行目に、以下の構成を追加します。

HTTP_SERVER_ROOT = 'https://cloud.natsume.co/seafhttp'

ここで、ドメイン名をドメインに置き換えます。保存して終了します。

seafileを再起動し、すべてのサービスを追加して起動時に開始します:

systemctl restart seafile
systemctl restart seahub

systemctl enable nginx
systemctl enable mariadb
systemctl enable seafile
systemctl enable seahub

ステップ8-FirewallDを設定する

手順7では、HTTPおよびHTTPSポートを使用するようにNginxを構成しました。次に、ファイアウォールでそのポートをfirewalldに追加して開く必要があります。

Firewalldを起動します。

systemctl start firewalld
systemctl enable firewalld

以下のfirewall-cmdコマンドを使用して、ファイアウォール構成にHTTPおよびHTTPSポートを追加します。

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
>

ファイアウォール構成を再ロードし、ポートリストを確認します。

firewall-cmd --reload
firewall-cmd --list-all

ステップ9-Seafileのテスト

ブラウザを開き、seafileドメイン名(私の場合はcloud.natsume.co)を入力すると、https接続にリダイレクトされます。

管理者の電子メールとパスワードを入力し、[ログイン]をクリックします。

Seafile管理ダッシュボード:

Seafileファイルビュー。

リバースプロキシおよびSSLとしてNginxを使用するSeafileがCentOS7サーバーに正常にインストールされました。

結論

今日の多種多様なクラウドアプリケーションを備えたSeafileは、この日に使用するのに適したプライベートクラウドソリューションです。ライブラリ/フォルダレベルの暗号化機能を使用すると、データをSeacloudサーバーに安全に保存できます。その上、Seafileは独自のサーバーで簡単に構成および実装できます。


Cent OS
  1. CentOS7にNginxをインストールする方法

  2. CentOS 7 /RHEL7にNginxを使用してphpMyAdminをインストールする方法

  3. CentOS7にSitemagicCMSをインストールする方法–Nginxを使用

  1. CentOS7にNginxを使用してWordPressをインストールする方法

  2. CentOS7にNginxを使用してphpMyAdminをインストールする方法

  3. CentOS8にNginxをインストールする方法

  1. CentOS7にRTMPモジュールを使用してNginxをインストールする方法

  2. CentOS8にNginxとPHP7.3でNextcloudをインストールする方法

  3. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法