背景
トレントを扱うために、私は長い間ktorrentを使用していました。 このクライアントは、人気の急流でプロセッサの負荷が50%( uTPではさらに高い )に達し、すでに大胆なKDEのメモリ消費量が目を引くのが不快になるまで、便利なダウンロード管理のニーズを完全に満たしました。
KDEをxfce( これは別の話です )に変更し、優れた機能と便利な管理を備えたトレント用のプログラムを選択することが決定されました。 送信、大洪水、急流を試した後、私は後者に落ち着きました。
rtorrent + rutorrent + nginx + php-fpmの設定方法については、catの下にあります。
なぜそう
示されたツールが選択される理由をすぐに答えたいと思います。
Arch Linux 。 あなたはこのディストリビューションについて長い間話すことができます。私は一般的にその組織と哲学が好きで、最大限の効率でそれを自分で使うことができます。 彼についてもっと読むのが面白い人は、 こちらとこちらをご覧ください 。
nginx この小さなものがどのように機能し、メモリを節約し、柔軟に調整し、必要なすべての機能を提供することに感心しました。
php-fpm ワーカースレッドの数を設定でき、nginxと組み合わせて優れたパフォーマンスが得られます。
rtorrent 。 低リソース消費、高度にカスタマイズ可能。
急流 積極的に開発された、素晴らしいインターフェースを備えています。
前提ソフトウェアのインストール
Arch Linuxが既にコンピューター上にあり、ユーザーがそのパッケージシステムに精通していると仮定します。
バンドルWebパーツをインストールするには、次のコマンドを実行します。
sudo pacman -S nginx php-fpm
AURからrtorrentとlibrtorrentをインストールすることをお勧めします。rtorrent-colorと呼ばれるすばらしいPKGBUILDがあり、退屈なコンソールインターフェースをより楽しく( 使用する場合 )、libtorrent-extendedに追加のパッチがあります。 したがって、次のコマンドを実行します。
yaourt rtorrent-color
そして
yaourt libtorrent-extended
rutorrentを取得するには、次のコマンドを使用してsvnから複製する必要があります。
svn checkout rutorrent.googlecode.com/svn/trunk rutorrent-read-only
ファイルはrutorrent-read-onlyディレクトリに表示され、そこから取得します。
カスタマイズ
/etc/php/php-fpm.confファイルで、次のパラメーターを設定する必要があります。
- listen = 127.0.0.1:9000なので、php-fpmは指定されたネットワークソケットをリッスンします。
- pm =静的なので、ワーカースレッドの数は一定です。
- pm.max_children = 2は、ワーカースレッドの数を物理スレッドの数に設定します ( デュアルコアプロセッサを使用しているため、ここで2を設定します )。
ファイル/etc/nginx/conf/nginx.confは、次の形式に縮小されます。
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/pf/.rtorrent.sock; } sendfile on; keepalive_timeout 65; include /etc/nginx/conf/sites-enabled/*; include /etc/nginx/conf/conf.d/*; }
バックエンドのサブセクションはphp- fpmを指し、backendrtorrentはrtorrentソケットファイルを指していることに注意してください(詳細は後ほど説明します)。
ディレクトリ/ etc / nginx / conf / sites-enabledおよび/ etc / nginx / conf / sites-availableを作成します 。 2番目では、次の内容でrutorrent.eternity構成ファイルを作成し、最初のディレクトリでシンボリックリンクを作成します。
server { listen 80; server_name localhost; access_log /srv/http/nginx/rutorrent.eternity/logs/access.log; error_log /srv/http/nginx/rutorrent.eternity/logs/errors.log; location / { root /srv/http/nginx/rutorrent.eternity/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.eternity/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.eternity/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.eternity/logs )の場所、およびWebドキュメントのルートディレクトリ( /srv/http/nginx/rutorrent.eternity/htdocs )に注意してください 。 これらのディレクトリが存在する必要があります。 また、 位置/ RPC2ブロックに注意してください、それは急流に必要です。 ここでは、残りのパラメーターの説明は提供しませんが、インターネット上の詳細な文書で十分です。
/ etc / hostsファイルに次の行を追加します 。
127.0.0.1 localhost.localdomain localhost eternity rutorrent.eternity
永遠は私のシステムの名前であり、あなたにとっては異なるかもしれません。 この場合、構成ファイルのどこでも変更する必要があります。
nginxとphp-fpmを実行できます:
sudo /etc/rc.d/nginx start
sudo /etc/rc.d/php-fpm start
これで、いくつかの単純なphpファイルをWebドキュメントのルートディレクトリに投げることで、バンドルWebパーツをテストできます。 Webブラウザーでrutorrent.eternityに移動すると、正しく表示されるはずです。
次に、tortorrentをインストールする必要があります。 そのコンテンツを前述のrutorrent-read-only / rtorrentディレクトリからWebドキュメントのルートディレクトリに転送します( これは/srv/http/nginx/rutorrent.eternity/htdocsディレクトリです )。 rutorrent-read-only / pluginsディレクトリでも同じことを行い、それをrutorrentファイルツリーの既存のpluginsディレクトリにコピーします。 .svn形式のゴミ箱は削除できます。
ファイル/srv/http/nginx/rutorrent.eternity/htdocs/conf/config.phpを開き、次の2行のみを置き換えます。
$scgi_port = 0;
$scgi_host = "unix:///home/pf/.rtorrent.sock";
ソケットファイルは上記と一致する必要があります。
Webインターフェイスの準備ができました。rtorrent自体を設定する必要があります。
次の内容を含む.rtorrent.rcファイルをホームディレクトリに作成します。
scgi_local = /home/pf/.rtorrent.sock
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
upload_rate = 250
directory = /home/pf/work/downloads/torrents
session = /home/pf/work/downloads/torrents/.session
port_range = 29292-29292
check_hash = no
use_udp_trackers = yes
encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext
dht = auto
dht_port = 6881
peer_exchange = yes
libtorrentが--with-posix-fallocateオプションを指定してコンパイルされている場合、 system.file_allocate.set = yesの行は意味があります。これは、現代のファイルシステムではトレントに必要なスペースを即座に割り当てることができます。 * g_colorなどのオプションは、rtorrent-colorにのみ適用されます。 必要に応じて、ディレクトリ、ポート、速度を構成します。
最後の仕上げは、rtorrentを実行するスクリプトです。 /etc/rc.d/rtorrentdファイルに次の内容を配置します。
#!/usr/bin/env bash . /etc/rc.conf . /etc/rc.d/functions rtorrent_user="pf" rtorrent_socket="/home/pf/.rtorrent.sock" case "$1" in start) stat_busy "Starting rtorrent" if [ -S $rtorrent_socket ]; then rm $rtorrent_socket fi su $rtorrent_user -c 'LANG=uk_UA.UTF-8 screen -d -m -S rtorrent rtorrent' &> /dev/null if [ $? -gt 0 ]; then stat_fail else while [ ! -S $rtorrent_socket ] 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 [ -S $rtorrent_socket ]; then rm $rtorrent_socket fi if [ $? -gt 0 ]; 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_userおよびrtorrent_socket変数を調整します。 rtorrentの自動ロードが必要な場合は、 DAEMONSアレイの/etc/rc.confファイルに入れてください 。
それだけです コマンドでrtorrentを実行します
sudo /etc/rc.d/rtorrentd start
ブラウザでrutorrent.eternity Webサイトにアクセスしてお楽しみください。