Да, вот здесь начинается самая веселуха, ибо над развертыванием этого проклятого ГУЯ бился я, ну наверное, сутки. В итоге все конечно разрешилось, причем самым презабавным образом и за пару минут, однако не буду более забегать вперед, все будет последовательно.
Как я уже писал во второй части цикла «Файлопомойка», в качестве торрент-клиента я выбрал 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» и получил по всей роже вот этим:
Вот с этого момента пошли сутки. Я пересобирал 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.
P.S. А еще, когда я выбирал себе WebUI и смотрел скриншоты, меня очень подкупила надпись «Feeds». Уж не RSS ли это загрузчик, подумалось мне. К большому сожалению оказалось, что нет. Если б он имелся, то связку rTorrent+wTorrent можно было бы считать однозначно лучшей.
P.S.S. По завершении всех этих мытарств, я а натолкнулся на другой проект — torrentflux-b4rt, с которым провозился еще энное количество человеко часов, о чем расскажу в следующий раз. Плюс недавно вычитал про еще пару линуксовых качалок: kTorrent и Deluge. Так что эпопея с выбором торрент-качалки для файл-сервера продолжается.