LINUX.ORG.RU

настройка rtpg (доступ с другого компьютера)


0

0

Настраиваю rtpg http://rtpg.uvw.ru/ отличный фейс, работает, все устраивает, но вот беда, к нему не удается подключаться с работы. По инструкции rtpg настраивается через виртуальный сервер, в папке есть пример конфига - rtpg.apache.conf который кидается в /etc/apache2/sites-available/. Для локального подключения достаточно в браузере набрать rtpg, чего нельзя сделать с других компьютеров. Нехватает познаний apache, да и не охота с ним разбираться, может кто для себя уже готовое решение сделал.

То, что есть сейчас:

aptitude install -R screen librpc-xml-perl libjson-xs-perl libjs-jquery libtemplate-perl apache2
wget -rnp http://svn.uvw.ru/rtpg/tags/0.1.0/
mv /home/dmitry/Downloads/svn.uvw.ru/rtpg/tags/0.1.0 /var/www/rtpg/
cp /usr/share/javascript/jquery/jquery.js /var/www/rtpg/js/

Для полного счастья нехватает привычного конфига апача без виртуального сервера, как сделано в других подобных приложениях.

rtpg.apache.conf выглядит так:

# NameVirtualHost *:80 # this record exists in /etc/apache2/ports.conf
# by default (Debian system)

<VirtualHost *:80>
ServerName rtpg
DocumentRoot /usr/share/rtpg-www/

AddHandler cgi-script .cgi
SetEnv RTPG_CONFIG /etc/rtpg/rtpg.conf
<Directory /usr/share/rtpg-www/>
DirectoryIndex index.cgi
Options FollowSymLinks ExecCGI
AddDefaultCharSet utf-8
AllowOverride All

Order deny,allow
allow from 127.0.0.1
deny from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName rtpg-scgi.localhost
SCGIMount /RPC2 127.0.0.1:5000

<Location /RPC2>
Order deny,allow
allow from 127.0.0.1
deny from all
</Location>
</VirtualHost>


> Для локального подключения достаточно в браузере набрать rtpg, чего нельзя сделать с других компьютеров.

Укажи другим компьютерам, что имя rtpg соответствует твоей машине. Это делается через /etc/hosts. Кстати, в винде почти так же: %SYSTEM32%/etc/hosts

gaa ★★
()
Ответ на: комментарий от val-amart

> или просто обращайся по IP

Это виртуальный хост, так что там, наверно, понадобится всё-таки, чтобы передавался Host: rtpg.

gaa ★★
()
Ответ на: комментарий от val-amart

На счет dns слишком уж лихо, эдак и на работе домашний хост прописывать, немного не понимаю как оно работает но если с соседнего компьютера по ip открывать - http://192.168.20.1, то открывается стандартная директория апача а не rtpg, порт вроде нигде не указан имею в виду запись вида http://192.168.20.1:(порт), потому на счет dns не знаю поможет ли.

Кстати может кому пригодится, сам пока не могу в wiki писать, мое howto установки связки rtorrent, rtpg и демона для автозапуска.
Зы: Мож кто захочет такое дома поднят, да заодно мне конфиг апача допишет:

cat install.sh:
#!/bin/bash
aptitude install -R screen librpc-xml-perl libjson-xs-perl libjs-jquery libtemplate-perl apache2
mkdir /var/torrent/
useradd -d /var/torrent rtorrent
#passwd rtorrent
mkdir /var/torrent/download/
mkdir /var/torrent/.session
mkdir /var/torrent/public
chown -R rtorrent:rtorrent /var/torrent/
chmod 755 /var/torrent/download/
chmod 755 /var/torrent/.session
chmod 755 /var/torrent/public


cat /var/torrent/.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.
# Максимальное и минимальное количество пиров при соединении через torrent.
#min_peers = 40
max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
# Тоже что и выше, только для seed выкаченных torrents (-1 = same as downloading)
#min_peers_seed = 10
max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
# Максимальное количество одновременных закачек per torrent.
max_uploads = 5

# Global upload and download rate in KiB. "0" for unlimited.
# Глобальная скорость закачки и отдачи в KiB. "0" - без ограничений.
download_rate = 0
upload_rate = 0

# Default directory to save the downloaded torrents.
# Директория по умолчанию для сохранения закачиваемых торентов.
directory = /var/torrent/public

# сохранять сессию
session_save = yes

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?

# каталог куда будет сохраняться состояние торентов.
session = /var/torrent/.session

# Watch a directory for new torrents, and stop those that have been
# deleted.
# rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent
# файлы и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/var/torrent/download/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Каждый день сработает тригер "throttle_1" в 18:00 и установит скорость
# скорость закачки в unlimited, а тригер "throttle_2" установит ее в 15kb
# в 08:00. Используя это клиент может автоматически регулировать скорость закачки.
#schedule = throttle_1,18:00:00,24:00:00,download_rate=0
#schedule = throttle_2,08:00:00,24:00:00,download_rate=15

