Материал из Wiki.X-news.org
Перейти к: навигация, поиск

Установка rtorrent на FreeBSD

ВНИМАНИЕ! Данная статья предполагает, что у Вас уже установлен и настроен web-сервер Apache 2.2 + PHP 5. Если Apache не устновлен, то можете воспользоваться статьёй Установка веб-сервера на FreeBSD.

Информация о системе zg# uname -a FreeBSD zg.test 8.0-STABLE FreeBSD 8.0-STABLE #0: Fri Jan 29 18:51:10 YEKT 2010 root@zg.test:/usr/obj/usr/src/sys/GENERIC i386

Текущая дата zg# date суббота, 30 января 2010 г. 09:23:28 (YEKT)


I установка торрента -----------------

Собираем торрент (обязательно с опцией XMLRPC) zg# cd /usr/ports/net-p2p/rtorrent zg# make install clean

Собираем менеджер виртуальных сессий (все опции по умолчанию) zg# cd /usr/ports/sysutils/screen zg# make install clean

Добавляем фиктивного пользователя, от которого будет работать торрент
zg# pw useradd rtorrent -s /sbin/nologin
Создаём рабочие папки для торрента
zg# mkdir -p /usr/local/rtorrent/downloads
zg# mkdir -p /usr/local/rtorrent/sessions
zg# chown -R rtorrent:rtorrent /usr/local/rtorrent/
Создаём скрипт для управления демоном торрента
zg# ee /usr/local/etc/rc.d/rtorrent.sh
#!/bin/sh
#
#
# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown

. /etc/rc.subr

name="rtorrent" rcvar=`set_rcvar`

load_rc_config $name

${rtorrent_enable="NO"}
${rtorrent_downloads="/usr/local/rtorrent/downloads"}
${rtorrent_sessions="/usr/local/rtorrent/sessions"}
${rtorrent_scgi_port=""}
${rtorrent_encoding_list="UTF-8;cp1251;koi8-r"}
${rtorrent_args=""}
${rtorrent_user="rtorrent"}

command="/usr/local/bin/rtorrent" screen="/usr/local/bin/screen"

rtorrent_args="-d ${rtorrent_downloads} -s ${rtorrent_sessions} ${rtorrent_args}"

[ -n "${rtorrent_scgi_port}" ] && rtorrent_args="-O scgi_port='${rtorrent_scgi_port}' ${rtorrent_args}" [ -n "${rtorrent_encoding_list}" ] && rtorrent_args="-O encoding_list='${rtorrent_encoding_list}' ${rtorrent_args}"

start_cmd="echo Starting ${name}.; su -m ${rtorrent_user} -c \"${screen} -A -m -d -S rtorrent ${command} ${rtorrent_args}\""

run_rc_command "$1"

Выставляем права на запуск для стартового скрипта zg# chmod +x /usr/local/etc/rc.d/rtorrent.sh

Добавляем в rc.conf настройки для торрента zg# ee /etc/rc.conf

# rtorrent

rtorrent_enable="YES" rtorrent_scgi_port="127.0.0.1:5000"

Запускаем торрент zg# /usr/local/etc/rc.d/rtorrent.sh start Starting rtorrent.

Проверяем, запустился ли торрент (50000 порт нужен для XML RPC!) zg# sockstat | grep rtorrent rtorrent rtorrent 33383 3 tcp4 127.0.0.1:5000 *:* rtorrent rtorrent 33383 4 tcp4 *:6927 *:*


II настройка Apache2 -----------------

Ставим модуль SCGI (читаем предупреждение!) zg# cd /usr/ports/www/mod_scgi zg# make install clean ...

  • If your mod_scgi seg fault, try disable mod_fastcgi *

Редактируем конфиг апача (добавляем строчку после всех загруженных модулей) zg# ee /usr/local/etc/apache22/httpd.conf LoadModule scgi_module libexec/apache22/mod_scgi.so

Создаём конфиг для SCGI (авторизация необходима для безопасности) zg# ee /usr/local/etc/apache22/Includes/scgi.conf <IfModule mod_scgi.c>

 SCGIMount /RPC2 127.0.0.1:5000
 <Location /RPC2>
   Allow from all
   ## Enable only authorized users
   AuthName "Enter password for torrent"
   AuthType Basic
   AuthUserFile /usr/local/www/rtorrent/.htpasswd
   require valid-user
 </Location>

</IfModule>


III установка web-панели управления для rtorrent -----------------

Качаем исходники веб-морды для торрента и помещаем их в папку /usr/local/www/rtorrent/docs/ zg# cd /usr/local/www/ zg# fetch http://rutorrent.googlecode.com/files/rtorrent-2.8.tar.gz zg# tar xf rtorrent-2.8.tar.gz zg# rm rtorrent-2.8.tar.gz zg# mv rtorrent/ docs zg# mkdir rtorrent zg# mv docs/ rtorrent/ zg# chown -R www:www rtorrent/

Создаём конфиг для торрента zg# ee /usr/local/etc/apache22/Includes/rtorrent.conf Alias /rtorrent/ /usr/local/www/rtorrent/docs/

<Directory "/usr/local/www/rtorrent/docs/">

 Allow from all
 AuthName "Enter password for torrent"
 AuthType Basic
 AuthUserFile /usr/local/www/rtorrent/.htpasswd
 require valid-user

</Directory>

Проверяем синтаксис zg# apachectl configtest Syntax OK

Создаём учётку для доступа к торренту zg# htpasswd -c /usr/local/www/rtorrent/.htpasswd torrent New password: Re-type new password: Adding password for user torrent

Применяем настройки апача zg# apachectl graceful

После этого можно заходить на http://ваш_сервер/rtorrent :)Проверка работоспособности