ПредисловиеУчитывая активное использовании torrent-сетей возникло желание управлять клиентом из любой точки сети посредством web-интерфейса. На тот момент я имел установленный дистрибутив Debian Lenny на рабочем компютере. После исследования существующих на тот момент решений и состояния репозиториев выбор был остановлен на свзяке rtorrent и wtorrent.Установка програмного обеспеченияНеобходимые пакеты из репозитария:
Далее скачиваем свежую версию wtorrent. Я решил взять версию из svn, т.к. проще следить за обновлениями:
Настройка програмного обеспеченияПриступая к настройке этого програмного комплекса следует сразу оговориться о некоторых нюансах.По-первых, торрент-клиент должен работать под тем же пользователем, что и web-сервер, чтобы избежать конфликтов с правами. В данном случае это был www-data. Во-вторых, вполне очевидно, что может понадобится прямой доступ к интерфейсу rTorrent, потому следует это предусмотреть. rTorrentСоздаем файл настроек /var/www/.rtorrent.rc следующего содержанияscgi_port = localhost:5000session = /var/www/wtorrent/torrentsmultiuser onaddacl rootУ скрипта инициализации есть файл конфигурации /etc/rtorrent.conf следующего содержания: user="www-data"# Группа, not implemented, see d_start for beginning implementationgroup=`id -ng "$user"`# Файл конфигурации rtorentconfig="`su -c 'echo $HOME' $user`/.rtorrent.rc"# Дополнительные опции запуса rtorrentoptions=""# Директория по-умолчанию для screenbase="`su -c 'echo $HOME' $user`"# Имя сессии screensrnname="rtorrent"logfile="/var/log/rtorrentInit.log"Запускаем демон # /etc/init.d/rtorrent startМожно попробовать подключиться к сессии следующим образом:
There is a suitable screen on: 5093.rtorrent (12.11.2009 11:29:16) (Multi, detached)1 Socket in /var/run/screen/S-www-data.# screen -r www-data/5093или, если сессия одна у юзера, то просто # screen -r www-data/Web-серверВ этом месте есть 2 варианта на выбор. Зависит от конкретной ситуации и ваших предпочтений. Для домашней станции я бы рекомендовал lighttpd, как более легковесный, но учтите, что apache2 в любом случае установиться как зависимость.Apache2Включение модуля mod-scgi# cd /etc/apache2/mods-enabled# ln -s ../mods-available/scgi.loadSCGIMount /RPC2 127.0.0.1:5000и перезапускаем сервис: # /etc/init.d/apache2 restartLighttpdВключаем php# cd /etc/lighttpd/conf-enabled/# ln -s ../conf-available/10-fastcgi.confserver.modules += ( "mod_scgi" )scgi.server = ( "/RPC2" => # RT_DIR ( "127.0.0.1" => ( "host" => "127.0.0.1", # Ip where rtorrent is listening "port" => 5000, # Port specified in .rtorrent.rc "check-local" => "disable" ) ))# /etc/init.d/lighthttpd restartwTorrentКопируем файл конфигурации# cd /var/www/wtorrent/conf/# cp sample.user.conf.php user.conf.phpuser.conf.php# cd /var/www/wtorrent# chown www-data data db torrents tpl_cПосле этого проверяем работоспособность ресурса. Внимание! После конфигурирования файл install.php следует обязательно удалить по соображениям безопасности. # rm /var/www/wtorrent/install.phpЗаключениеСтоит отметить, что существуют многие другие проекты, предоставляющие альтернативные интерфейсы управления rTorrent через протокол XML-RPC. Из них особый интерес предстваляет ruTorrent, интерфейс которого идентичен веб-интерфейсу uTorrent, но к сожалению он не имеет средств для разделения доступа пользователей, авторизации и имеет более высокие требования к версии rtorrent, чем в lenny. |