ChatLuckのインストールとデータベース構築

ChatLuck (Linux+PostgreSQL) のインストールについての説明です。

Linux+PostgreSQL版のChatLuckをインストールします。

インストール前にご一読ください

ChatLuck Linux+PostgreSQL版をご利用いただく場合、PostgreSQLが正常に稼動している必要があります。PostgreSQLが稼動していない場合、事前にPostgreSQLのインストールを行っていただきますようお願いいたします。

データベースサーバー(PostgreSQL)のインストールと設定

 

1.パッケージの展開

1-1.ダウンロードしたファイルを展開します。

ここでは、ダウンロードしたファイルをFTPにて、"guest"ユーザーのホームディレクトリに転送しているという前提で説明します。

"guest"ユーザーのホームディレクトリの下にtmpディレクトリがない場合、作成します。

[guest@xxxxxx guest]$ mkdir tmp

次にrootユーザーにスイッチし、tmpディレクトリにChatLuckパッケージを展開します。

[guest@xxxxxx guest]$ su -
Password:

[root@xxxxxx guest]# cd tmp

[root@xxxxxx tmp]# tar zxvf /home/guest/chatluck_6.0.1.1_pg13_linux_x64.tar.gz

展開が完了すると、tmpディレクトリ下に「cgi-bin」、「htdocs」ディレクトリが作成されます。

1-2.展開された「cgi-bin」、「htdocs」ディレクトリのオーナーをApacheのサービス実行ユーザーに変更します。

[root@xxxxxx tmp]# chown -R apache:apache cgi-bin htdocs

1-3.展開されたディレクトリ内の実行ファイルディレクトリを、ApacheのCGIディレクトリに移動します。

[root@xxxxxx tmp]# mv cgi-bin/chatlk cgi-bin/chatlksa /var/www/cgi-bin/.

1-4.展開されたディレクトリ内の静的コンテンツ(イメージ、JSなど)ディレクトリを、Apacheのドキュメントルートディレクトリに移動します。

[root@xxxxxx tmp]# mv htdocs/chatres htdocs/chatsares /var/www/html/.


2.ChatLuckデータベースの作成

※本インストール手順に従ってPostgreSQL 13を構成している場合、パスワードは「postgres」です。

※PostgreSQLの稼働ポート番号が"5432"でない場合は、本項の代わりに以下をご覧ください。本インストール手順に従っている場合、PostgreSQLの稼働ポートは"5432"です。
 https://www.chatluck.com/download/doc/install/ja_JP/Linux/linuxpg_pgport_pg13.html

2-1.postgresユーザーで、PostgreSQLにChatLuck用のデータベースロールを作成します。

[root@xxxxxx tmp]# su - postgres
[postgres@xxxxxx ~]$ psql -d template1 -c "CREATE USER chatlk WITH PASSWORD 'chatlk' CREATEROLE"
Password:
CREATE ROLE
[postgres@xxxxxx ~]$

2-2.pg_restoreコマンドを使用し、ChatLuckデータベースを作成します。

[postgres@xxxxxx ~]$ pg_restore -C -Fc -d template1 /var/www/cgi-bin/chatlk/dump/chatlkdb.pgdmp
Password:
[postgres@xxxxxx ~]$

2-3.pg_restoreコマンドを使用し、ログ収集用データベースを作成します。

[postgres@xxxxxx ~]$ pg_restore -C -Fc -d template1 /var/www/cgi-bin/chatlk/dump/chatladdb.pgdmp
Password:
[postgres@xxxxxx ~]$

2-4.コマンドが正常に終了したら、exitコマンドにてrootユーザーに戻してください。

[postgres@xxxxxx ~]$ exit
[root@xxxxxx tmp]#

 

3.リアルタイムサーバーの設定

3-1.リアルタイムサーバーの自動起動の設定を行います。

自動起動用のコマンドを実行します。

[root@xxxxxx tmp]# /var/www/cgi-bin/chatlk/rserver/wsserver install

 

3-2.同時接続数が多い(1000以上の)場合、リアルタイムサーバーのサービスファイルを編集します。
同時接続数が少ない場合は、「3-3」に進んでください。

以下のコマンドを実行し、リアルタイムサーバーのサービス情報を確認します。

※以下のコマンドでサービスファイルの保存先を確認することができます。(赤字の箇所)
ご利用になるサーバーによってサービスファイルの保存先が異なる場合がございます。必要に応じて、適宜読み替えてください。

[root@xxxxxx tmp]# systemctl status chatluckws
● chatluckws.service - Real-time server used in some functions of ChatLuck
    Loaded: loaded (
/etc/systemd/system/chatluckws.service; enabled; vendor preset: disabled)
(略)

