Murmur при помощи Ice
Добавлено: 22 ноя 2009, 17:04
Я расскажу как при минимуме действий настроить свой сервер для работы с ICE и опишу самые простые примеры в работе.
И так, для начала определитесь, какую версию сервера вы хотите:
1.1.8 или 1.2.0~beta
Скажу заранее, что в данный момент 1.2.0 имеет массу изменений в ICE, и готовых веб приложений официально нет.
Но, вы можете легко заставить ваш старый скрипт работать, изменив функцию getPlayers на getUsers, в большинстве случаев. Но я, все же советую подождать финального релиза.
Независимо от того, какую версию сервера вы выбрали, поставить 1.1.8 вам придется, а затем мы его вручную обновим.
Я работаю с debian 5.0.3. Но в целом процесс сходный и для других ОС.
Заходим по ssh и пишем:
После установки, надо настроить сервер:
-включить автозагрузку
-мыло
-пароль суперюзера
И так, если вы ставили сервер из squeeze, у вас будет 1.1.8 версия
Собственно все, сервер у нас запущен и работает. Зачем же нам ICE?
Для управления сервером через веб приложения.
Вот самый простенький скрипт:
Сохраните его как reg.php, и загрузите на сервер:
/usr/share/mumble-server-web/www
или
/var/www
Это относительно моей системы, у вас путь может немного отличаться.
Дальше, рестартнем апач, на всякий случай:
И зайдем по адресу http://ваш_сервер/mumble/reg.php
или
http://ваш_сервер/reg.php если закинули его в /var/www
Вы окажитесь на простенькой страничке, где любой может зарегистрироваться у вас на сервере за 2 клика. Причем это не требует авторизации по мылу, и на мой взгляд удобно для быстрой регистрации.
Немного отступлюсь от главной темы, всем известно, что в 1.1.8 нет регистрации прямо внутри программы, как например в вентриле или 1.2.0бета. Но благодаря этому простенькому скрипту, вы можете создать некое подобие.
Например писать ссылку в пм, как аналог регистрации. Да, можно использовать стандартный register.cgi, но это как минимум требует настройки почтового сервера, да и авторизация через мыло удлиняет процесс. А если вы арендуете сервер на вдс, то не думаю что у вас будет желание тратить и так ограниченные ресурсы машины на smtp сервер и возиться с его настройкой.
Но вернемся к нашей теме, мы разобрали пример самого простого скрипта для регистрации пользователей.
И на этом все только начинается, если вы обладаете специальными знаниями, можете написать свой скрипт, в своем дизайне. Документация есть на сайте мамблы.
Я не буду рассказывать как написать свое приложение, возьмем уже готовое решение: Это Mumble_PHP_Interface, он есть на сайте мамблы.
Процесс такойже, закачали на сервер, распаковали, установили на папки primer,tmp, data.
Дальше запускаем рестартуем апач(на всякий случай)
Идем по адресу:
http://ваш_сервер/primer/ или http://ваш_сервер/mumble/primer/
Тут мы видем уже более продвинутое приложение, где можно управлять самим сервером, удалять пользователей, регистрироваться, менять свои данные, загружать аватары, есть капча.
http://ваш_сервер/mumble/primer/admin - вход в админку, где можно поменять настройки, включить или откл. капчу, мыло, название сервера, создать новый сервер и тд.
Хочу заметить, что устанавливая cервер мамблы таким образом, ICE будет настроен автоматически, это можно проверить:
Если увидите <W>2009-04-06 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running, значит все отлично.
Но что делать если хотите 1.2.0?
Обновимся вручную:
Останавливаем сервак мумблы
Должны увидеть <W>2009-04-06 13:37:11.316 MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running
Вот и все.
И так, для начала определитесь, какую версию сервера вы хотите:
1.1.8 или 1.2.0~beta
Скажу заранее, что в данный момент 1.2.0 имеет массу изменений в ICE, и готовых веб приложений официально нет.
Но, вы можете легко заставить ваш старый скрипт работать, изменив функцию getPlayers на getUsers, в большинстве случаев. Но я, все же советую подождать финального релиза.
Независимо от того, какую версию сервера вы выбрали, поставить 1.1.8 вам придется, а затем мы его вручную обновим.
Я работаю с debian 5.0.3. Но в целом процесс сходный и для других ОС.
Заходим по ssh и пишем:
Код: Выделить всё
aptitude install mumble-server mumble-server-web
Код: Выделить всё
dpkg-reconfigure mumble-server
-мыло
-пароль суперюзера
И так, если вы ставили сервер из squeeze, у вас будет 1.1.8 версия
Код: Выделить всё
dpkg -l mumble-server
Для управления сервером через веб приложения.
Вот самый простенький скрипт:
Код: Выделить всё
<?php
// Really simple script to add users to your mumble server.
// Make sure to select the server this script should be used for first:
$serverId = 1;
// Requires a correctly set up PHP-ICE Module and mumble server running with ICE.
// For instructions see https://wiki.mumble.info/wiki/ICE
// Credits
// This script was created by Kissaki
// Licence: http://creativecommons.org/licenses/by-nc/3.0/
// This is as simple as it can get. You really SHOULD NOT make the URL to this script all-public as it may be abused/spammed.
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Register a user to Mumble.</title>
<style type="text/css">
.error { color:red; margin-bottom:20px; }
</style>
</head>
<body>
<?php
Ice_loadProfile();
if( isset($_GET['uname']) && $_GET['password'] && $_GET['email'] && $_GET['uname']!='' && $_GET['password']!='' )
{
echo 'trying to register: <b>'.$_GET['uname'].'</b> ...<br/>';
try {
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502");
$meta = $base->ice_checkedCast("::Murmur::Meta");
$server = $meta->getServer($serverId);
if(empty($server)){
echo '<div class="error">A server with the specified ID could not be found.<br/><br/>If you\'re the server admin:<br/>lease check your setup and edit this script file and set the $serverId variable to the correct server id.</div>';
}else{
$registrationId = $server->registerPlayer($_GET['uname']);
$registration = $server->getRegistration(intval($registrationId));
$registration->pw = $_GET['password'];
$registration->email = $_GET['email'];
$server->updateregistration($registration);
echo '<span style="color:green">done</span><br/><br/>';
}
}catch(InvalidPlayerException $ex){
// invalid account data: string for name or playerid
echo '<div class="error">There was a problem with the account data. Please go back and check your playername.<br/> If that doesn\'t help, please tell the server admin.</div>';
}catch(ServerBootedException $ex){
echo '<div class="error">The server is not running.<br/><br/>If you\'re the server admin:<br/>Check that it\'s running and using ICE.<br/>If you need help setting up ICE, see <a href="https://wiki.mumble.info/wiki/ICE">https://wiki.mumble.info/wiki/ICE</a></div>';
}catch(Ice_UnknownLocalException $exc){
echo '<div class="error">Please tell the server admin.<br/><br/>If you\'re the server admin:<br/>Check that ICE is running.</div>';
}catch (Ice_Exception $ex){
echo "<p>\n<pre>\n";
print_r($ex);
echo "</pre>\n</p>\n";
}
}
?>
<form action="" method="get">
<table>
<tr><td>Username</td><td><input name="uname" type="text" value=""/></td></tr>
<tr><td>Password</td><td><input name="password" type="password" value=""/></td>
<tr><td>eMail</td><td><input name="email" type="text" value=""/></td></tr>
</table>
<input type="submit"/>
</form>
</body>
</html>
/usr/share/mumble-server-web/www
или
/var/www
Это относительно моей системы, у вас путь может немного отличаться.
Дальше, рестартнем апач, на всякий случай:
Код: Выделить всё
/etc/init.d/apache2 restart
или
http://ваш_сервер/reg.php если закинули его в /var/www
Вы окажитесь на простенькой страничке, где любой может зарегистрироваться у вас на сервере за 2 клика. Причем это не требует авторизации по мылу, и на мой взгляд удобно для быстрой регистрации.
Немного отступлюсь от главной темы, всем известно, что в 1.1.8 нет регистрации прямо внутри программы, как например в вентриле или 1.2.0бета. Но благодаря этому простенькому скрипту, вы можете создать некое подобие.
Например писать ссылку в пм, как аналог регистрации. Да, можно использовать стандартный register.cgi, но это как минимум требует настройки почтового сервера, да и авторизация через мыло удлиняет процесс. А если вы арендуете сервер на вдс, то не думаю что у вас будет желание тратить и так ограниченные ресурсы машины на smtp сервер и возиться с его настройкой.
Но вернемся к нашей теме, мы разобрали пример самого простого скрипта для регистрации пользователей.
И на этом все только начинается, если вы обладаете специальными знаниями, можете написать свой скрипт, в своем дизайне. Документация есть на сайте мамблы.
Я не буду рассказывать как написать свое приложение, возьмем уже готовое решение: Это Mumble_PHP_Interface, он есть на сайте мамблы.
Процесс такойже, закачали на сервер, распаковали, установили
Код: Выделить всё
chmod -R 0777
Дальше запускаем рестартуем апач(на всякий случай)
Код: Выделить всё
/etc/init.d/apache2 restart
http://ваш_сервер/primer/ или http://ваш_сервер/mumble/primer/
Тут мы видем уже более продвинутое приложение, где можно управлять самим сервером, удалять пользователей, регистрироваться, менять свои данные, загружать аватары, есть капча.
http://ваш_сервер/mumble/primer/admin - вход в админку, где можно поменять настройки, включить или откл. капчу, мыло, название сервера, создать новый сервер и тд.
Хочу заметить, что устанавливая cервер мамблы таким образом, ICE будет настроен автоматически, это можно проверить:
Код: Выделить всё
/etc/init.d/apache2 restart
tail -n10 /var/log/mumble-server/mumble-server.log
Но что делать если хотите 1.2.0?
Обновимся вручную:
Останавливаем сервак мумблы
Код: Выделить всё
/etc/init.d/mumble-server stop
Код: Выделить всё
wget http://switch.dl.sourceforge.net/sourceforge/mumble/murmur-static_x86-1.2.0~beta1.tar.lzma
unlzma -v murmur-static_x86-1.2.0~beta1.tar.lzma
tar xfv murmur-static_x86-1.2.0~beta1.tar
Код: Выделить всё
cd ~/murmur-static_x86-1.2.0~beta1
chmod +x ./murmur.x86
cp murmur.x86 /usr/sbin/murmurd
Код: Выделить всё
cp Murmur.ice /var/lib/mumble-server/Murmur.ice
nano -w /etc/php5/conf.d/IcePHP.ini
добваить в конец с новой строчки ice.slice = /var/lib/mumble-server/Murmur.ice
/etc/init.d/apache2 restart
/etc/init.d/mumble-server start
tail -n10 /var/log/mumble-server/mumble-server.log
Вот и все.