アクア:パル

TeamSpeak2 > TeamSpeak2 RC2 Server のインストール

インストール
TeamSpeak2 RC2 Serverは、個人であれば無料でダウンロード・利用できます。
公式サイトで配布されている最新版「2.0.20.1」をインストールしてみましょう。

TeamSpeak2 RC2 Serverを実行するユーザがrootの場合、セキュリティの警告が発せられるため、今回はサーバ起動用のユーザを作成してログインします。
なお、警告が気にならないのであればrootで起動しても(セキュリティ上好ましくありませんが)問題ありません。やめておいたほうがよさそうです。

[root@home root]# useradd -s /bin/bash teamspeak
[root@home root]# passwd teamspeak
Changing password for user teamspeak.
New password:password
Retype new password:password
passwd: all authentication tokens updated successfully.

今回、インストール(設置)先は(sudoの有効ディレクトリの関係もあり)、「/usr/local/bin/」としました。

サーバファイルは公式サイトから取得できます。
Firefoxなどのブラウザでダウンロードする場合は、上記のftp取得コマンドは不要です。「/usr/local/bin/」に「ts2_server_rc2_20201.tar.bz2」をコピーしてください。

[root@home root]# cd /usr/local/bin/
[root@home bin]# wget ftp://ftp.freenet.de/pub/4players/teamspeak.org/releases/ts2_server_rc2_20201.tar.bz2

取得した圧縮ファイルを解凍します。

[root@home bin]# tar jxvf ./ts2_server_rc2_20201.tar.bz2

ディレクトリ「/usr/local/bin/」が作成されれば、現在rootとなっているファイルの所有者を先程作成したteamspeakユーザに変更します。
また、起動スクリプトに実行権限を与えておきます。

[root@home bin]# chown teamspeak ./tss2_rc2
[root@home bin]# chmod ug+rwx ./tss2_rc2/teamspeak2-server_startscript

次に、rootでログインしている状態でもteamspeakユーザでサーバを起動できるよう、sudo(Windowsでいう、他のユーザで実行の機能)を構成します。

[root@home bin]# visudo

viでsudoの設定ファイルが開きます。その中に以下のような「root」に関する項目がありますので、ここを書き換えます。
※設定内容は完全に一致しない場合がありますが、左端が「root」となっていれば大丈夫です。

root ALL=NOPASSWD: ALL

上記の行にカーソルを合わせ、"A"キーを押し、編集モードに移行し、下記のように書き換え、"ESC"キーを押して":wq"と入力して"Enter"キーを押します。

root ALL=(ALL) ALL
起動と終了
TeamSpeak2 RC2 Serverを起動するには、サーバファイルに同梱のスクリプトを使用します。

[root@home bin]# cd /usr/local/bin/tss2_rc2/
[root@home tss2_rc2]# sudo -u teamspeak ./teamspeak2-server_startscript start

終了する場合は引数に「stop」を指定しましょう。

[root@home tss2_rc2]# sudo -u teamspeak ./teamspeak2-server_startscript stop
ウェブからの設定
TeamSpeak2 RC2 Serverの設定は、全てウェブから行います。
ブラウザから「http://localhost:14534/slogin.html」を開いてください。
別のコンピュータから開く場合は「localhost」の部分をIPアドレスに変更します。

ウェブ管理画面のログイン

上のログイン画面が出れば問題ありませんが、接続できない場合はLinux FirewallなどでTCPポート「14534」がブロックされていないか確認してください。

初期設定のusername、passwordは「/usr/local/bin/tss2_rc2/server.log」に以下のような形で記録されています。
ログインするには「superadmin」の権限が必要ですので、下記例ではusernameは「superadmin」、passwordは「ut6kii」となります。

22-03-07 23:51:02,WARNING,Info,SERVER, admin account info: username: admin password: ctn55h
22-03-07 23:51:02,WARNING,Info,SERVER, superadmin account info: username: superadmin password: ut6kii

