Установка TS3 + Mysql

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску

Тут я опишу, как установить и настроить данный сервер в Ubuntu 14.04. И так приступим.

Закачка дистрибутива

Идем на сайт teamspeak и качаем нужный нам сервер. Я опишу для teamspeak3-server_linux-amd64-3.0.10.3.

Установка

Создание пользователя

Создаем нового пользователя ts3, от которого будет работать TeamSpeak server.

# useradd   -c ts3_user -d /home/ts3 -r -m -s /dev/null ts3

Копирование файлов

Переписываем архив с сервером в каталог /home/ts3 и распаковываем его

#tar xvfz teamspeak3-server_linux-amd64-3.0.10.3.tar.gz

Создание файлов настроек

Идем в каталог с сервером

# cd teamspeak3-server_linux-amd64

И там создаем 2 файла
ts3server.ini

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
liscensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
dbplugin=ts3db_mysql
dbpluginparameter=ts3db_mysql.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mysql/
logpath=logs
logquerycommands=1

И ts3db_mysql.ini

[config]
host=127.0.0.1
port=3306
username=mysqluser
password=mysqlpasswd
database=ts3
socket=

Параметры файлов, мне кажется, понятны.

Создание базы данных

Создаем файл pre_ts3.sql следующего содержания:

use mysql;
INSERT INTO user (Host, User, Password) VALUES ('localhost','ts3',password('sqlpassword'));
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv,
 Index_priv, Alter_priv) VALUES ('%', 'ts3', 'ts3', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
CREATE DATABASE ts3;

Не забудьте исправить sqlpassword на свое усмотрение. Для тех кто не понял, это пароль mysql-пользователя ts3, необходимый для доступа к базе данных ts3

Cоздаём пользователя и базу.

Далее делаем в консоли.

# mysql -u root -p < pre_ts3.sql
# mysqladmin -p flush-privileges

Проверка библиотек

Из консоли выполняем

ldd libts3db_mysql.so
        linux-vdso.so.1 =>  (0x00007fff6dbf3000)
        libmysqlclient.so.15 => not found
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f597cdea000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f597cb68000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f597c952000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f597c5f3000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f597d322000)

И видим строку

libmysqlclient.so.15 => not found

Устанавливаем пакет rpm для открытия файлов rpm в mc.

sudo apt-get install rpm

Тк в Ubuntu 14.04 не входит данная библиотека, то мне пришлось взять данный файл из пакета lib64mysql15-5.0.67-3mdv2009.0.x86_64.rpm для 64 битной ОС или libmysql15-5.0.67-3mdv2009.0.i586.rpm для 32 битной от Mandriva 2009.
Выкачиваем данный пакет, открываем в mc, идем с CONTENTS.cpio, потом в usr/lib64 и копируем файлы libmysqlclient.so.15.0.0 и @libmysqlclient.so.15 в каталог /usr/lib/x86_64-linux-gnu
Так же создаем ссылки для библиотек шифрования

sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.15  /usr/lib/x86_64-linux-gnu/libmysqlclient.so.15.0.0
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.0.9.8 
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /lib/x86_64-linux-gnu/libcrypto.so.0.9.8

После этого снова проверяем, с помощью ldd и должны получить

# ldd libts3db_mysql.so 
        linux-vdso.so.1 =>  (0x00007fff4fbff000)
        libmysqlclient.so.15 => /usr/lib64/libmysqlclient.so.15 (0x00007f150b79b000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f150b490000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f150b20d000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f150aff7000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f150ac99000)
        libssl.so.0.9.8 => /usr/lib64/libssl.so.0.9.8 (0x00007f150aa45000)
        libcrypto.so.0.9.8 => /usr/lib64/libcrypto.so.0.9.8 (0x00007f150a68c000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f150a477000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f150bd43000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f150a272000)

Запуск сервера

Первый запуск

Правим файл ts3server_minimal_runscript.sh

#!/bin/bash

export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"

if [ -e ts3server_linux_x86 ]; then
        ./ts3server_linux_x86 inifile=ts3server.ini $@
else
        ./ts3server_linux_amd64  inifile=ts3server.ini $@
fi

И запускаем его. И если запуск произошел без ошибок (Программа не вывалилась в консоль), сохраняем строку с token, для получения полномочий superadmin на клиенте. Так же эта строка сохранена в логах в папке logs.
Останавливаем сервер через (Ctrl-C).

Настройка сервиса запуска сервера

Для того чтобы наш сервер работал от имени пользователя ts3.
1.Меняем пользователя и группу папки /home/ts3

# chown -R ts3:ts3 /home/ts3

2.Копируем файл ts3server_startscript.sh в файл /etc/rc.d/init.d/ts3
3.Правим файл /etc/rc.d/init.d/ts3. Полностью файл выводить не буду - покажу только изменения.
Удаляем следующие строки

#!/bin/sh
# Copyright (c) 2010 TeamSpeak Systems GmbH
# All rights reserved

COMMANDLINE_PARAMETERS="${2}" #add any command line parameters you want to pass here
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"

И вместо них вставляем.

               
#!/bin/sh
### BEGIN INIT INFO
# Provides:          teamspeak
# Required-Start:    $remote_fs $syslog $local_fs $network
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts ts3 daemon
# Description:       This script runs the ts3 service 
### END INIT INFO

# Start the TS3 daemon.

PATH=/bin:/usr/bin:/sbin:/usr/sbin


# Copyright (c) 2010 TeamSpeak Systems GmbH
# All rights reserved

COMMANDLINE_PARAMETERS="inifile=ts3server.ini" #add any command line parameters you want to pass here
BINARYPATH="/home/ts3/"
USER="ts3"

D1=$(readlink -f "$0")
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"

Изменяем строку с COMMANDLINE_PARAMETERS

COMMANDLINE_PARAMETERS="inifile=ts3server.ini" #add any command line parameters you want to pass here
BINARYPATH="/home/ts3/teamspeak3-server_linux-amd64"                                                                               
USER="ts3"                                                                                           

Закоментировать строки с проверкой на root

                #if [ "${UID}" = "0"  $USER = "root" ]; 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

И изменяем строку запуска
Было

"./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null & 

Стало

 su $USER -s "/bin/bash" -c "./${BINARYNAME} ${COMMANDLINE_PARAMETERS}" > /dev/null &

Если забыли пароль admin

Первый вариант

Взято тут

Второй вариант

Как мне кажется намного более простой.

  1. Заранее, пока еще можем зайти администратором, создаем несколько ключей токенов.
    1. На клиенте заходим администратором, идем Привилегии --> Ключи привилегий --> Нажимаем Create
    2. Выбираем Type - Группа сервера, Group - Server Admin, Description - какое нибудь описание, что бы потом не забыть.
    3. Несколько раз нажимаем кнопку Создать.
  2. Когда надо дать права админа какой нибудь машине
    1. С помощью клиента, например phpmyadmin, смотрим таблицу tokens из базы данных ts3 mysql.
    2. Копируем оттуда token_key клиенту в поле Привилегии --> Использовать ключ привилегий и нажимаем Ок

Web Интерфейс

Брать тут
Про установку все написано в install.txt
Очень удобно, зная пароль serveradmin, править некоторые значения.

При количестве клиентов 100, отключается звук в конференции

В настройке сервера по умолчанию стоит минимальное число клиентов в одном канале, при котором включается режим молчания = 100.
Для его изменения. Правая кнопка мыши на сервере -> Параметры виртуального сервера.
Идем во вкладку - Разное и меняем Min clients in Channel before silents на нужное.