Установка rtorrent + rutorrent (web-интерфейс) на ubuntu server

Опубликовано: 11.01.2012 Автор: ёжик в апельсинах

Как-то давно, еще, вроде бы, на ubuntu 9.04 настраивал rTorrent с веб интерфейсом для него. Потом как-то так случилось, что работать он перестал, а после переустановки ни один мануал настроить правильно мне его не помог (то ли лень было разбираться в настройках, то ли настройки эти выше моего интеллекта).

Решить проблему мне помог товарищ Aluminium//titan с форума forum.ubuntu.ru, который написал скрипт автоматической установки rTorrent и веб интерфейса для него (ruTorrent). Его я ниже я привожу оригинальный текст поста с форума.

 


Наваял скрипт автоматической установки rTorrent клиента с веб-интерейсом из исходников.

Обязательно необходимо наличие интернет соединения, т.к. все пакеты для установки будут скачиваться из инета.

Итак начнем:

1. создадим новый файл и обзовем его, к примеру, rtorrent_installer.sh
поместим внутрь следующее:

#!/bin/sh

apt-get update && apt-get -y install apache2 php5 php5-cgi php5-cli libapache2-mod-php5 php5-common php5-xmlrpc php5-curl libapache2-mod-scgi curl checkinstall subversion build-essential make autoconf autotools-dev automake libcurl4-openssl-dev libtool libsigc++-2.0-dev pkg-config libncurses5-dev libcppunit-dev screen

mkdir -m 777 $HOME/source_rtorrent

source_dir=$HOME/source_rtorrent

cat << EOF >> /etc/apache2/sites-available/default

<VirtualHost *:80>
ServerName * 
ServerAdmin rutorrent@localhost 
DocumentRoot /var/www/rutorrent 
ServerPath /var/www/rutorrent 
        <Directory /var/www/rutorrent/> 
                Options Indexes FollowSymLinks MultiViews 
                AllowOverride All 
        </Directory> 
ErrorLog /var/log/apache2/www.rutorrent.log 
CustomLog /var/log/apache2/www.rutorrent.log common 
</VirtualHost> 
EOF

echo "SCGIMount /RPC2 127.0.0.1:5000" >> /etc/apache2/httpd.conf
a2dissite default
a2ensite default
a2enmod scgi
/etc/init.d/apache2 restart

cd $source_dir
wget -P $source_dir http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz && tar -vxzf libtorrent-0.12.6.tar.gz
wget -P $source_dir http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz && tar -vxzf rtorrent-0.8.6.tar.gz

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced $source_dir/xmlrpc-c
cd $source_dir/xmlrpc-c
./configure --prefix=/usr
make
make install

cd $source_dir/libtorrent-0.12.6
./configure --prefix=/usr
make
make install

cd $source_dir/rtorrent-0.8.6
./autogen.sh
./configure --with-xmlrpc-c --prefix=/usr
make
make install

cd /var/www
svn co http://rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/create
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/diskspace
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/edit
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/erasedata
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/retrackers
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn co http://rutorrent.googlecode.com/svn/trunk/plugins/trafic
chown -R root\: /var/www/rutorrent
chmod -R 777 /var/www/rutorrent

echo "Будете ли вы использовать удаленный доступ к веб-интерфейсу?"
remote_read() {
   echo -n "Введите y/n: "
   remote_check
}
remote_yes() {
cat << EOF > /var/www/rutorrent/.htaccess
order allow,deny
allow from all

AuthUserFile /var/www/rutorrent/.htpasswd
AuthGroupFile /dev/null
AuthName "Please auth"
AuthType Basic
require valid-user

Satisfy all
EOF
}
remote_no() {
cat << EOF > /var/www/rutorrent/.htaccess
order deny,allow
deny from all
allow from 127.0.0.1
EOF
}
remote_check() {
   read ans_remote
   case $ans_remote in
      y) remote_yes
      ;;
      n) remote_no
      ;;
      *) remote_read
      ;;
   esac
}
remote_read

if [ "$ans_remote" = "y" ]; then
   echo "\nДоступ к веб-интерфейсу rutorrent будет осуществляться по логину и паролю."
   htuser_read() {
      echo -n "Введите логин пользователя: "
      htuser_check
   }
   htuser_check() {
      read htuser
      if [ -z $htuser ]; then
         htuser_read
      fi
   }
   htuser_read

   htpass_read() {
      echo -n "Введите пароль пользователя:"
      htpass_check
   }
   htpass_check() {
      stty -echo
      read htpass
      stty echo
      echo ""
      if [ -z $htpass ]; then
         htpass_read
      fi
   }
   htpass_read

   htpasswd -cbs /var/www/rutorrent/.htpasswd $htuser $htpass
