ВНИМАНИЕ! Данная статья предполагает, что у Вас уже установлен и настроен 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"} : ${rtorrent_autoload_dir=""} command="/usr/local/bin/rtorrent" screen="/usr/local/bin/screen" rtorrent_args="-d ${rtorrent_downloads} -s ${rtorrent_sessions} ${rtorrent_args}" [ -n "${rtorrent_autoload_dir}" ] && rtorrent_args="-O schedule='watch_directory,5,5,load_start=${rtorrent_autoload_dir}' ${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 :)