вторник, 10 ноября 2009 г.

Установка rTorrent

Учитывая активное использовании torrent-сетей возникло желание управлять клиентом из любой точки сети посредством web-интерфейса. На тот момент я имел установленный дистрибутив Debian Lenny на рабочем компютере. Я постараюсь осветить несколько вариантов решения имеющие разные преимущества. Какой выбрать - решать вам.


Установка

Необходимые пакеты из репозитария:
  • php5
  • apache2 или lighttpd
  • libapache2-mod-scgi (только для apache2)
  • php5-sqlite
  • rtorrent
  • screen
Примечание: rtorrent пришлось бэкпортировать из testing, т.к. версия из stable падала иногда с ошибкой сегментирования.
Далее скачиваем свежую версию wtorrent. Я решил взять версию из svn, т.к. проще следить за обновлениями:
$ cd /var/www/
$ svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
После установки необходимых пакетов можно перейти непосредственно к конфигурированию. Приступая к настройке этого програмного комплекса следует сразу оговориться о некоторых нюансах. По-первых, торрент-клиент должен работать под тем же пользователем, что и web-сервер, чтобы избежать конфликтов с правами. В данном случае это был www-data.Во-вторых, вполне очевидно, что может понадобится прямой доступ к интерфейсу rTorrent, потому следует это предусмотреть.

Настройка

Создаем файл настроек /var/www/.rtorrent.rc следующего содержания
scgi_port = localhost:5000
session = /var/www/wtorrent/torrents
Кладем скрипт инициализации в /etc/init.d . Обратите внимание, что rtorrent не может работать в режиме демона, потому для скрипта инициализации используется утилита screen. Для обеспечения возможности подключения к сессии screen необходимо внести дополнения в конфигурацию в файле /var/www/.screenrc:
multiuser on
addacl root
Здесь я разрешил доступ пользователю root. Аналогично можно добавить и других пользователей.
У скрипта инициализации есть файл конфигурации /etc/rtorrent.conf следующего содержания:
user="www-data"
# Группа, not implemented, see d_start for beginning implementation
group=`id -ng "$user"`
# Файл конфигурации rtorent
config="`su -c 'echo $HOME' $user`/.rtorrent.rc"
# Дополнительные опции запуса rtorrent
options=""
# Директория по-умолчанию для screen
base="`su -c 'echo $HOME' $user`"
# Имя сессии screen
srnname="rtorrent"
logfile="/var/log/rtorrentInit.log"
Запускаем демон
# /etc/init.d/rtorrent start
Можно попробовать подключиться к сессии следующим образом:
# screen -ls www-data/
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/
Для отключения от сессии нажмите ^a затем d. Для более подробной информацией по работе со sсreen обратитесь к соответствующему справочному руководству.

Web-сервер

В этом месте есть 2 варианта на выбор. Зависит от конкретной ситуации и ваших предпочтений. Для домашней станции я бы рекомендовал lighttpd, как более легковесный, но учтите, что apache2 в любом случае установиться как зависимость.

Apache2

Включение модуля mod-scgi
# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/scgi.load
Конфигурируем точку монтирования. Для этого создаем файл /etc/apache2/conf.d/RPC2 следующего содержания:
SCGIMount /RPC2 127.0.0.1:5000
и перезапускаем сервис:
# /etc/init.d/apache2 restart

Lighttpd

Включаем php
# cd /etc/lighttpd/conf-enabled/
# ln -s ../conf-available/10-fastcgi.conf
Включаем mod-scgi, для этого создаем файл /etc/lighttpd/conf-enabled/10-scgi.conf
server.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 restart

wTorrent

Копируем файл конфигурации
# cd /var/www/wtorrent/conf/
# cp sample.user.conf.php user.conf.php
# chown www-data user.conf.php
Корректируем права на директории
# cd /var/www/wtorrent
# chown www-data data db torrents tpl_c
Открываем адрес "http://localhost/wtorrent/install.php, делаем при необходимости корретировки. Проверяем конфигурацию кнопкой "Try configuration", и если ошибок не обнаружено, нажимаем "Save configuration"
После этого проверяем работоспособность ресурса.
Внимание! После конфигурирования файл install.php следует обязательно удалить по соображениям безопасности.
# rm /var/www/wtorrent/install.php

Комментариев нет:

Отправить комментарий