fi

down_dir_read() {
   echo -n "Укажите папку для закачек: "
   down_dir_check
}
down_dir_check() {
   read down_dir
   if [ -z $down_dir ]; then
      down_dir_read
   fi
}
down_dir_read

mkdir -m 777 -p $down_dir
mkdir -m 777 -p $HOME/rtorrent/session

cat << EOF > $HOME/.rtorrent.rc
port_range = 6881-6991
port_random = no
check_hash = no
directory = $down_dir
session = $HOME/rtorrent/session
http_proxy =
encryption = allow_incoming,enable_retry
upload_rate = 0
download_rate = 0
min_peers = 1
max_peers = 200
min_peers_seed = 1
max_peers_seed = 200
max_uploads = 400
max_uploads_div = 0
max_downloads_div = 0
max_uploads_global = 1000
max_downloads_global = 1000
enable_trackers = yes
max_file_size = -1
use_udp_trackers = yes
dht = auto
dht_port = 6881
scgi_port = 127.0.0.1:5000
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php tom &}
EOF


if [ "$ans_remote" = "y" ]; then
cat << EOF > /etc/init.d/rtorrent
#!/bin/sh

ans=\$1
case \$ans in
start)
   /etc/init.d/rtorrentd
;;
stop)
   killall -w rtorrent
;;
status)
   ps -AF | grep --color=always rtorrent | grep -v grep
;;
adduser)
   while [ -z \`echo \$htuser\` ]; do
      echo -n "Введите логин пользователя:"
      read htuser
      echo ""
   done

   while [ -z \`echo \$htpass\` ]; do
      echo -n "Введите пароль пользователя:"
      stty -echo
      read htpass
      stty echo
      echo ""
   done

   htpasswd -bs /var/www/rutorrent/.htpasswd \$htuser \$htpass
;;
restart)
   kill \`screen -ls | grep rtorrent | awk -F. '{print \$1}'\` > /dev/null 2>&1 && /etc/init.d/rtorrentd
;;
*)
   echo "Usage: /etc/init.d/rtorrent {start|stop|restart|status|adduser}"
   exit 1
;;
esac
EOF
else
cat << EOF > /etc/init.d/rtorrent
#!/bin/sh

ans=\$1
case \$ans in
start)
   /etc/init.d/rtorrentd
;;
stop)
   killall -w rtorrent
;;
status)
   ps -AF | grep --color=always rtorrent | grep -v grep
;;
restart)
   kill \`screen -ls | grep rtorrent | awk -F. '{print \$1}'\` > /dev/null 2>&1 && /etc/init.d/rtorrentd
;;
*)
   echo "Usage: /etc/init.d/rtorrent {start|stop|restart|status}"
   exit 1
;;
esac
EOF
fi

cat << EOF > /etc/init.d/rtorrentd
#!/bin/sh
screen -A -m -d -S rtorrent /usr/bin/rtorrent -n -o import=$HOME/.rtorrent.rc
EOF

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

echo "Запускать rtorrent при запуске системы?"
readans2() {
   echo -n "Введите y/n: "
   ans2_check
}
ans2_yes() {
   ln -s /etc/init.d/rtorrentd /etc/rc2.d/S98rtorrentd
}
ans2_no() {
   echo ""
}
ans2_check() {
   read ans2
   case $ans2 in
      y)
         ans2_yes
      ;;
      n)
         ans2_no
      ;;
      *)
         readans2
      ;;
   esac
}
readans2

/etc/init.d/rtorrentd

сделаем файл исполняемым

sudo chmod +x rtorrent_installer.sh

2. запускаем инсталляцию

sudo ./rtorrent_installer.sh

и теперь ждем доволно долгий процесс скачивания, компиляции, установки...

3. теперь примем решение, будем ли мы удаленно управлять нашим торрент-клиентом или нам это не интересно и мы будем только из дому с ним работать

4. если на предидущий вопрос мы ответили утвердительно, то доступ к веб-интерфейсу управления торрент-клиентом будет запаролен, поэтому на запрос логина вводим логин, на запрос пароля вводим пароль (при вводе символы на экране не отображаются)

5. указываем папку куда по-умолчанию сохранять закачки

6. теперь нужно ответить на вопрос хотим ли мы автоматически запускать торрент-клиент при запуске системы или нет

7. теперь можно зайти на веб-интерфейс http://localhost/rutorrent и если в логе вы не увидели ни одной ошибки как на скрине ниже, значит все работает как надо!

УРА!!! Happy End!

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

для управления запуском/остановкой и т.д. используйте

/etc/init.d/rtorrent {start|stop|restart|status|adduser}

взято тут: http://forum.ubuntu.ru/index.php?topic=134258.0

Просмотров: 9896