Установка TS3 + Mysql
Тут я опишу, как установить и настроить данный сервер в 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
Первый вариант
Взято тут
Второй вариант
Как мне кажется намного более простой.
- Заранее, пока еще можем зайти администратором, создаем несколько ключей токенов.
- На клиенте заходим администратором, идем Привилегии --> Ключи привилегий --> Нажимаем Create
- Выбираем Type - Группа сервера, Group - Server Admin, Description - какое нибудь описание, что бы потом не забыть.
- Несколько раз нажимаем кнопку Создать.
- Когда надо дать права админа какой нибудь машине
- С помощью клиента, например phpmyadmin, смотрим таблицу tokens из базы данных ts3 mysql.
- Копируем оттуда token_key клиенту в поле Привилегии --> Использовать ключ привилегий и нажимаем Ок
Web Интерфейс
Брать тут
Про установку все написано в install.txt
Очень удобно, зная пароль serveradmin, править некоторые значения.
При количестве клиентов 100, отключается звук в конференции
В настройке сервера по умолчанию стоит минимальное число клиентов в одном канале, при котором включается режим молчания = 100.
Для его изменения. Правая кнопка мыши на сервере -> Параметры виртуального сервера.
Идем во вкладку - Разное и меняем Min clients in Channel before silents на нужное.