星期一, 7月 26, 2010

rTorrent + Rutorrent 安裝- 多使用者環境

租 seedbox 經常會遇到有共用的情況,

如果兩個使用者同時都要用 rtorrent+ rutorrent 的話要如何設定呢?

下面說明下要如何設定才能多個使用者共用

簡單說下其實就是要有不同的 ~/.rtorrent.rc, /etc/init.d/rtorrent.sh, /var/www/rutorrent 還有要修改 /etc/lighttpd/lighttpd.conf

下面的情況假設已經有了一個使用者 snowwolf725,

我們希望增加另一個使用者 useradmin 的情況

(1) 切換身份成為 root

su root

(2) 複製 .rtorrent.rc 的設定檔並修改

cp /home/snowwolf725/.rtorrent.rc /home/useradmin/.rtorrent.rc

vi /home/useradmin/.rtorrent.rc

主要要修改下面幾項資訊

=====================

# 存放下載檔案的路徑
directory = /home/useradmin/data
# rtorrent 的工作目錄
session = /home/useradmin/session

# 每五分鐘查看特定目錄並下載新的種子
schedule = watch_directory,5,5,load_start=/home/useradmin/watch/*.torrent

# DHT 的 port, 不能跟之前的使用者相同
dht_port = 19001

# scgi 的 socket 檔案要不同,這邊用 rpc2.socket 後面幾個檔案也要一致

scgi_local = /tmp/rpc2.socket
schedule = chmod,0,0,"execute=chmod,777,/tmp/rpc2.socket"
=====================

(2) 複製 /etc/init.d/rtorrent.sh 的設定檔並修改

cp -a /etc/init.d/rtorrent.sh /etc/init.d/rtorrent2.sh

vi /etc/init.d/rtorrent2.sh

把所有 snowwolf725 的字串取代成 useradmin

(3) 複製 /var/www/rutorrent 並修改

cp –a /var/www/rutorrent /var/www/rutorrent2

vi /var/www/rutorrent2/conf/config.php

主要要修改下面幾項資訊

====================

$XMLRPCMountPoint = "/RPC3";

$scgi_host = "unix:///tmp/rpc2.socket";

====================

(4) 修改 /etc/lighttpd/lighttpd.conf

vi /etc/lighttpd/lighttpd.conf

找到

=======================

scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/tmp/rpc.socket",
"check-local" => "disable",
"disable-time" => 0, # don't disable scgi if connection fails
)
)
)

=======================

改成

=======================

scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/tmp/rpc.socket",
"check-local" => "disable",
"disable-time" => 0, # don't disable scgi if connection fails
)
),

"/RPC3" =>
( "127.0.0.1" =>
(
"socket" => "/tmp/rpc2.socket",
"check-local" => "disable",
"disable-time" => 0, # don't disable scgi if connection fails
)
)

)

=======================

要注意小括號的數目,及 "/RPC3" 前面有個逗點…

(5) 測試

/etc/init.d/rtorrent.sh start

/etc/init.d/rtorrent2.sh start

/etc/init.d/lighttpd force-reload

開啟瀏覽器分別輸入 http://你的ip/rtorrent/ 和 http://你的ip/rtorrent2/

並且分別上傳不同的種子,

成功的話應該就可以在兩邊看到不同的種子正在下載中了

rTorrent + Rutorrent 安裝- RUtorrent 部份

接續前一篇安裝 rtorrent 的部份,

接下來安裝 Web UI 的部份

(1) rtorrent 的設定檔(~/.rtorrent.rc)中加入下面這兩行
scgi_local = /tmp/rpc.socket
schedule = chmod,0,0,"execute=chmod,777,/tmp/rpc.socket"

(2) 切換成 root

su root

(3) 修改 /etc/lighttpd/lighttpd.conf

vi /etc/lighttpd/lighttpd.conf

將檔案內容改成下面這樣, 比較要修改的是 IP 和主機名稱

=====================

server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_scgi",
"mod_fastcgi"
)
server.document-root = "/var/www/"
server.errorlog = "/var/log/lighttpd/error.log"
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
accesslog.filename = "/var/log/lighttpd/access.log"
url.access-deny = ( "~", ".inc",".db", ".tpl.php", ".cls.php" )
server.pid-file = "/var/run/lighttpd.pid"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
server.username = "www-data"
server.groupname = "www-data"
$HTTP["remoteip"] =~ "127.0.0.1" {
alias.url += (
"/doc/" => "/usr/share/doc/",
"/images/" => "/usr/share/images/"
)
$HTTP["url"] =~ "^/doc/|^/images/" {
dir-listing.activate = "enable"
}
}
$HTTP["host"] == "ks0000.kimsufi.com" {
server.document-root = "/var/www/"
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"
server.error-handler-404 = "/error-handler.php"
}
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)))

scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"socket" => "/tmp/rpc.socket",
"check-local" => "disable",
"disable-time" => 0, # don't disable scgi if connection fails
)
)
)

=====================

(4) 安裝 rutorrent

cd /var/www/

wget http://rutorrent.googlecode.com/files/rutorrent-3.1.tar.gz

tar zxfv rutorrent-3.1.tar.gz

cd rutorrent/

wget http://rutorrent.googlecode.com/files/plugins-3.1.tar.gz
tar zxfv plugins-3.1.tar.gz

(5) 修改 config.php

vi conf/config.php

找到下面兩行

==============

$scgi_port = 5000;
$scgi_host = "127.0.0.1";

==============

改成

==============

$scgi_port = 0;
$scgi_host = "unix:///tmp/rpc.socket";

==============

(6) 設定權限

chown –R www-data:www-data /var/www/rutorrent/

(7) 測試

啟動 rtorrent

/etc/init.d/rtorrent.sh restart

打開瀏覽器輸入 http://你的主機ip/rutorrent/

成功應該會看到下面的畫面

image

rTorrent + Rutorrent 安裝- Rtorrent 部份(with IPv6)

這篇是關於 rtorrent + rutorrent 安裝的教學如果只安裝 rtorrent,
你可以參考下面的文章安裝會比較簡單:
http://snowwolf725.blogspot.com/2009/11/rtorrent.html
舊的 rtorrent + wtorrent 安裝文章過時了,
今天剛好重裝系統所以重寫一篇讓自己下次安裝時可以參考,
本文章安裝方式參考下面這篇文章,
http://filesharefreak.com/2010/02/13/how-to-install-rtorrent-rutorrent-using-socket-ssl-authentication-on-ubuntu-or-debian/
其實只能算是該篇文章的部份中譯, 並補上 IPv6 的支援,
IPv6 部份參考
http://libtorrent.rakshasa.no/ticket/1111
http://ihipop.info/2010/08/1363.html
(1) 先連上 SSH 並以 root 的身份開始進行安裝
su root
(2) 更新 apt 資料庫
apt-get update
(3) 安裝相依套件
apt-get install -y build-essential pkg-config libcurl4-openssl-dev libsigc++-2.0-dev libncurses5-dev lighttpd screen subversion libterm-readline-gnu-perl php5-cgi apache2-utils php5-curl curl php5-cli
(3) 安裝 libtorrent
cd ~
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
wget http://home.samfundet.no/~sesse/libtorrent-0.12.6-ipv6-07.patch
patch -p1 < libtorrent-0.12.6-ipv6-07.patch
========================
修改 libtorrent 程式碼
libtorrent-0.12.6/rak/string_manip.h
第186行:由
  return 'A' + v - 0xA;
改為
  return 'a' + v - 0xA;
========================
./configure --enable-ipv6
make
make install
(4) 安裝 XMLRPC-C
cd ~
svn checkout http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable xmlrpc-c
cd xmlrpc-c/
./configure
make
make install
(5) 安裝 rTorrent:
cd ~
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
wget http://home.samfundet.no/~sesse/rtorrent-0.8.6-ipv6-07.patch
patch -p1 < rtorrent-0.8.6-ipv6-07.patch
./configure --with-xmlrpc-c --enable-ipv6
make
make install

(6) 接下來為了讓 rtorrent 能夠開機就自動執行,需要作下面的動作
vim /etc/init.d/rtorrent.sh

將下面的文字寫到 /etc/init.d/rtorrent.sh 將 snowwolf725 改成你自己的使用者 ID


===========================


#!/bin/sh
case "$1" in
start)

echo -n "Starting rtorrent"
su - snowwolf725 -c "screen -A -m -d -S rtorrent /usr/local/bin/rtorrent" &
echo "."
;;

stop)
echo -n "Stopping rtorrent"
ppid=`ps ax | grep "/usr/local/bin/rtorrent" | grep -v grep | grep -v screen | awk '{ print $1 }'`
kill ${ppid}
rm /tmp/rpc.socket
echo "."
;;


restart)
echo -n "Restarting rtorrent"
ppid=`ps ax | grep "/usr/local/bin/rtorrent" | grep -v grep | grep -v screen | awk '{ print $1 }'`
kill ${ppid}
rm /tmp/rpc.socket
sleep 1
su - snowwolf725 -c "screen -A -m -d -S rtorrent /usr/local/bin/rtorrent" &
echo "."
;;

*)
echo "Usage: {start|stop|restart}" >&2
exit 1
;;
esac
exit 0

==============================


讓該檔案變成可以執行


chmod +x /etc/init.d/rtorrent.sh


(7)換成一般使用者的身份, 這裡的 snowwolf725 要換成你自己的使用者名稱, 要先更新函式庫 cache


ldconfig


su snowwolf725


cd ~


(8) 設定 rTorrent


vim .rtorrent.rc

依照下面的設定檔改成自己可以用的設定檔#開頭的那幾行是註解可以不用打, vim 有分編輯模式和命令模式,一開始進入是命令模式,按 i 或是 a 可以進入編輯模式打字,按 ESC 可以離開編輯模式回到命令模式,輸入 [:w](不包涵中括號,即冒號和w) 然後按下 Enter 可以寫入檔案,[:q!] 按下Enter 可以離開畫面, 其實檔案可以先打好命名成 .rtorrent.rc 利用 PPutty (不是putty)上傳到主機就可以了(上傳方法是開啟 pputty 並登入然後將檔案拖曳到 pputty,會詢問你帳號密碼傳完預設在家目錄下面)


主要需要修改的是


各個 rtorrent 的目錄


===================================


# 最大最小連接數
min_peers = 50
max_peers = 100

# 最大最小連接數(對於已經完成下載的種子)
min_peers_seed = 10
max_peers_seed = 100

# 最大同時上傳的連接數
max_uploads = 50

# 檔案名稱編碼
encoding_list = UTF-8

# 上下傳 ratio (0表示不限)
download_rate = 0
upload_rate = 0

# 存放下載檔案的路徑
directory = /home/snowwolf725/data

# rtorrent 的工作目錄
session = /home/snowwolf725/session

# 每五分鐘查看特定目錄並下載新的種子
schedule = watch_directory,5,5,load_start=/home/snowwolf725/watch/*.torrent

# Server 的 IP 和 Domain name (IPv6 不能綁 IPv4 的 address)
# ip = 1.2.3.4
# ip = ks00000.kimsufi.com
# bind = 1.2.3.4

# rtoreent 所使用的 port
port_range = 49152-65535

# 是否使用 udp 的 Tracker
use_udp_trackers = yes

# 連線加密(允許加密連線連入,但預設使用未加密連線)
encryption = allow_incoming,enable_retry,prefer_plaintext

# 依照種子設定決定是否開啟 DHT
dht = auto

# DHT 的 port
dht_port = 19000

# 是否開啟 peer exchange 功能(開啟)
peer_exchange = yes

umask = 0000
on_erase = rm_complete,"execute=rm,-rf,$d.get_base_path="
schedule = low_diskspace,5,5,close_low_diskspace=100M

# 不作 hash 檢查檔案完整性
check_hash = no

==============================


(9) 測試 rtorrent


執行 rtorrent


這樣就完成了, 按 Ctrl+q 可以離開 rtorrent


image

星期三, 7月 07, 2010

A60 2.1 Root 教學

這篇文張過時了,

新的方法在手機安裝 Universal Root 就輕鬆取得 root 權限

http://blog.23corner.com/2010/08/04/%E5%A4%8F%E6%97%A5-android-%E5%B0%8F%E5%93%81-%E6%8C%89%E4%B8%80%E4%B8%8B-root-%E6%89%8B%E6%A9%9F-universalandroot/

=================

The English version of this article is available here:

http://android-dls.com/wiki/index.php?title=Android_FAQ#Q:_How_do_I_get_root_on_this_device.3F_2

最近苦等威寶 A688 的 2.1 版 Rom,

結果反而是對岸的首派 A60 2.1 測試版的 Rom 先出來了,

昨天放出來後我也把我的 A688 刷成 A60 2.1 的 Rom,

結果發現原本 Root 的方式失效了,

雖然能夠進到 FTM 模式可是無法安裝驅動程式,

所以只好繞道暫時先用 fastboot 刷機的方式把手機 root 了,

下面是 Root 的步驟:

1. 手機關機,然後拔掉 usb 連接線, 同時按住[音量減少按鍵]+[掛號鍵]+[電源鍵] 開機

2. 成功的話手機會開機並且在左上角有顯示 enter fastboot mode, 這時就可以把 usb 連接線接上了

3. 從下面的連結下載 A688_Tools 及 A60_Superboot.img

http://www.megaupload.com/?d=51O0OM4A A688_Tools

http://www.megaupload.com/?d=OMY63CBN A60 Hipi2_1_1 SuperBoot (Root)

4. 解開 A688_Tools 到電腦上任意資料夾中, 並且把 A60_Superboot.img 放到解開的 A688_Tools 資料夾內

5. 執行 dos_console.bat 開啟 dost 視窗

6. 輸入 fastboot getvar version 並按下 Enter 鍵測試連線是否正常, 正常情況下會出現 version: 0.5

7. 輸入 fastboot flash boot A60_Superboot.img 並按下 Enter 鍵, 把 boot 開機檔案換成特製的檔案

8. 輸入 fastboot reboot 並按下 Enter 鍵, 把手機重開詳細過程看下面的圖示

image

9. 開機完後, 進到程式區中會看到最右上角多出個 Superuser Permissions 的圖示, 如果有就是成功 root 了

image

PS. 進行上面的過程會將 boot 區換成特製的 rom , 對開機並不影響還是能夠正常開機, 如果有潔癖的可以仿照上面的過程將 boot 區刷回原本的 boot

PS2. 其實應該是 fastboot boot A60_Superboot.img 就可以了, 可是新版的 appbootsbl 被換掉了, 所以輸入 fastboot boot xxx.img 並不會以 xxx.img 開機, 而是使用 boot 分割區進行開機

PS3. 這次首派放出的是測試版還是有些問題沒有解決像是 GPS 有問題, 還有這次的 Rom 中並不含 GMS , 也就是 Google 相關的應用程式都沒有包含 market

PS4. 在這裡順便感謝某位不具名的大大幫忙測試和提供幫助^_^