Ahogy azt régebben írtam, lehet transmission-t használni, előnye hogy nagyon könnyű beállítani.Én nem ezt fogom használni, hanem egy kicsit bonyolultabb megoldást. Egy rtorrent klienst fogunk beállítani, hozzá egy nginx webszerveren, php-fpm-en futó webes klienst, a ruTorrentet. Készenállunk?
Telepítsük fel amit csak lehet pacman-al, nem lesz gond a verziókkal, megfelelően frissek.
pacman -S rtorrent screen php php-cgi php-sqlite php-gd php-fpm xmlrpc-c nginxKonfiguráljuk először mondjuk az rtorrentet. Másoljuk a telepítéskor felkerült példa konfigurációs fájlt a könyvtárunkba, a megfelelő néven:
cp /usr/share/doc/rtorrent/rtorrent.rc ~/.rtorrent.rcNyissuk meg, és állítsunk be pár dolgot.
max_peers = 20 max_peers_seed = 10 session = /var/rtorrent/session download_rate = 1600 upload_rate = 190 scgi_port = 127.0.0.1:5000Ezekkel el lehet játszadozni, lehet variálni a peer/seed számokkal, és a konfigfájlban is van több beállítás még, mindegyiknél szerepel fölötte, hogy mire való. Nekem így volt stabil. A download_rate és az upload_rate a letöltés és a feltöltés limit, kb/s-ban, vagyis pl.: nekem 20 Mb-es a netem, ezért 1600-ra állítva marad elegendő netezni, ha maxon megy a torrent akkor is. Felfelé ugyanez, ha 2Mb a feltöltés, akkor én 190-re állítottam, így még maradt netezni valamennyi, ha kellene. A sebességet pl.: a speedtest.net-en ellenőrizhetjük. Az utolsó sor a legfontosabb, az scgi_port, itt adjuk meg hogy egyéb alkalmazások, (mondjuk a php-n át a rutorrent) hol és hogyan csatlakozhat az rtorrenthez. Lehet így tcp-n, vagy lehet socketen át. Én ezt használom, de socket-el is jó. Van aki szerint úgy jobb, én nem vettem észre.
Hozzunk létre egy könyvtárat a session-nek, azt, amit az előbb beállíottunk.
sudo mkdir -p /var/rtorrent/sessionAdjunk rá írási jogot mindenkinek:
sudo chmod a+w /var/rtorrent/sessionHa megvagyunk, indítsuk el az rtorrenet egy screen sessionben. Ez azért kell, hogy ne külön terminálon kelljen belépni, ha fut az rtorrent, hanem egy terminálon tudjunk váltani a "taskok" között, anélkül, hogy az rtorrent (vagy ami a screenben van) megszakadna.
screen rtorrentÍgy most jól elindult. Ha alul látni hogy "XMLRPC initialized with x function", akkor jók vagyunk. Még utánna szokta írni hogy az SCGI socket van használatban. Ha ez nem jelenne meg (mármint az első), valami nem jó.
Ha megy az rtorrent, akkor lépjünk ki a screenből a nélkül, hogy megszakítanánk a rtorrentet. Ezt a Crtl-A + D billentyűkombinációkal tehetjük meg. (screen-t nem ismerőknek: Először Ctrl-A majd a D betű) Ekkor eltünik az előbbi ablak, de az rtorrent fut tovább a háttérben. Visszatérni hozzá a
screen -faarutasításal tudunk. Ha nem háttérbe rakni, hanem ténylegesen leállítani szeretnénk, akkor a Ctrl-Q -val tehetjük meg. (Persze amikor benne vagyunk) Hogy megnézzük, hogy milyen folyamatok vannak a screenben, kiadhatjuk a
screen -listutasítást, ekkor kapunk egy listát a háttérbe rakott screen-ben futó folyamatokról. Ha nincs ilyen, akkor "No Sockets found in ..." üzenetet kapjuk.
Ok, megvan az rtorrent, merészebbek itt meg is állhatnak, a torrentbox működőképes, csak nincs kényelmes grafikus felülete. Telepítsük fel ezt is.
Az előbb a session-nél már létrehoztuk a /var/www könyvtárat, ezt most tegyük a www-data user tulajdonába:
sudo chown www-data:www-data /var/www/Most állítsuk be a webszervert. Szerkesszük a konfigfájlját:
vim /etc/nginx/nginx.confEz van most benne, kiemeltem a fontos sorokat:
user www-data;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
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;
types_hash_max_size 2048;
server_tokens off;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name raspibox;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root /var/www/rutorrent;
index index.html index.htm index.php;
}
location /RPC2 {
include scgi_params;
scgi_pass 127.0.0.1:5000;
}
#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 /usr/share/nginx/html;
}
location ~ \.php$ {
root /var/www/rutorrent;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$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;
}
# 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;
# }
#}
}
Nem akarok minden egyes sort megmagyarázni, az nginx dokumentációjában ott van minden. A lényeg, létrehozunk a 80-a porton egy "raspibox" nevű szervert, utf-8 karakterkódolással, kiinduló könyvtára a /var/www/rutorrent. Aztán létrehozunk egy "RPC2" nevű location-t (ez amolyan átirányítás, a szerveren belül), ennek beállítjuk hogy scgi_pass 127.0.0.1:5000; vagyis azt, amit a rtorrentnek. Így fognak összekapcsolódni.Végül létrehozunk egy szabályt a szerveren belül minden .php-re végződő fájlra, hogy minden ilyet a 127.0.0.1 (vagyis a localhost, a helyi gép) 9000-es portjára küldjön. Ide tesszük mindjárt a php-t.
Ha megvagyunk, mentsük el. Indítsuk el, nézzük hogy rendben van-e:
systemctl start nginx.serviceMost az
systemctl status nginx.serviceparanccsal nézzük hogy fut-e vagy hibával leállt. Ha nincs hibára utaló sor, ellenőrízzük, nyissunk egy böngészőt, és írjuk be a raspi ip-jét, és nézzük az üzenetet. Ha nem azt kapjuk, hogy "az oldal nem található", akkor elvileg megy az nginx, bár még sem a php, sem a rutorrent nincs a helyén, így nem fog működni. Tegyünk ez ellen. Állítsuk be a php-t. Nyissuk meg a konfigfájlját:
sudo vim /etc/php/php-fpm.confKeressük meg a [www] részt, és ott a "user" opcióhoz írjuk be a "www-data"-t, valamint alá hogy "group", szintén "www-data"-val. Kb így nézzen ki:
user = www-data group = www-dataKicsit lejjebb lesz egy "listen" opció, ott állítsuk be azt, amit az előbb az nginx-ben, a localhost 9000-es portját. Így:
listen = 127.0.0.1:9000Még lejjebb a listen userét és groupját is beállíthatjuk:
listen.owner = www-data listen.group = www-dataEnnyi volna, mentsük, lépjünk ki. Indítsuk el a fatcgi-t, hogy legyen végre php-nk:
sudo systemctl start php-fpm.serviceEllenőrízzük hogy rendben elindult-e:
sudo systemctl status php-fpm.serviceHa jónak néz ki, megvan a php is. Nézzük is meg, másoljunk egy index.php fájlt a /var/www/rutorrent könyvtárba, és írjuk bele hogy "<?php phpinfo() ?>". Ha most újra megnézzük a raspi ip-jét egy böngészőben, egy ilyesmi képet kell lássunk:
Rendben, utolsó fázis következik, a rutorrent. Lépjünk be a /var/www/ könyvtárba:
cd /var/wwwTöltsük le a legfrisebb verziót közvetlenül:
wget http://rutorrent.googlecode.com/files/rutorrent-3.4.tar.gzEz a bejegyzés írása idején volt a legfrissebb, a project oldalán baloldalon ott a download, ott a link az aktuálisra.
Ez egy tömörített fájl, csomagoljuk ki
tar xvf rutorrent-3.4.tar.gzSzépen ki is bontja, egyenesen a rutorrent könyvtárunkba.
Nyissuk meg a konfigurációs fájlját:
vim rutorrent/conf/config.phpItt a legfontosabb rész a
$scgi_port = 5000; $scgi_host = "127.0.0.1";Ez legyen beállítva. Még beállíthatjuk hogy
$topDirectory = '/STORAGE';Mentsük el, kilépés. Ha most megnézzük mi van a raspi ip-jén a böngészőben, és a ruTorrent felülete fogad, meg is vagyunk. Ha a ruTorrent megy, de azt írja hogy nincs kapcsolata az rtorrent-el, akkor ellenőrizzük a php-fpm beállításait, a portokat, hogy megvannak-e a helyükön, megy-e az rtorrent, van-e vele kapcsolat. Ha a rutorrent sem megy, akkor az nginx-et ellenőrizzük, fut-e, ha nem, a log-ban ellenőrizzük a hibát.
Sok sikert!
Nincsenek megjegyzések:
Megjegyzés küldése