Открываем консоль с root-доступом (или кто у вас там с привилегиями) по SSH.
Чиним ключи, если надо.
apt-get install debian-archive-keyring
Обновляем список пакетов:
apt-get update
Сервер Apache и PHP5
apt-get install -y apache2 php5
XMLRPC-C нужной версии
apt-get remove libxmlrpc-c*
apt-get install -y gcc g++ php5-xmlrpc
cd /usr/src && wget http://dfn.dl.sourceforge.net/sourceforge/xmlrpc-c/xmlrpc-c-1.16.38.tgz && tar xvf xmlrpc-c-1.16.38.tgz && cd xmlrpc-c-1.16.38 && ./configure --disable-cplusplus && make && make install && cd ~
SCGI-шлюз для Apache
Устанавливаем SCGI шлюз для Apache2:apt-get install -y libapache2-mod-scgi
Теперь включим этот модуль создав файл scgi.conf:
touch /etc/apache2/mods-available/scgi.conf && echo 'SCGIMount "/RPC2" 127.0.0.1:5000'>>/etc/apache2/mods-available/scgi.conf
Проверьте существует ли в директории /etc/apache2/mods-available/ файл scgi.load, если нет — создайте его:
touch /etc/apache2/mods-available/scgi.load && echo 'LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so'>>/etc/apache2/mods-available/scgi.load
И добавим модуль в автозагрузку Apache:
ln -s ../mods-available/scgi.conf /etc/apache2/mods-enabled/ && ln -s ../mods-available/scgi.load /etc/apache2/mods-enabled/
Перезапустим Apache чтобы изменения вступили в силу:
/etc/init.d/apache2 restart
Собственно rTorrent
Устанавливаем rTorrent:apt-get install -y rtorrent
Настраиваем запуск rtorrent:
cd /etc/init.d/ && wget -O ./rtorrent http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh?format=raw && sed -i 's/user="user"/user="seedbox"/g' ./rtorrent && chmod +x ./rtorrent && cd ~
Внимание! Если установка осуществляется на сервер под управлением Debian 6, внесите в свежесозданный файл /etc/init.d/rtorrent следующие строки сразу после #!/bin/sh:
### BEGIN INIT INFO # Provides: rtorrent_autostart # Required-Start: $local_fs $remote_fs $network $syslog $netdaemons # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: rtorrent script using screen(1) # Description: rtorrent script using screen(1) to keep torrents working without the user logging in ### END INIT INFOДобавим rtorrent в автозапуск системы:
update-rc.d rtorrent defaults
В предыдущем действии присутствует команда sed -i 's/user="user"/user="seedbox"/g' ./rtorrent, выполняющая автозамену стандартного значения параметра user на seedbox. Этот параметр — имя пользователя, из-под которого будет запускаться rtorrent. Сейчас мы его создадим. Если автозамена по каким-либо причинам не сработала, удалите её из списка команд, откройте файл /etc/init.d/rtorrent и отредактируйте его вручную.Создаем пользователя seedbox специально для торрентов. Можно это сделать через ISPmanager, можно вручную через консоль:
useradd seedbox -U -d /var/www/seedbox && mkdir /var/www/seedbox && chown seedbox:seedbox /var/www/seedbox
Переходим в консоль этого пользователя:
su seedbox
Создаём .rtorrent.rc:
wget -O ~/.rtorrent.rc http://libtorrent.rakshasa.no/export/1257/trunk/rtorrent/doc/rtorrent.rc
Дописываем в него наш SCGI-шлюз:
echo 'scgi_port = localhost:5000'>>~/.rtorrent.rc
Если нужно повесить rtorrent на определенный IP-адрес, измените директивы bind и ip:
# The ip address reported to the tracker. ip = %НУЖНЫЙ_IP_АДРЕС% # The ip address the listening socket and outgoing connections is # bound to. bind = %НУЖНЫЙ_IP_АДРЕС%Также рекомендуется сменить стандартный диапазон портов с 6890 — 6999 на какой-либо другой:
# Port range to use for listening. port_range = 40000-50000Напомню, что все эти настройки указываются в файле rtorrent.rc
WEB-интерфейс ruTorrent
Не выходите из консоли пользователя seedbox.Необходимо создать домен, по которому будет доступен ruTorrent. Это можно сделать через ISPmanager, любую другую панель управления сервером, или же вручную. Переходим в папку домена (в нашем примере это /var/www/seedbox/data/www/seedbox-web). Если папка ещё не существует — создадим её одной командой:
mkdir -p /var/www/seedbox/data/www/seedbox-web
В команде выше флаг (параметр) -p говорит mkdir создать папку рекурсивно, т.е. не обращая внимание что родительских папок (как, например, /var/www/seedbox/data/) не существует, и не выдавать по этому поводу ошибок.Теперь загрузим сам ruTorrent:
cd /var/www/seedbox/data/www/seedbox-web && wget http://rutorrent.googlecode.com/files/rutorrent-3.4.tar.gz -O rutorrent.tar.gz && tar xvf rutorrent.tar.gz -C ./ && rm rutorrent.tar.gz
На момент написания статьи последней версией ruTorrent была
Веб-интерфейс лежит в папке ./rutorrent в корне домена. Чтобы попадать в него сразу при заходе на домен, создадим index.php с переадресацией:
touch ./index.php && echo '<?php header("Location: ./rutorrent/"); ?>'>>./index.php
Теперь создадим рабочие директории для rtorrent. Это можно было сделать и раньше, но я предпочитаю держать их доступными по http, поэтому отложил этот шаг до этапа когда домен будет создан.
mkdir ./downloads && mkdir ./session
Также внесем изменения в .rtorrent.rc:
sed -i 's/#directory = .\//directory = \/var\/www\/seedbox\/data\/www\/seedbox-web\/downloads/g' ~/.rtorrent.rc && sed -i 's/#session = .\/session/session = \/var\/www\/seedbox\/data\/www\/seedbox-web\/session/g' ~/.rtorrent.rc
Если автозамена не сработала, внесите изменения вручную: выставьте папки directory и session (мы их создали выше, это downloads и session соответственно).
Если все предыдущие действия выполнялись не из-под пользователя seedbox, нужно назначить ему права владельца. Не изменяя текущую директорию, выполните:
chown -R seedbox:seedbox ./
Выставляем права на папку share:
cd ./rutorrent/share && find . -type d -exec chmod 0777 {} ';' && cd ../../
Установим плагин EraseData, позволяющий удалить закачку вместе с файлами, а не только сам .torrent-файл:
cd ./rutorrent/plugins && wget http://rutorrent.googlecode.com/files/erasedata-3.4.tar.gz -O erasedata.tar.gz && tar xzvf erasedata.tar.gz && rm erasedata.tar.gz
Установим плагин Create, позволяющий создавать .torrent-файлы:
cd ./rutorrent/plugins && wget http://rutorrent.googlecode.com/files/create-3.4.tar.gz -O create.tar.gz && tar xzvf create.tar.gz && rm create.tar.gz
Установим плагин Edit, позволяющий редактировать список трекеров, который пригодится если новые, одинаковые закачки не добавляются в ruTorrent по причине совпадения хэша (см. Общее - Hash):
cd ./rutorrent/plugins && wget http://rutorrent.googlecode.com/files/edit-3.4.tar.gz -O edit.tar.gz && tar xzvf edit.tar.gz && rm edit.tar.gz
Установим плагин RSS, позволяющий автоматизировать закачку ruTorrent'ом всех раздач, появляющихся в RSS-лентах:
cd ./rutorrent/plugins && wget http://rutorrent.googlecode.com/files/rss-3.4.tar.gz -O rss.tar.gz && tar xzvf rss.tar.gz && rm rss.tar.gz
Если же вы таки работали от seedbox, вернитесь в консоль root:
exit
Запускаем rtorrent:
/etc/init.d/rtorrent start
Доступ к веб-интерфейсу ruTorrent
Если домен не создавали, или нужно обойтись без доменов вообще, добавим alias к нашему IP-адресу:echo -e "Alias /rutorrent /var/www/seedbox/data/www/seedbox-web\n<Directory \"/var/www/seedbox/data/www/seedbox-web\">\n\tAllowOverride All\n</Directory>">/etc/apache2/conf.d/rutorrent
Предупреждаю: поскольку Alias /rutorrent ведет на /var/www/seedbox/data/www/seedbox-web, а в этой папке, в свою очередь лежит еще раз ./rutorrent (распакованный веб-интерфейс из архива, помните?), то в адресной строке в результате мы увидим ВАШ.IP.АДРЕС/rutorrent/rutorrent :)Ограничиваем доступ через htaccess/htpasswd
Для этого в папке с веб-интерфейсом ruTorrent потребуется создать два файла: .htaccess и .htpasswd. Подробнее об этом — см. статью «как поставить пароль на папку в .htaccess». В .htpasswd нужно будет указать логин и пароль которым будет предоставлен доступ. В .htaccess мы включим эту самую проверку доступа, сошлемся на вышеупомянутый .htpasswd и укажем web-серверу снять ограничение по логину (т.е. он будет принимать только те имена пользователей и пароли, которые указаны в .htpasswd, в результате чего не будет необходимости повторно перечислять в "Require User" в htaccess'е все разрешенные логины).cd /var/www/seedbox/data/www/seedbox-web && echo "seeduser:\$apr1\$aJ.utc3n\$30XkDugWyT7bG109N1FUe1">./.htpasswd && echo -e "AuthType Basic\nAuthName \"Authorization Required\"\nAuthUserFile /var/www/seedbox/data/www/seedbox-web/.htpasswd\nRequire valid-user">./.htaccess && cd ~
В примере выше в файл .htpasswd открывается доступ для пользователя seeduser по паролю seedpassword. Вы, возможно, захотите изменить эти данные — для этого воспользуйтесь генератором паролей .htpasswd, например — этим. Полученный текст вставьте в файл .htpasswd который мы создали ранее.Внимание! Если вы хотите ограничить доступ к IP, который используется для раздачи торрентов, переведите Apache, а вместе с ним — и веб-морду на другой IP-адрес. Для этого в настройках Apache (т.е. в файле /etc/apache2/apache2.conf или /etc/apache2/ports.conf укажите:
Listen %НУЖНЫЙ_IP_АДРЕС%:80
... и перезапустите Apache:
/etc/init.d/apache2 restart
Чтобы открыть (развернуть) работающий rtorrent в консоли, наберите:
su seedbox
screen -r
Если при этом вас встречает ощибка:
Cannot open your terminal '/dev/pts/0' - please check.
(может быть /dev/pts/0, /dev/pts/1, /dev/pts/2 и т.д.), то вернитесь в root и исправьте права доступа:
exit
chmod a+rw /dev/pts/*
Использовано:
http://www.siniy.ws/2009/09/22/rtorrent-wtorrent-на-debian
http://filesharefreak.com/2010/02/13/how-to-install-rtorrent-rutorrent-using-socket-ssl-authentication-on-ubuntu-or-debian/
http://rtwi.jmk.hu/wiki/InstallationGuide#xmlrpc
No comments:
Post a Comment