ログインしたら、最低限「superadmin」(管理画面にアクセスできるユーザ)のパスワードを変更しておきましょう。

左の一覧から「SuperAdmin manager」を選択 「superadmin」の「Edit」をクリック 「PassWord」にパスワードを記入して「Save」

「superadmin」で設定したパスワードが先程のウェブ管理画面のログインで使用するパスワードになります。

サーバーのグローバル設定(全ての内部サーバで使用する共通の設定)を変更するには、左の一覧から「Global settings」を開きます。

左の一覧から「Global settings」を選択 設定を入力して「Save」

最低限、以下の項目を記入/選択しておきましょう。他の項目は特に変更する必要はありません。

AdminEMAIL」 ・・・ サーバ管理者のEMailアドレス
ISPName」 ・・・ サーバ名
Country」 ・・・ "Japan"を選択

次に、内部サーバの設定を行います。TeamSpeak2 RC2 Serverは1つのサーバ内に複数のサーバを作成できるため、設定先内部サーバを選択してから設定を行います。

左の一覧から「Servers」を選択 「ID:1」の「Select」をクリック 右の一覧に各種設定項目が現れる

内部サーバの設定を変更するには、左の一覧から「Server settings」を開きます。

左の一覧から「Global settings」を選択 設定を入力して「Save」

最低限、以下の項目を記入/選択しておきましょう。

ServerName」 ・・・ サーバ接続時に表示されるサーバ名
ServerWelcomeMessage」 ・・・ サーバ接続時に表示されるメッセージ
ServerPassword」 ・・・ サーバー接続時にパスワードを要求する場合は入力(接続者を知り合いのみに制限したい場合など)
ServerMaxUsers」 ・・・ 最大接続人数
Allowed Codecs」 ・・・ "Codec SPEEX24600"以外は実用に耐えうるものではない(音質が悪すぎる)ため、それ以外は外しておくのも良いですが、基本的に全てオンにしておきましょう。
ServerType」 ・・・ 不特定多数に公開しているサーバの場合は"Public Server"を、知り合いのみのサーバの場合は"Clan Server"を選択しましょう。この設定はあくまで表示上のものです。
自動起動の設定
Linux起動時にTeamSpeak2 RC2 Serverを自動起動するように設定すれば、再起動時などに毎回起動コマンドを入力する必要がなくなり便利です。

rootでrc.dのrc.local設定ファイルを編集します。GUIが使用可能な場合はファイルブラウザからテキストエディタを使用したほうが遥かに楽です。
viでの編集方法はvisudoの場合と同じです。

[root@home root]# vi /etc/rc.d/rc.local

ファイル終端付近「touch /var/lock/subsys/local」の上に、3行追加します。



+
+
+
#### Vine stuff ends here

cd /usr/local/bin/tss2_rc2/
sudo -u teamspeak ./teamspeak2-server_startscript start
cd /etc/rc.d/


touch /var/lock/subsys/local

これだけで自動で起動するようになりますが、障害時などサーバが正しく終了されなかった場合、プロセスが存在すると誤認して正しく自動起動しない場合があります。
これは起動スクリプト側の問題なので、修正しておいたほうが良いでしょう。

[root@home root]# vi /usr/local/bin/teamspeak2-server_startscript

                if [ -e tsserver2.pid ]; then
                        echo "tsserver2.pid already exists...server already started ?";
                        echo "If you are sure the server is not running, delete tsserver2.pid"
                        exit 1
                else
                        if [ "$UID" = "0" ]; then
                                echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
                                for c in $(seq 1 10); do
                                        echo -n "!"
                                        sleep 1
                                done
                                echo !
                        fi
                        echo "starting the teamspeak2 server"
                        if [ -e server_linux ]; then
                                if [ ! -x server_linux ]; then
                                        echo "server_linux is not executable, trying to set it"
                                        chmod u+x server_linux
                                fi
                                if [ -x server_linux ]; then
                                        ./server_linux -PID=tsserver2.pid
                                else
                                        echo "server_linux is not executable, fix this"
                                        exit 4
                                fi
                        else
                                echo "Couldnt find server_linux"
                                exit 5
                        fi
                fi

