Установка TS3 + Mysql: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Закачка дистрибутива)
(Проверка библиотек)
 
(не показано 8 промежуточных версий этого же участника)
Строка 11: Строка 11:
 
===Копирование файлов===
 
===Копирование файлов===
 
Переписываем архив с сервером в каталог /home/ts3 и распаковываем его
 
Переписываем архив с сервером в каталог /home/ts3 и распаковываем его
<pre>#tar xvfz teamspeak3-server_linux-x86-3.0.0-beta20.tar.gz</pre>
+
<pre>#tar xvfz teamspeak3-server_linux-amd64-3.0.10.3.tar.gz</pre>
 +
 
 
===Создание файлов настроек===
 
===Создание файлов настроек===
 
Идем в каталог с сервером
 
Идем в каталог с сервером
Строка 35: Строка 36:
 
<pre>
 
<pre>
 
[config]
 
[config]
host=localhost
+
host=127.0.0.1
 
port=3306
 
port=3306
 
username=mysqluser
 
username=mysqluser
Строка 43: Строка 44:
 
</pre>
 
</pre>
 
Параметры файлов, мне кажется, понятны.
 
Параметры файлов, мне кажется, понятны.
 +
 
===Создание базы данных===
 
===Создание базы данных===
 
Создаем файл pre_ts3.sql следующего содержания:  
 
Создаем файл pre_ts3.sql следующего содержания:  
Строка 71: Строка 73:
 
</pre>И видим строку
 
</pre>И видим строку
 
  libmysqlclient.so.15 => not found
 
  libmysqlclient.so.15 => not found
Тк в mandriva 1010 входит уже драйвер клиента libmysqlclient.so.16, а TeamSpeak серверу нужен libmysqlclient.so.15, то мне пришлось взять данный файл из пакета [http://mirror.yandex.ru/mandriva/official/2009.0/x86_64/media/main/release/lib64mysql15-5.0.67-3mdv2009.0.x86_64.rpm lib64mysql15-5.0.67-3mdv2009.0.x86_64.rpm] для 64 битной ОС или [http://mirror.yandex.ru/mandriva/official/2009.0/i586/media/main/release/libmysql15-5.0.67-3mdv2009.0.i586.rpm libmysql15-5.0.67-3mdv2009.0.i586.rpm] для 32 битной от Mandriva 2009.<br / >
+
Устанавливаем пакет rpm для открытия файлов rpm в mc.
Выкачиваем данный пакет, открываем в mc, идем с CONTENTS.cpio, потом в usr/lib64 и копируем файлы libmysqlclient.so.15.0.0 и @libmysqlclient.so.15 в каталог /usr/lib64/ для 64 битной ОС или в /usr/lib для 32 битной<br / >
+
  sudo apt-get install rpm
 +
Тк в Ubuntu 14.04 не входит данная библиотека, то мне пришлось взять данный файл из пакета [ftp://fr2.rpmfind.net/linux/Mandriva/official/2009.1/x86_64/media/main/release/lib64mysql15-5.0.67-3mdv2009.0.x86_64.rpm lib64mysql15-5.0.67-3mdv2009.0.x86_64.rpm] для 64 битной ОС или [http://mirror.yandex.ru/mandriva/official/2009.0/i586/media/main/release/libmysql15-5.0.67-3mdv2009.0.i586.rpm libmysql15-5.0.67-3mdv2009.0.i586.rpm] для 32 битной от Mandriva 2009.<br / >
 +
Выкачиваем данный пакет, открываем в mc, идем с CONTENTS.cpio, потом в usr/lib64 и копируем файлы libmysqlclient.so.15.0.0 и @libmysqlclient.so.15 в каталог /usr/lib/x86_64-linux-gnu <br / >
 +
Так же создаем ссылки для библиотек шифрования
 +
<pre>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</pre>
 +
 
После этого снова проверяем, с помощью ldd и должны получить  
 
После этого снова проверяем, с помощью ldd и должны получить  
 
<pre># ldd libts3db_mysql.so  
 
<pre># ldd libts3db_mysql.so  
Строка 109: Строка 118:
 
2.Копируем файл ts3server_startscript.sh в файл /etc/rc.d/init.d/ts3 <br />
 
2.Копируем файл ts3server_startscript.sh в файл /etc/rc.d/init.d/ts3 <br />
 
3.Правим файл /etc/rc.d/init.d/ts3. Полностью файл выводить не буду - покажу только изменения.<br />
 
3.Правим файл /etc/rc.d/init.d/ts3. Полностью файл выводить не буду - покажу только изменения.<br />
Итак в начало файла после строки '''#!/bin/bash''', вставляем.
+
Удаляем следующие строки
 +
<pre>#!/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)"
 +
</pre>
 +
И вместо них вставляем.
 
<pre>               
 
<pre>               
#TeamSpeak 3             
+
#!/bin/sh
#For TeamSpeak 3 server   
 
#                         
 
#      /etc/rc.d/init.d/ts3
 
#                         
 
# Starts the TeamSpeak 3 daemon
 
#
 
# chkconfig: 255 99 10
 
# description: Runs commands scheduled by the at command at the time \
 
#    specified when at was run, and runs batch commands when the load \
 
#    average is low enough.
 
# processname: atd
 
#
 
 
### BEGIN INIT INFO
 
### BEGIN INIT INFO
# Provides: TeamSpeak
+
# Provides:         teamspeak
# Required-Start: $network
+
# Required-Start:   $remote_fs $syslog $local_fs $network
# Required-Stop: $network
+
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Should-Start: $named mysqld postgresql ldap saslauthd
+
# Should-Start:     $named
# Should-Stop: $named mysqld postgresql ldap saslauthd
+
# Should-Stop:       $named
# Default-Start: 2 3 4 5
+
# Default-Start:     2 3 4 5
# Short-Description: Starts the ts3 server
+
# Default-Stop:      0 1 6
# Description: TeamSpeak  is flaxible, voice Server
+
# Short-Description: Starts ts3 daemon
 +
# Description:       This script runs the ts3 service
 
### END INIT INFO
 
### END INIT INFO
                                             
 
  
# Source function library.
+
# Start the TS3 daemon.
#set -x                 
 
# Source function library.
 
if [ -f /etc/init.d/functions ] ; then
 
  . /etc/init.d/functions           
 
elif [ -f /etc/rc.d/init.d/functions ] ; then
 
  . /etc/rc.d/init.d/functions             
 
else                                       
 
  exit 0                                   
 
fi                                         
 
  
# Source networking configuration.
+
PATH=/bin:/usr/bin:/sbin:/usr/sbin
. /etc/sysconfig/network         
 
  
# Check that networking is up.
 
[ ${NETWORKING} = "no" ] && exit 0
 
  
RETVAL=0
+
# Copyright (c) 2010 TeamSpeak Systems GmbH
 +
# All rights reserved
  
#
+
COMMANDLINE_PARAMETERS="inifile=ts3server.ini" #add any command line parameters you want to pass here
#      See how we were called.
+
BINARYPATH="/home/ts3/"
#                             
+
USER="ts3"
  
 +
D1=$(readlink -f "$0")
 +
cd "${BINARYPATH}"
 +
LIBRARYPATH="$(pwd)"
 
</pre>
 
</pre>
 
Изменяем строку с '''COMMANDLINE_PARAMETERS'''
 
Изменяем строку с '''COMMANDLINE_PARAMETERS'''

Текущая версия на 11:45, 15 мая 2014

Тут я опишу, как установить и настроить данный сервер в 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 на нужное.