サービスファイルを開きます。

[root@xxxxxx tmp]# vi /etc/systemd/system/chatluckws.service

 

変更例)以下の1行を追加します。同時接続数以上の値を設定してください。

LimitNOFILE=8192

 

上記1行を以下の位置に追加してください。追加後は以下の内容になります。

[Unit]
Description=Real-time server used in some functions of ChatLuck
ConditionFileIsExecutable=/var/www/cgi-bin/chatlk/rserver/wsserver


[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/var/www/cgi-bin/chatlk/rserver/wsserver
LimitNOFILE=8192

User=chatluck




Restart=always

RestartSec=120
EnvironmentFile=-/etc/sysconfig/chatluckws

[Install]
WantedBy=multi-user.target

 

3-3.SSLの設定を行います。SSLを使用しない場合は不要です。
※Apacheでhttpsを使用する場合必須です。


[root@xxxxxx tmp]# vi /var/www/cgi-bin/chatlk/rserver/config/default.json

SSLに必要な証明書ファイルを指定します。
※証明書ファイルへのパスは適宜変更してください。(証明書はのちに作成するchatluckユーザーで参照ができるパスに配置してください)
※秘密鍵ファイルはパスフレーズが解除されているものをご利用ください。

変更例)以下の4行を追加します。

"ssl" : "on",
"sslkey" : "/etc/httpd/conf/ssl.key/privatekey.pem", ・・・ サーバーの秘密鍵
"sslcert" : "/etc/httpd/conf/ssl.crt/cert.pem",    ・・・サーバーの証明書
"sslca" : "/etc/httpd/conf/ssl.crt/inca.pem",     ・・・認証局の中間CA証明書

証明書ファイルの保存先に応じてパスを変更してください。ここではApacheのコンフィグディレクトリに存在するものとして記載しています。

上記4行は以下の位置に追加して下さい。追加後は以下の内容になります。

{
    "DB" : {
        "dbport"        :    5432,
        "dbs"           :    "localhost",
        "dbname"        :    "chatlkdb",
        "dbuser"        :    "chatlk",
        "dbpwd"         :    "chatlk",
        "logdbport"     :    5432
    },
    "node" : {
        "port"      : 3000,
        "ssl"       : "on",
        "sslkey"    : "/etc/httpd/conf/ssl.key/privatekey.pem",
        "sslcert"   : "/etc/httpd/conf/ssl.crt/cert.pem",
        "sslca"     : "/etc/httpd/conf/ssl.crt/inca.pem",
        "log"       : {
            "appenders": [
                {
                    "category" : "info",
                    "filename" : "log/rserver.log"
                },
                {
                    "category" : "error",
                    "filename" : "log/error.log"
                }
            ]
        }
    }
}

 

3-4.プロキシサーバーの設定を行います。プロキシサーバーを使用しないまたはスマートフォン/タブレットアプリを使用しない場合は不要です。


[root@xxxxxx tmp]# vi /var/www/cgi-bin/chatlk/rserver/config/default.json

プロキシサーバーの情報を指定してください。

変更例)以下の4行を追加します。

"proxy" : {
   "host": "localhost", ・・・ プロキシサーバーのホスト
   "port": 3128          ・・・ プロキシサーバーのポート
},

4行は以下の位置に追加して下さい。追加後は以下の内容になります。

{
    "DB" : {
        "dbport"        :    5432,
        "dbs"           :    "localhost",
        "dbname"        :    "chatlkdb",
        "dbuser"        :    "chatlk",
        "dbpwd"         :    "chatlk",
        "logdbport"     :    5432
    },
    "node" : {
        "port"      : 3000,
        "ssl"       : "on",
        "sslkey"    : "/etc/httpd/conf/ssl.key/privatekey.pem",
        "sslcert"   : "/etc/httpd/conf/ssl.crt/cert.pem",
        "sslca"     : "/etc/httpd/conf/ssl.crt/inca.pem",
        "proxy" : {
            "host": "localhost",
            "port": 3128
        },
        "log"       : {
            "appenders": [
                {
                    "category" : "info",
                    "filename" : "log/rserver.log"
                },
                {
                    "category" : "error",
                    "filename" : "log/error.log"
                }
            ]
        }
    }
}

3-5.プロキシサーバーの基本認証設定を行います。プロキシサーバーを使用しないまたはプロキシサーバーに基本認証の設定を行わない場合は不要です。

プロキシサーバーの基本認証情報を指定してください。