上記の9行目から38行目までを以下のように変更してください。

                if [ -e tsserver2.pid ]; then
                        echo -n "stopping the teamspeak2 server"
                        if ( kill -TERM `cat tsserver2.pid` ); then
                                for c in $(seq 1 300); do
                                        if [ -e tsserver2.pid ]; then
                                                echo -n "."
                                                sleep 1
                                        fi
                                done
                        fi
                fi
                if [ "$UID" = "0" ]; then
                        echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
                        for c in $(seq 1 10); do
                                echo -n "!"
                                sleep 1
                        done
                        echo !
                fi
                echo "starting the teamspeak2 server"
                if [ -e server_linux ]; then
                        if [ ! -x server_linux ]; then
                                echo "server_linux is not executable, trying to set it"
                                chmod u+x server_linux
                        fi
                        if [ -x server_linux ]; then
                                ./server_linux -PID=tsserver2.pid
                        else
                                echo "server_linux is not executable, fix this"
                                exit 4
                        fi
                else
                        echo "Couldnt find server_linux"
                        exit 5
                fi

これでプロセスが残っていても自動で削除して起動できるようになります。
設定ストレージにMySQL 5を使う
TeamSpeak2 RC2 Serverは全ての設定を保存するストレージにSQLiteを使用していますが、これをMySQLに変更することができます。
PHPから独自の設定パネルなどを作りたい場合はMySQLに変更しておきましょう。ただし、それ以外メリット(速度面など)は大してありません。

まずMySQL側にデータベースとユーザを作成します。phpMyAdminやAdminが使用できる場合はそちらから作成したほうが楽です。
password」部分にはMySQLのrootユーザのパスワードを入力してください。
tsuser」部分は新規作成するTeamSpeak用MySQLユーザの名前です。好きなものに変更しても大丈夫です。
password」部分には新規作成するTeamSpeak用MySQLユーザのパスワードを入力してください。

[root@home root]# mysqladmin -uroot -ppassword create teamspeak
[root@home root]# mysql -uroot -ppassword teamspeak
mysql> grant all on teamspeak.* to tsuser@localhost identified by 'password';
mysql> flush privileges;

次にTeamSpeak2 RC2 Server側の設定をMySQLを使用するよう変更します。サーバファイル内の「server.ini」を編集します。

[root@home root]# vi /usr/local/bin/server.ini

ファイルの末端に以下を追加します。色が付いている部分は先程のデータベース作成時に設定したものに変更してください。

[DBEXPRESS]
sqldir=./mysql_sql/
Drivername=mysql
Database=teamspeak
Hostname=127.0.0.1
User_name=tsuser
Password=password
GetDriverFunc=getSQLDriverMYSQL
VendorLib=/usr/lib/libmysqlclient_r.so.10.0.0
LibraryName=./libsqlmy.so
Active=1

以上の設定後、MySQL接続用ライブラリを更新する必要があります。
ダウンロードして「/usr/lib/」内にコピーしてください。ファイルは「http://mirror.akiez.org/libmysqlclient.tar.bz2」でミラーしています。

[root@home root]# cd /usr/lib/
[root@home lib]# wget http://mirror.akiez.org/libmysqlclient.tar.bz2
[root@home lib]# tar jxvf ./libmysqlclient.tar.bz2

以上の完了後、TeamSpeak2 RC2 Serverを再起動するとMySQLをデータストレージとして起動します。
設定は失われるため、再度ウェブ管理画面から設定する必要があります。(管理画面へのログインパスワードも変更されるので、server.logから見つける必要があります。)

[root@home bin]# cd /usr/local/bin/tss2_rc2/
[root@home tss2_rc2]# sudo -u teamspeak ./teamspeak2-server_startscript restart

(c) 2006-2007 aqua:pal. All Rights Reserved.