Для начала установим rtorrent (/usr/ports/net-p2p/rtorrent)
# cd /usr/ports/net-p2p/rtorrent
# make install cleanВключаем поддержку XMLRPC:

Далее устанавливаем lighttpd (/usr/ports/www/lighttpd)
Включаем поддержку SPAWNFCGI:

Далее ставим php5 (/usr/ports/lang/php5)
Отмечаем GCI и SUHOSIN:

Редактируем /usr/local/etc/lighttpd.conf
Раскоментируем модули: "mod_access", "mod_auth", "mod_fastcgi", "mod_scgi", "mod_accesslog"
server.modules = (
"mod_access",
"mod_auth",
"mod_scgi",
"mod_fastcgi",
"mod_accesslog" ) Проверяем чтоб были записи:
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi"
)
)
)Добавляем в конец файла
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable",
"disable-time" => 0
)
)
) Добавляем lighttpd_enable="YES" в /etc/rc.conf и запускаем lighttpd
# echo 'lighttpd_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/lighttpd startПереходим в /usr/local/www/data и создаем там файл test.php содержанием:
<?php
phpinfo();
?>Далее в браузере набираем ip_сервера/test.php
Результат должен быть примерно таким:
Устанавливаем screen:
# cd /usr/ports/sysutils/screen
# make install cleanТеперь переходим в директорию /usr/local/etc/rc.d и создаем там файл rtorrent.rc содержанием:
#!/bin/sh
# PROVIDE: rtorrentd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="rtorrentd"
rcvar=`set_rcvar`
load_rc_config $name
rtorrentd_enable=${rtorrentd_enable:-"NO"}
rtorrentd_user=${rtorrentd_user:-""}
rtorrentd_args=${rtorrentd_args:-""}
start_cmd="${name}_start"
stop_cmd="${name}_stop"
rtorrentd_start()
{
su ${rtorrentd_user} -c '/usr/local/bin/screen -m -d -S rtorrent /usr/local/bin/rtorrent'
echo "Starting ${name}."
}
rtorrentd_stop()
{
killall rtorrent
echo "Stopping ${name}."
}
run_rc_command "$1" Даем права на исполнение:
# chmod +x rtorrent.rcДалее редактируем /etc/rc.conf:
rtorrentd_enable="YES"
rtorrentd_user="p2p" В моем примере используется пользователь p2p,
Можно конечно запускать торрент от своего пользователя но я считаю что в этом нет необходимости,
поэтому создаем пользователя p2p с группой p2p, шелом /bin/sh и домашней директорией /home/p2p
# adduser p2p
-------------------
# pw user show p2p
p2p:*:1002:1002::0:0:User &:/home/p2p:/bin/sh создаем директорию где будут храниться скаченные файлы, и делаем еще одну директорию для сессий
потом задаем права:
# mkdir /usr/local/smb/torrents
# mkdir /usr/local/smb/torrents/sess
# chown -R p2p:p2p /usr/local/smb/torrentsДалее создаем файл конфигурации .rtorrent.rc в корневой директории пользователя от имени которого мы запускаем rtorrent:
# cat /home/p2p/.rtorrent.rc
scgi_port = 127.0.0.1:5000
encoding_list = UTF-8
min_peers = 20
max_peers = 30
max_uploads = 20
download_rate = 256
upload_rate = 40
directory = /usr/local/smb/torrents
session = /usr/local/smb/torrents/sess
port_range = 40890-40890
port_random = no
check_hash = yes
session_save = yes
encryption = allow_incoming,enable_retry,prefer_plaintext пробуем запустить rtorrent:
# /usr/local/etc/rc.d/rtorrent.rc start
Starting rtorrentd.
# ps ax | grep screen
1785 ?? Ss 0:00,01 /usr/local/bin/screen -m -d -S rtorrent /usr/local/bin/rtorrent Теперь надо
скачать веб-интерфейс (rutorrent)
нам нужен файл "ruTorrent core files" (rutorrent-3.1.tar.gz) (На момент написании статьи версия 3.1)
После этого распакуем содержимое архива например в /usr/local/www/data/rutorrent
и назначим права:
# cd /usr/local/www/data/rutorrent
# chown -R www:www ../
# chmod -R 777 shareЕсли вам нужна авторизация на веб интерфейс то делаем вот что:
Добавляем в конец lighttpd.conf:
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/usr/local/etc/htpasswd"
auth.require = ( "/" =>
(
"method" => "basic",
"realm" => "Privat zone",
"require" => "valid-user"
)
)В состав lighttpd не входит генератор htpasswd, поэтому можно сгенерить файл на другой машине или найти в гугле htpasswd generator.
В итоге файл вида user:hash должен находиться в /usr/local/etc/htpasswd (в данном случае) и иметь права 400
Теперь можно настроить виртуальный хост для нашего веб-интерфейса:
Добавляем в конец lighttpd строки и перезапускаем его:
$HTTP["host"] == "nas.soho" {
server.document-root = "/usr/local/www/data/rutorrent/"
}Проверим результат:
Основная настройка оконченна, теперь можно перейти к плагинам.

Плагины устанавливаются достаточно просто:
Достаточно распаковать архив в директорию plugins и обновить страницу с веб-интерфейсом в браузере.
Наиболее интересные плагины это: _getdir и diskspace
_getdir позволяет указать директорию для загрузки контента:

diskspace показывает свободное дисковое пространство:

Вот собственно и все, удачной настройки.