# 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 прослушивает сокет и исходящие подключения к этому сетевому интерфейсу.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
# номер порта (или нескольких портов) который открывает клиент для
# обмена данными
#port_range = 6890-6999
port_range = 6888-6888

# 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 = yes

# 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 peer exchange (for torrents not marked private)
#
peer_exchange = no

#
# 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

#Для rtpg-gui
scgi_port = localhost:5000

sdm
() автор топика
Ответ на: комментарий от sdm

cat /etc/init.d/rtorrentd
#!/bin/sh
#############
###<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 whateve 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
user="rtorrent"

# the system group 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
config="`su -c 'echo $HOME' $user`/.rtorrent.rc"

# set of options to run with
options=""

# 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 rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
exit 3
fi
if ! [ -r "${config}" ] ; then
echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
exit 3
fi
session=`getsession "$config"`
if ! [ -d "${session}" ] ; then
echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
exit 3
fi
}

d_start() {
[ -d "${base}" ] && cd "${base}"
stty stop undef && stty start undef
su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${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
su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}

d_stop() {
session=`getsession "$config"`
if ! [ -s ${session}/rtorrent.lock ] ; then
return
fi
pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
kill -s INT ${pid}
fi
}

getsession() {
session=`cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" `
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

sdm
() автор топика
Ответ на: комментарий от sdm

Раз уж тут опубликовал, есть еще вопрос: сейчас запущенный по такой схеме rtorrent, отображается как активный пользователь системы ( 10:52:27 up 2 days, 2:33, 2 users, load average: 0.08, 0.03, 0.01), можно ли из него сделать полноценный демон без отображения как пользователя.

sdm
() автор топика
Ответ на: комментарий от sdm

> На счет dns слишком уж лихо, эдак и на работе домашний хост прописывать, немного не понимаю как оно работает но если с соседнего компьютера по ip открывать - http://192.168.20.1, то открывается стандартная директория апача а не rtpg, порт вроде нигде не указан имею в виду запись вида http://192.168.20.1:(порт), потому на счет dns не знаю поможет ли.

Поможет. Виртуальные хосты определяют, что тебе отдать по заголовку Host http-запроса. Соответственно, если ты будешь обращаться по адресу http://rtpg.somedomain.com, то апача поймёт, что ты ломишься именно к rtpg, потому что браузер засунет именно эту строчку в заголовок Host.

gaa ★★
()
Ответ на: комментарий от gaa

Хм.. в любом случае спасибо, как вариант, если другого не посоветуют буду так пользоваться, но хотелось бы то, что написал, т.е.
ip/rtpg
hostname/rtpg

Не уж то никто apach не знает, одна надежда - если никто не поможет, разработчики рускоязычные, земляку думаю не откажут к ним обращусь

sdm
() автор топика
Ответ на: комментарий от sdm

Ну или поменяй порт на какой-нибудь другой и потри строку "ServerName rtpg" из конфига. Тогда апач будет вешать rtpg не на виртуальный хост, а просто на соответствующий порт.

gaa ★★
()
Ответ на: комментарий от gaa

Дождешься тут Вас :), вобщем вот:
rm -rf /var/www/rtpg

Установил пакет для debian http://ftp.at.debian.org/debian/pool/main/r/rtpg/rtpg-www_0.1.0-1_all.deb

rm /etc/apache2/sites-available/rtpg.apache.conf

cat /etc/rtpg/rtpg.conf (закоментировал # rpc_uri = http://rtpg-scgi.localhost/RPC2, раскоментировал rpc_uri = localhost:5000)

# TAG: rpc_uri
#
# address of SCGI-mount point for rtorrent
#
# Begining from version 0.1.0 rtpg can use direct connection
# to rtorrent SCGI-port/socket.
#
# If You want to use this possibility You can write the address:
rpc_uri = localhost:5000
# rpc_uri = /path/to/rtorrent.socket
#
# rpc_uri = http://rtpg-scgi.localhost/RPC2


# default refresh timeout (in miliseconds)
refresh_timeout = 15000

# default path to skins dir
skin_dir = skins

# default skin name
current_skin = default

nano -w /etc/apache2/conf.d/rtpg

AddHandler cgi-script .cgi
SetEnv RTPG_CONFIG /etc/rtpg/rtpg.conf
Alias /rtpg "/usr/share/rtpg-www/"
<Directory "/usr/share/rtpg-www/">
DirectoryIndex index.cgi
Options FollowSymLinks ExecCGI
AddDefaultCharSet utf-8
AllowOverride All

# Order allow,deny
# allow from all
# deny from all
</Directory>

Вроде работает, Всем спасибо!!

sdm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.