rutorrent는 rtorrent의 webUI GUI frontend이다.
간단하게 토런토 프로그램을 웹서버를 통해 원격에서 볼수있게 해주는 역활을 한다.
rtorrent에서 세션용으로 저장할 디렉토리를 생성해주고
그리고 rtorrent 환경설정 파일에 각종 정보를 수정해 준다.
rutorrent를 설치해서 하는데 영 먼가 안되고 배를 째는데
[링크 : http://code.google.com/p/rutorrent/wiki/WebSERVER ]
[링크 : http://code.google.com/p/rutorrent/wiki/Config ]
[링크 : http://www.howtoforge.com/installing-cherokee-with-php5-and-mysql-support-on-ubuntu-9.04 ] cherokee
간단하게 토런토 프로그램을 웹서버를 통해 원격에서 볼수있게 해주는 역활을 한다.
패키지 설치 및 삭제 $ sudo apt-get remove libxmlrpc-c*
$ sudo apt-get install subversion gcc apache2 curl libcurl4-openssl-dev automake autoconf texinfo libapache2-mod-scgi build-essential libtool openssl libsigc++-2.0-dev libncurses-dev libcppunit-dev php5
xmlrpc-c 다운로드 및 설치(svn)
$ svn co http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
$ cd xmlrpc-c
$ ./configure
$ make
$ sudo make install
왜 하는진 모르겠지만 libxmlrpc 설치
$ sudo apt-get install libxmlrpc-c3-dev
아파치 모듈 삽입
$ sudo a2enmod scgi
아파치 환경설정 추가
$sudo vi /etc/apache2/httpd.conf
SCGIMount /RPC2 127.0.0.1:5000
아파치 재시작
[링크 : http://s990we.com/wordpress/2010/10/install-xmlrpc-c-libtorrent-rtorrent-and-rutorrent-from-svn-2/ ] $ sudo service apache2 restart rtorrent 및 php5-cgi 설치 $ sudo apt-get install rtorrent php5-cgi 데몬을 위한 screen 프로그램 설치 $ sudo apt-get install screen |
rtorrent에서 세션용으로 저장할 디렉토리를 생성해주고
$ cd ~ $ mkdir .rtsession |
그리고 rtorrent 환경설정 파일에 각종 정보를 수정해 준다.
$ cat .rtorrent.rc
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.
# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100
# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50
# Maximum number of simultanious uploads per torrent.
#max_uploads = 15
# Global upload and download rate in KiB. "0" for unlimited.
#download_rate = 0
#upload_rate = 0
# Default directory to save the downloaded torrents.
directory = /home/minimonk/다운로드
# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/minimonk/.rtsession
scgi_port = localhost:5000
# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=
# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M
# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"
# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no
# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no
# Port range to use for listening.
#port_range = 6890-6999
# Start opening ports at a random position within the port range.
#port_random = no
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no
# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes
# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext
# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
# dht = auto
# UDP port to use for DHT.
#
# dht_port = 6881
# Enable peer exchange (for torrents not marked private)
#
# peer_exchange = yes
#
# Do not modify the following parameters unless you know what you're doing.
#
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10
# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100
# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10 |
rutorrent를 설치해서 하는데 영 먼가 안되고 배를 째는데
[22.03.2011 17:42:45] WebUI started.
[22.03.2011 17:42:45] JS error: [http://cinemaverite.net/rutorrent/ : 1] Uncaught SyntaxError: Unexpected token <
[22.03.2011 17:42:45] Bad response from server: (200 [parsererror,getuisettings]) <?php require_once( 'util.php' ); $s = @file_get_contents(getSettingsPath()."/uisettings.json"); if($s==false) $s = '{}'; if(!ini_get("zlib.output_compression")) header("Content-Length: ".strlen($s)); header("Content-Type: application/json; charset=UTF-8"); echo $s; ?>
|
혹시나 해서 json이 문제인가 해서 php5-json을 해보니 php5-common으로 이미 설치 된 녀석이고
php5-cgi를 설치하고 나니 문제가 없이 되는 듯한 느낌..
그리고 그냥 실행하면 접속할 수 없다고 포트번호 확인하라는데
콘솔하나 열고 그냥 rtorrent 실행하면 문제없이 작동한다(보기에는 그렇지만)
서비스용 데몬 스크립트를 일단 똭~
사용자 계정만 수정해주고 rtorrent 환경파일만 수정해주면 될 듯?
(아직까지 데몬 스크립트는 실행이 안됨 ㅠ.ㅠ)
[링크 : http://code.google.com/p/rutorrent/wiki/Installation ]php5-cgi를 설치하고 나니 문제가 없이 되는 듯한 느낌..
그리고 그냥 실행하면 접속할 수 없다고 포트번호 확인하라는데
콘솔하나 열고 그냥 rtorrent 실행하면 문제없이 작동한다(보기에는 그렇지만)
서비스용 데몬 스크립트를 일단 똭~
사용자 계정만 수정해주고 rtorrent 환경파일만 수정해주면 될 듯?
(아직까지 데몬 스크립트는 실행이 안됨 ㅠ.ㅠ)
#!/bin/bash
#############
###<Notes>###
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using absolute paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
###</Notes>###
##############
#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whatever reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename
# for the one you used. note the space after the ".".
# . /etc/rtorrent.init.conf
#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as (can only use one)
user="minimonk"
# system user to run as # not implemented, see d_start for beginning implementation
# group=$(id -ng "$user")
# the full path to the filename where you store your rtorrent configuration
# must keep parentheses around the entire statement, quotations around each config file
#config=("$(su -c 'echo $HOME' $user)/.rtorrent.rc")
# Examples:
config=("/home/minimonk/.rtorrent.rc")
# config=("/home/user/.rtorrent.rc" "/mnt/some/drive/.rtorrent2.rc")
# config=("/home/user/.rtorrent.rc"
# "/mnt/some/drive/.rtorrent2.rc"
# "/mnt/another/drive/.rtorrent3.rc")
# set of options to run with each instance, separated by a new line
# must keep parentheses around the entire statement
#if no special options, specify with: ""
options=("")
# Examples:
# starts one instance, sourcing both .rtorrent.rc and .rtorrent2.rc
# options=("-o import=~/.rtorrent2.rc")
# starts two instances, ignoring .rtorrent.rc for both, and using
# .rtorrent2.rc for the first, and .rtorrent3.rc for the second
# we do not check for valid options
# options=("-n -o import=~/.rtorrent2.rc" "-n -o import=~/rtorrent3.rc")
# default directory for screen, needs to be an absolute path
base=$(su -c 'echo $HOME' $user)
# name of screen session
srnname="rtorrent"
# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME
checkcnfg() {
exists=0
for i in `echo "$PATH" | tr ':' '\n'` ; do
if [ -f $i/$NAME ] ; then
exists=1
break
fi
done
if [ $exists -eq 0 ] ; then
echo "cannot find $NAME binary in PATH: $PATH" | tee -a "$logfile" >&2
exit 3
fi
for (( i=0 ; i < ${#config[@]} ; i++ )) ; do
if ! [ -r "${config[i]}" ] ; then
echo "cannot find readable config ${config[i]}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
exit 3
fi
session=$(getsession "${config[i]}")
if ! [ -d "${session}" ] ; then
echo "cannot find readable session directory ${session} from config ${config[i]}. check permissions" | tee -a "$logfile" >&2
exit 3
fi
done
}
d_start() {
[ -d "${base}" ] && cd "${base}"
stty stop undef && stty start undef
#su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
su -c "screen -S "${srnname}" -X screen rtorrent ${options} " ${user} | tee -a "$logfile" >&2
# this works for the screen command, but starting rtorrent below adopts screen session gid
# even if it is not the screen session we started (e.g. running under an undesirable gid
#su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
for (( i=0 ; i < ${#options[@]} ; i++ )) ; do
sleep 3
#su -c "screen -S "${srnname}" -X screen rtorrent ${options[i]} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
su -c "screen -S "${srnname}" -X screen rtorrent ${options[i]} " ${user} | tee -a "$logfile" >&2
done
}
d_stop() {
for (( i=0 ; i < ${#config[@]} ; i++ )) ; do
session=$(getsession "${config[i]}")
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=$(cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g")
# make sure the pid doesn't belong to another process
if ps -A | grep -sq ${pid}.*rtorrent ; then
kill -s INT ${pid}
fi
done
}
getsession() {
session=$(cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" )
#session=${session/#~/`getent passwd ${user}|cut -d: -f6`}
echo $session
}
checkcnfg
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
[링크 : http://ubuntuforums.org/showthread.php?t=859543] |
[링크 : http://code.google.com/p/rutorrent/wiki/WebSERVER ]
[링크 : http://code.google.com/p/rutorrent/wiki/Config ]
[링크 : http://www.howtoforge.com/installing-cherokee-with-php5-and-mysql-support-on-ubuntu-9.04 ] cherokee
'Linux > Ubuntu' 카테고리의 다른 글
unzip시 한글 깨짐 문제 (0) | 2012.06.08 |
---|---|
우분투 자동 마운트(외장 USB HDD)시 700 퍼미션 문제 (2) | 2012.06.07 |
ubuntu 12.10 에서 모니터 없이 부팅시키기 (0) | 2012.06.02 |
cannot open shared object file: No such file or directory (1) | 2012.06.02 |
cuda 4.2 linux (0) | 2012.06.02 |