Файлопомойка. Часть 3. WebUI

Да, вот здесь начинается самая веселуха, ибо над развертыванием этого проклятого ГУЯ бился я, ну наверное, сутки. В итоге все конечно разрешилось, причем самым презабавным образом и за пару минут, однако не буду более забегать вперед, все будет последовательно.

Как я уже писал во второй части цикла «Файлопомойка», в качестве торрент-клиента я выбрал rTorrent, соответственно и WebUI выбирался для него. Скоренький поиск в Гугле показал, что самым обсуждаемым, читай востребованным, является wTorrent. Когда я только только начинал читать ман по установке, я и не знал, подо что подписался.

Для развертывания wTorrent’a требуется HTTP-сервер. Маны на выбор предлагали lighttpd и Apache. Хотя апач и присутствовал в моем образе федоры, для чистоты эксперимента и азарта для, решил поставить lighttpd и обрести счастье с ним.

Пляски с lighttpd

Помимо http-серванта нужно ставить php, php-xmlrpc, php-pdo и sqlite. Опять же из-за лени не стал собирать все это барахло ручками, а ограничился устанвкой из репозитория.

yum install lighttpd php php-xmlrpc php-pd0 sqlite

Настройку lighttpd я здесь рассматривать не буду ибо все начинает крутиться после установки и почти никакого дополнительного вмешательства не требует. За тонкой настройкой под себя можно опять же обратиться к Гуглу.

Мне потребовалось внести в lighttpd.conf следующие изменения:

mcedit /etc/lighttpd.conf

Добавить строку в секцию server.modules:

"mod_scgi",

И нижеприведенный код в конец файла:

scgi.server = (
 "/RPC2" => # RT_DIR
  ( "127.0.0.1" =>
   (
    "host" => "127.0.0.1", # к какому хосту коннектится
    "port" => 5000, # К какому порту подключаться. Порт прописан в файле .rtorrent.rc
    "check-local" => "disable"
   )
  )
 )

Во второй части я писал о том, что в конфиг rTorrent’а нужно добавить строку

scgi_port = 127.0.0.1:5000

вот теперь то она и заработает.

Плюс я изменил порт на котором слушает lighttpd c 80 на 81, раскомментировав строку:

server.port = 81 # RT_PORT

Отдельно хочу обратить внимание на SELinux (Security Enhanced Linux). Установленные по умолчанию политики безопасности могут препятсовать исполнения php-скриптов (с чем я в дальнейшем столкнулся, но уже с апачем), либо иным образом препятсовать нормальной работе связки lighttpd + rtorrent + wtorrent. Поэтому в тестовых целях я изменял политику SELinux с Enforced на Permissive и внимательным образом изучал сообщения системы, коли таковые появлялись.

Однако… (всегда есть однако). Здесь я опущу камлания с wtorrent’ом, который, кстати сказать мне не удалось завести под lighttpd из-за банальной причины, — не выполнялись php скрипты. Уж не знаю в чем была причина, курение манов, чтение форумов и прочего результата не дали, но я переключился на апач, под которым в конечном итоге все заработало.

Гармония с Apache

Так, для начала прикручиваем mod_scgi к Апачу (Сайт проекта SCGI: http://python.ca/scgi/):

wget http://python.ca/scgi/releases/scgi-1.14.tar.gz
tar xvfz scgi-1.14.tar.gz
cd scgi-1.14
cd apache2
apxs -i -c mod_scgi.c

Далее быстренько правим конфиг Апача:

mcedit /etc/httpd/httpd.conf

В конец файла прописываем следующие строки:

LoadModule scgi_module /usr/lib/httpd/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000

Все Апач настроен, можно ребутить демон.

На данном этапе все подготовительные работы выполнены и можно смело раскатывать wtorrent.

Камлания с wTorrent

Вот здесь я вынужден сделать небольшое отступление от темы и сразу предостеречь возможного потенциального читателя от тех граблей, на которые наступил.

Во-первых, не стоит скачивать архив, формируемый автоматически из раздела c этой страницы: http://www.wtorrent-project.org/trac/browser/trunk/wtorrent По какой-то причине в него не был упакован пустой каталог tpl_c, чего я не заметил, а потом долго пытался понять, почему же у меня не открывается даже install.php. Лучше всего утягивать wtorrent через svn:

svn co svn://wtorrent-project.org/repos/trunk/wtorrent/ wtorrent

Во-вторых, права доступа к папкам. В английском мане почему-то смело советуют делать chmod 777 на все содержимое папки wtorrent, что безусловно является большим злом. На самом деле достаточно сделать:

chmod 777 -R torrents/ db/ tpl_c/ conf/

В конечном итоге после всех этих манипуляций мне удалось завести install.php. На что следует обратить внимание там? Несмотря на то, что порт scgi во всех конфигах был указан как 5000. В графе «rTorrent scgi port» должно стоять 80 (то есть нужно оставить как есть). Графы «Folder to save uploaded torrents» и «Default folder to save torrent data» можно заполнить по своему усмотрению, главное не забыть дать права на запись.

В тестовых целях я оставил все как есть, радостно жмахнул на «Test config» и получил по всей роже вот этим:

wtorrent_install_sux

Вот с этого момента пошли сутки. Я пересобирал rtorrent с разными ключами, предположив, что по какой-то причине XMLRPC не был включен в установке, которую я взял из репозитория, пересобирал libtorrent, утягивал более старые версии и собирал их, ничего не помогало. Плясал с настройками, проверял и еще раз перепроверял конфиги, читал логи, форумы, ЧАВО и прочее. В какой-то момент я же было отчаялся завести rTorrent в связке с wTorrent’ом и пошел искать альтернативы, коих оказалось предостаточно, но… все они и рядом не стояли с wTorrent’ом по удобству и функциональности интерфейса, а кроме того wTorrent подкупал возможностью создания нескольких учетных записей. Единственный WebUI, который мне понравился и который я был готов оставить и использовать — ruTorrent. Интерфейс практически один в один как в uTorrent WebUI, плюс приятным бонусом обновление скоростей и данных о закачках в реальном времени и возможность назначать торрентам метки. Последний фичи я не встречал ни в одном из протестированных WebUI.

Как выяснилось сутками позднее, на некоторых машинах последняя ревизии wTorrent’a и правда не работала. Проблема решалась банально путем выкачивания предыдущей:

svn co -r99 svn://wtorrent-project.org/repos/trunk/wtorrent/ wtorrent99

На данном этапе можно смело копировать свежескаченый wtorrent на веб-сервер, назначать права доступа и инсталлить его. После чего с радостными воплями и гиканьем пользоваться всеми плюшками прекрасного WebUI.

wtorrent_rox

P.S. А еще, когда я выбирал себе WebUI и смотрел скриншоты, меня очень подкупила надпись «Feeds». Уж не RSS ли это загрузчик, подумалось мне. К большому сожалению оказалось, что нет. Если б он имелся, то связку rTorrent+wTorrent можно было бы считать однозначно лучшей.

P.S.S. По завершении всех этих мытарств, я а натолкнулся на другой проект — torrentflux-b4rt, с которым провозился еще энное количество человеко часов, о чем расскажу в следующий раз. Плюс недавно вычитал про еще пару линуксовых качалок: kTorrent и Deluge. Так что эпопея с выбором торрент-качалки для файл-сервера продолжается.

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