Установка и настройка rtorrent+rutorrent+nginx+php-fpm?

Хочу перейти на rtorrent. Не получается запустить. Установку и настройку поизводил по статье: http://habrahabr.ru/post/120167/. Вроде и руки не особо кривые, и с головой дружу, и даже на Убунте в свое время поставил rtorrent (только с lighttpd). Но в этом случає не получается запустить rtorrent.
Согласно статье можно поставить ВМЕСТЕ rtorrent-color и libtorrent-extended. Но rtorrent-color у меня во время сборки выдал ошибку, взамен ему поставил простой rtorrent, который, в свою очередь, вступил в конфликт с libtorrent-extended, который пришлось удалить. В итоге, у меня стоит только rtorrent с основного репозитория. По ходу вопрос: Какой лучше ставить rtorrent, расчитывая его круглосуточное использование и управление через web-интерфейс (rutorrent)?
Вот мои конфиги, выложенные по порядку исправления, согласно статье http://habrahabr.ru/post/120167/ (пользователь = “z”, система = “notebook”):
/etc/php/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
... вырезал всё, что не раскомментировано ...
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = run/php-fpm/php-fpm.pid
;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ;
;;;;;;;;;;;;;;;;;;;;
; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[www]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = http
group = http
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
;listen = /var/run/php-fpm/php-fpm.sock
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = http
listen.group = http
listen.mode = 0660
; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives. With this process management, there will be
;             always at least 1 children.
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
;  ondemand - no children are created at startup. Children will be forked when
;             new requests will connect. The following parameter are used:
;             pm.max_children           - the maximum number of children that
;                                         can be alive at the same time.
;             pm.process_idle_timeout   - The number of seconds after which
;                                         an idle process will be killed.
; Note: This value is mandatory.
pm = static
; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; CGI. The below defaults are based on a server without much resources. Don't
; forget to tweak pm.* to fit your needs.
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
; Note: This value is mandatory.
pm.max_children = 2
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 2
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 1
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 3
/etc/nginx/conf/nginx.conf
#
# #user http;
# worker_processes  2;
#
# #error_log  logs/error.log;
# error_log  /var/log/nginx/error.log;
# #error_log  logs/error.log  notice;
# #error_log  logs/error.log  info;
#
# #pid        logs/nginx.pid;
# pid        /var/run/nginx.pid;
#
# events {
#     worker_connections  1024;
#     use epoll;
# }
#
#
# http {
#     include       mime.types;
#     default_type  application/octet-stream;
#
#     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#     #                  '$status $body_bytes_sent "$http_referer" '
#     #                  '"$http_user_agent" "$http_x_forwarded_for"';
#
#     #access_log  logs/access.log  main;
#
#     sendfile        on;
#     #tcp_nopush     on;
#
#     #keepalive_timeout  0;
#     keepalive_timeout  65;
#
#     #gzip  on;
#
#     server {
#         listen       80;
#         server_name  localhost;
#
#         #charset koi8-r;
#
#         #access_log  logs/host.access.log  main;
#
#         location / {
#             root   html;
#             index  index.html index.htm;
#         }
#
#         #error_page  404              /404.html;
#
#         # redirect server error pages to the static page /50x.html
#         #
#         error_page   500 502 503 504  /50x.html;
#         location = /50x.html {
#             root   html;
#         }
#
#         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#         #
#         #location ~ \.php$ {
#         #    proxy_pass   http://127.0.0.1;
#         #}
#
#         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#         #
#         #location ~ \.php$ {
#         #    root           html;
#         #    fastcgi_pass   127.0.0.1:9000;
#         #    fastcgi_index  index.php;
#         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#         #    include        fastcgi_params;
#         #}
#
#         # deny access to .htaccess files, if Apache's document root
#         # concurs with nginx's one
#         #
#         #location ~ /\.ht {
#         #    deny  all;
#         #}
#     }
#
#
#     # another virtual host using mix of IP-, name-, and port-based configuration
#     #
#     #server {
#     #    listen       8000;
#     #    listen       somename:8080;
#     #    server_name  somename  alias  another.alias;
#
#     #    location / {
#     #        root   html;
#     #        index  index.html index.htm;
#     #    }
#     #}
#
#
#     # HTTPS server
#     #
#     #server {
#     #    listen       443;
#     #    server_name  localhost;
#
#     #    ssl                  on;
#     #    ssl_certificate      cert.pem;
#     #    ssl_certificate_key  cert.key;
#
#     #    ssl_session_timeout  5m;
#
#     #    ssl_protocols  SSLv2 SSLv3 TLSv1;
#     #    ssl_ciphers  HIGH:!aNULL:!MD5;
#     #    ssl_prefer_server_ciphers   on;
#
#     #    location / {
#     #        root   html;
#     #        index  index.html index.htm;
#     #    }
#     #}
#
# }
worker_processes 2;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {
	worker_connections  1024;
	use epoll;
}
http {
	include		/etc/nginx/conf/mime.types;
	default_type	application/octet-stream;
	upstream backend {
		server 127.0.0.1:9000;
	}
	upstream backendrtorrent {
		server unix:/home/z/.rtorrent.sock;
	}
	sendfile		on;
	keepalive_timeout	65;
	include /etc/nginx/conf/sites-enabled/*;
	include /etc/nginx/conf/conf.d/*;
}
/etc/nginx/conf/sites-available/rutorrent.notebook
server {
listen 80;
server_name localhost;

access_log /srv/http/nginx/rutorrent.notebook/logs/access.log;
error_log /srv/http/nginx/rutorrent.notebook/logs/errors.log;

location / {
root /srv/http/nginx/rutorrent.notebook/htdocs;
index index.php index.html index.htm;
}

location /RPC2 {
include /etc/nginx/conf/scgi_params;
scgi_pass backendrtorrent;
}

location ~ /\.ht {
deny all;
}

location ~* \.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
root /srv/http/nginx/rutorrent.notebook/htdocs;
access_log off;
expires 30d;
}

location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/http/nginx/rutorrent.notebook/htdocs$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
Каталоги /srv/http/nginx/rutorrent.notebook/logs и /srv/http/nginx/rutorrent.notebook/htdocs - существуют.
/etc/hosts
#
# /etc/hosts: static lookup table for host names
#

#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost notebook rutorrent.notebook
::1 localhost.localdomain localhost

# End of file
~/.rtorrent.rc
scgi_local = /home/z/.rtorrent.sock
scgi_port = 127.0.0.1:9000

max_memory_usage = 268435456

system.file_allocate.set = yes

#done_fg_color = 2

#done_bg_color = 0

#active_fg_color = 4

#active_bg_color = 0

#максимальная скорость загрузки
download_rate = 250

#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0

#каталог для сохранения закачек или откуда буду сидироваться торренты.
directory = /home/z/Torrents

#каталог куда будет сохраняться состояние торрентов. Здесь, в этом примере, они сохраняются в папку session
session = /home/torrent/session
#session = /home/z/Torrents/.session

#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы и если они есть то ставит их на закачку
schedule = watch_directory,5,60,load_start=/home/torrent/torrents/*.torrent

#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 6881-6881

#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no

#проверять хэш торрента после закачки
check_hash = yes

#использовать udp
use_udp_trackers = yes

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

encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext

dht = auto

dht_port = 6881

peer_exchange = yes

#минимальное число пиров на торрент
min_peers = 1

#максимальное число пиров на торрент
max_peers = 2000

#делает читадельным лог (вызывается по L)
handshake_log = yes

# Принудительно устанавливает кодировку UTF-8 для xmlrpc.
# Рекомендуется для устранения проблем при использовании в
# наименованиях торрентов символов кириллицы. Актуально для
# GUI, работающих через xmlrpc.
encoding_list = UTF-8

#
#scgi_port = localhost:5000
/etc/rc.d/rtorrentd
#!/usr/bin/env bash

. /etc/rc.conf
. /etc/rc.d/functions

rtorrent_user=“z”
rtorrent_socket=“/home/z/.rtorrent.sock”

case “$1” in
start)
stat_busy “Starting rtorrent”
if ; then
rm $rtorrent_socket
fi
su $rtorrent_user -c ‘LANG=uk_UA.UTF-8 screen -d -m -S rtorrent rtorrent’ &> /dev/null
if ; then
stat_fail
else
while
do
printf “%10s \r” waiting
done
chmod 666 $rtorrent_socket
add_daemon rtorrent
stat_done
fi
;;
stop)
stat_busy “Stopping rtorrent”
killall -w -s 2 /usr/bin/rtorrent &> /dev/null
if ; then
rm $rtorrent_socket
fi
if ; then
stat_fail
else
rm_daemon rtorrent
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo “usage: $0 {start|stop|restart}”
esac
exit 0
Запуск rtorrent.
sudo /etc/rc.d/rtorrentd start
Пароль:
:: Starting rtorrent
waiting
sudo screen -r
There is no screen to be resumed.
Web-интерфейс пишет:
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
/srv/http/nginx/rutorrent.notebook/htdocs/conf/config.php
<?php
// configuration parameters

// for snoopy client
@define('HTTP_USER_AGENT', ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0’, true);
@define('HTTP_TIME_OUT', 30, true); // in seconds
@define('HTTP_USE_GZIP', true, true);
$httpIP = null; // IP string. Or null for any.

@define('RPC_TIME_OUT', 5, true); // in seconds

@define('LOG_RPC_CALLS', false, true);
@define('LOG_RPC_FAULTS', true, true);

// for php
@define('PHP_USE_GZIP', false, true);
@define('PHP_GZIP_LEVEL', 2, true);

$do_diagnostic = true;
$log_file = ‘/tmp/errors.log’; // path to log file (comment or leave blank to disable logging)

$saveUploadedTorrents = true; // Save uploaded torrents to profile/torrents directory or not
$overwriteUploadedTorrents = false; // Overwrite existing uploaded torrents in profile/torrents directory or make unique name

$topDirectory = ‘/’; // Upper available directory. Absolute path with trail slash.
$forbidUserSettings = false;

$scgi_port = 127.0.0.1:9000;
$scgi_host = “unix:///home/z/.rtorrent.sock”;

// For web->rtorrent link through unix domain socket
// (scgi_local in rtorrent conf file), change variables
// above to something like this:
//
// $scgi_port = 0;
// $scgi_host = “unix:///tmp/rpc.socket”;

$XMLRPCMountPoint = “/RPC2”; // DO NOT DELETE THIS LINE!!! DO NOT COMMENT THIS LINE!!!

$pathToExternals = array(
“php” => ‘', // Something like /usr/bin/php. If empty, will be found in PATH.
“curl” => ’/usr/bin/curl', // Something like /usr/bin/curl. If empty, will be found in PATH.
“gzip” => ‘', // Something like /usr/bin/gzip. If empty, will be found in PATH.
“id” => ’', // Something like /usr/bin/id. If empty, will be found in PATH.
“stat” => ‘/usr/bin/stat’, // Something like /usr/bin/stat. If empty, will be found in PATH.
);

$localhosts = array( // list of local interfaces
“127.0.0.1”,
“localhost”,
);

$profilePath = ‘../share’; // Path to user profiles
$profileMask = 0777; // Mask for files and directory creation in user profiles.
// Both Webserver and rtorrent users must have read-write access to it.
// For example, if Webserver and rtorrent users are in the same group then the value may be 0770.

?>
Вопросы:
1. Что у меня неправильно в конфигах?
2. Как сделать запуск от юзера, а не от рута?
3. Может лучше поставить lighttpd вместо nginx?
Нужно умереть молодым и сделать это как можно позже.
А что если поставить utorrent server? У него есть доступ по вебморде и очень прост в запуске\настройке
Опыт - это такая вещь, которая появляется сразу после того, как была нужна
А почему не deluged с очень хорошей вебмордой?
2rnqlover
utorrent-server такой же легкий и быстрый как rtorrent? Насколько стабилен, ведь он еще альфа? Я на арч с dwm только из-за минимализма, быстроты и легкости переходил.
2Gineaser
Пробовал Deluge. Отказался из-за невозможности нормально работать с RSS.
Лучше всего по функционалу был ktorrent, но после перехода на Arch+dwm - не вижу смысла грузить кучу библиотек и запускать в фоне ненужные процессы.
Нужно умереть молодым и сделать это как можно позже.
Zalexi
Не пробовал rtorrent. На счет легкости. Просто запускаете исполняемый файл, заходите на локахост в вебморду и там все настраиваете. Если не нравится так, то есть файлы конфигурации utservera. Занимает utserver у меня 8% процентов процессора и 0.28% оперативки. Сейчас заметил, что изредка он берет на себя около 30% проца, затем мгновенно спускается на 8-и процентный уровень.
Опыт - это такая вещь, которая появляется сразу после того, как была нужна
rnqlover
Поставил utserver, запустил. Но как работать с RSS? Получается очень урезаный функционал. Таких програм и родных под Линукс много. Мне нужна именно возможность работы с RSS.
Нужно умереть молодым и сделать это как можно позже.
Zalexi
rnqlover
Поставил utserver, запустил. Но как работать с RSS? Получается очень урезаный функционал. Таких програм и родных под Линукс много. Мне нужна именно возможность работы с RSS.

Не совсем понял Вас. Вы хотите чтобы utserver собирал RSS ленты?
Опыт - это такая вещь, которая появляется сразу после того, как была нужна
rnqlover
Zalexi
Не пробовал rtorrent. На счет легкости. Просто запускаете исполняемый файл, заходите на локахост в вебморду и там все настраиваете. Если не нравится так, то есть файлы конфигурации utservera. Занимает utserver у меня 8% процентов процессора и 0.28% оперативки. Сейчас заметил, что изредка он берет на себя около 30% проца, затем мгновенно спускается на 8-и процентный уровень.

Может у нас процессоры разные..
У меня i5 мобильный.
Я вообще не замечал, чтоб указанныя связка(rtorrent + + +) ела какие-то ресурсы. В пределах процента.

На днях на своей lfs системе планировал поднять тоже самое.

P.S. Да, важное обстоятельство. У меня торрентов немного. Около 20 на раздаче и качаю обычно 2-3..
https://fastenv.ru
viewtopic.php?f=8&t=1547&hilit=rtorrent
Вдруг пригодится?
Что-то я взял плохую привычку, не отвечать по теме =)

Запустите rtorrent просто в консоле..
И посмотрите, что будет говорить rutorrent.

Я как помню - вносил какие-то модернизации.. И этот самый rtorentd работал криво.
Его задача не велика, запустть rtorrent в screen. А если screen -r говорит, что нет screen`ов, то и rtorrent не запущен. И логично, что с ним не соедениться.

Чуть позже дополню, напишу что у меня собралось..
https://fastenv.ru
 
Зарегистрироваться или войдите чтобы оставить сообщение.