変更例)以下の4行を追加します。

"basicauth" : {
   "username": "xxxxxx", ・・・ 基本認証ユーザー名
   "password": "yyyyyy"  ・・・ 基本認証パスワード
},

4行は以下の位置に追加して下さい。追加後は以下の内容になります。

{
    "DB" : {
        "dbport"        :    5432,
        "dbs"           :    "localhost",
        "dbname"        :    "chatlkdb",
        "dbuser"        :    "chatlk",
        "dbpwd"         :    "chatlk"
        "logdbport"     :    5432
    },
    "node" : {
        "port"      : 3000,
        "ssl"       : "on",
        "sslkey"    : "/etc/httpd/conf/ssl.key/privatekey.pem",
        "sslcert"   : "/etc/httpd/conf/ssl.crt/cert.pem",
        "sslca"     : "/etc/httpd/conf/ssl.crt/inca.pem",
        "proxy" : {
            "host"      : "localhost",
            "port"      : 3128,
            "basicauth" : {
                "username": "xxxxxx",
                "password": "yyyyyy"
            }
        },
        "log"       : {
            "appenders": [
                {
                    "category" : "info",
                    "filename" : "log/rserver.log"
                },
                {
                    "category" : "error",
                    "filename" : "log/error.log"
                }
            ]
        }
    }
}

3-6.ChatGPT連携機能をご利用いただく場合の設定については以下のリンクよりご確認ください。

ChatGPT連携のリアルタイムサーバー設定手順

 

3-7.リアルタイムサーバー用ユーザー"chatluck"(以下、"chatluck"ユーザー)を作成します。

※必要に応じて、ユーザーパスワードを設定してください。

[root@xxxxxx tmp]# useradd chatluck

[root@xxxxxx tmp]# passwd chatluck

Password:


3-8.リアルタイムサーバー用のログディレクトリに書き込み権を追加します。

[root@xxxxxx tmp]# chmod 0777 /var/www/cgi-bin/chatlk/rserver/log

3-9.以下のコマンドで、リアルタイムサーバーを起動します。

"rserver.log"に"Start the server with the address "[::]:3000""のように表示されていれば起動に成功しています。

[root@xxxxxx tmp]# systemctl start chatluckws
[root@xxxxxx tmp]# cat /var/www/cgi-bin/chatlk/rserver/log/rserver.log
[2021-12-01T09:00:00.000+09:00] Start the server with the address "[::]:3000"

 

3-10.以下のコマンドで、リアルタイムサーバーのポートを解放します。
※コマンドは一例です。お客様のセキュリティポリシーにあった設定で、3000番ポートを解放してください。

RedHat Enterprise Linux/CentOS 6の場合

[root@xxxxxx tmp]# iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
[root@xxxxxx tmp]# service iptables save
[root@xxxxxx tmp]# service iptables restart


RedHat Enterprise Linux 7/8 またはCentOS 7/8の場合

[root@xxxxxx tmp]# firewall-cmd --add-port=3000/tcp --zone=public --permanent
success
[root@xxxxxx tmp]# firewall-cmd --reload
success

 

3-11.リアルタイムサーバーの定期的な再起動の設定を行います。
リアルタイムサーバーの再起動手順

 

4.不要ファイルの削除

4-1.パッケージの展開で作成された不要ファイルを削除します。

[root@xxxxxx tmp]# rm -rf cgi-bin htdocs

5.「zip」コマンドのインストール

5-1. 以下のコマンドを実行し、インストールします。

※RedHat Enterprise Linux 6/7/8、CensOS 7の場合

[root@xxxxxx ~]# yum install zip
読み込んだプラグイン:xxxxxxxx
 ・
 ・(中略)
 ・
インストール容量: xxx k
Is this ok [y/d/N]: y
Downloading packages:
 ・
 ・(中略)
 ・
完了しました!
[root@xxxxxx ~]# zip
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
 ・(後略)

※AlmaLinux 8/9の場合

[root@xxxxxx ~]# dnf install -y zip
メタデータの期限切れの最終確認: X day, XX:XX:XX 時間前の XXXX年XX月XX日 XX時XX分XX秒 に実施しました。
依存関係が解決しました。
 ・
 ・(中略)
 ・
完了しました!
[root@xxxxxx ~]# zip
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
 ・(後略)

zipコマンドが利用できれば、インストールは完了です。

 

 

以上で、パッケージの展開とデータベースの構築は完了です。

「ChatLuck(Linux+PostgreSQL)インストールガイド」に戻る

 

記載の製品名および商品名は、各社の商標、または登録商標です。