Установка 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 :)Проверка работоспособности