[Tutorial] rTorrent mit WebUI unter Debian
Liste der Anh?nge anzeigen (Anzahl: 1)
Hola,
hier mal ein kleines Tutorial wie man rTorrent mit libTorrent auf Debian (Lenny/Squeeze) installiert, konfiguriert und eine Multiuser-WebUI (ruTorrent) einrichtet. Ich bin der Meinung das der Flux und BitTornado verbannt gehören. Da die Installation dieser beiden Komponenten jedoch sehr viel einfacherer ist, wird das leider nicht passieren, und diese fehlerhaften Anwendungen werden weiterhin ihr Unwesen in der Torrentwelt treiben. Warum also ein Wechsel auf rTorrent? Vorteile: - ressourcenschonend auch bei starker FrequentierungNachteile: - aufwendigere InstallationIm folgenden wird rTorrent 0.8.6 mit libTorrent 0.12.6 betrachtet. Wer eine andere Version nimmt, muss die jeweiligen Versionsnummern anpassen. Da diese Version allerdings zu 95% auf allen ALTs freigegeben ist, wüßte ich nicht warum. Solltet ihr dennoch eine andere Version in Betracht ziehen, nehmt die 2er oder 5er, da die 3er und 4er verbuggt sind. Die Packages sind für Squeeze, es kann also sein das man für Lenny eine ältere Version nehmen muss, wenn denn eine genaue Version angegeben ist. Als Webserver nehme ich den Apache2 - der reicht für einen Root völlig aus. btw Da dies hier keine Einsteiger FAQ für Debian ist, verzichte ich auf die Erklärung der einzelnen Befehle. Wer einen Befehl nicht kennt, kann Tante Google fragen. Allerdings sollten auch User mit wenig Linux Erfahrung klar kommen. So dann fangen wir mal an :) Legende Da ich schreibfaul bin, werden folgende Worte stellvertretend für eure Wunschnamen/~pfade stehen. _USER = der gewünschte Username _PW_SHELL = das Shellpasswort des Users _PW_WEB = das Zugriffspasswort des Users auf die WebUI _PATH_RT = absoluter Pfad zum rTorrent Konfig Verzeichnis _PATH_WWW_ROOT = absoluter Pfad zum WWW Root _PATH_RUT = absoluter Pfad zur WebUI ruTorrent welche im WWW Root liegt _PATH_FILES = absoluter Pfad zu eurem Filecontainer (Downloads) _PATH_LIBS = absoluter Pfad zum Speichern von externen Libraries (c-ares, xmlrpc-c, ...) _PATH_PASSWD = absoluter Pfad zur .htpasswd Datei _SCGI_PORT = SCGI Port des _USERs (empfohlen: fortlaufend - 5001, 5002, ...) _RPC = Prozedur des _USERS (empfohlen: fortlaufend - /RPC1, /RPC2, ...) In einem Codeblock ist pro Zeile eine Shellanweisung. Also nicht blindlings kopieren. Schritt 0 - Anmeldung als Root Wenn man nicht schon als Root angemeldet ist, dann Code:
su root Schritt 1 - Installation fehlender bzw. benötigter Packages Was welches Package macht, kann man hier nachlesen. Code:
apt-get install libapache2-mod-scgi php5 php5-common curl php5-curl libcurl3 libcurl3-openssl-dev libsigc++-2.0-dev openssl subversion automake build-essential libtool libncurses5-dev dtach libpcre3-dev libssl-dev libbz2-dev libevent-dev intltool unzip unrar Schritt 2 - Zertifikat Wer keinen Bedarf hat über https auf die WebUI zuzugreifen, kann diesen Schritt auslassen. Ansonsten wird erst einmal ein Serverzertifikat erstellt, falls man noch keines hat. Code:
mkdir /etc/apache2/ssl Da ein paar Änderungen in der Apache-Sites Config gemacht werden müssen, werden folgende Module aktiviert. Das ssl kann weggelassen werden, wenn man die WebUI nicht über https erreichen möchte. Code:
a2enmod scgi suexec actions include rewrite ssl Nun wird c-ares installiert, um einen möglichen Multiuserbug von ruTorrent zu vermeiden. Sind alle Packages installiert, geht der Install ohne Probleme über die Bühne. Falls nicht tauchen entsprechende Fehlermeldungen bei ./configure oder make auf. Code:
cd _PATH_LIBS Code:
mkdir -p _PATH_LIBS Nun wird xmlrpc-c installiert, welches für die Kompilierung von rTorrent benötigt wird. Code:
cd _PATH_LIBS Nun wird libTorrent installiert... Code:
cd _PATH_LIBS Jetzt wird der eigentliche Client rTorrent installiert. Code:
cd _PATH_LIBS Öffnet dazu die Datei _PATH_LIBS/rtorrent-0.8.6/src/core/curl_stack.cc und sucht folgenden Code: Code:
if (!m_httpCaCert.empty()) Code:
curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, 0); Code:
./autogen.sh Zuletzt installieren wir gleich noch ein Torrent-Creation-Tool, in diesem Fall buildtorrent. Code:
cd _PATH_LIBS Schritt 9 - Installation beenden Um die ganzen Installationen zu vollenden und den Library System Cache zu erneuern, wird folgendes in die Shell eingegeben. Code:
ldconfig Jetzt wird das Konfigverzeichnis von rTorrent angelegt und vorbereitet, da hier später die einzelnen Userkonfigs aufbewahrt werden. Code:
mkdir -p _PATH_RT/users Der Großteil der Konfigdatei ist selbsterklärend, lediglich das Ratiohandling ist etwas gewöhnungsbedürftig. Aber auf der rTorrent HP ist alles erklärt, also bei Unklarheiten einfach vorbeischauen. Folgende Zeilen können jetzt schon angepasst werden: Suche Code:
ip = XXX.XXX.XXX.XXX Code:
bind = XXX.XXX.XXX.XXX Code:
port_range = XXXXX-YYYYY Code:
port_random = yes Der Rest kann erst einmal so gelassen werden. Die Pfade werden später bei der Erstellung eines Users angepasst. Man kann natürlich auch die anderen Einstellungen anpassen. Es ist aber auch möglich diese über ruTorrent zu ändern. Schritt 11 - Access Um die WebUI vor unbefugtem Zugriff zu schützen, machen wir Gebrauch von der Access-Control des Apachen. Dafür legen wir eine htpasswd Datei an, welche später mit den Zugangsdaten der(des) User(s) gefüllt werden. Code:
mkdir -p _PATH_PASSWD Falls noch nicht vorhanden, wird zunächst ein Verzeichnis erstellt, indem die WWW Daten liegen werden (man muss nicht zwangsläufig /var/www/ nehmen). Code:
mkdir -p _PATH_WWW_ROOT Nun wird ruTorrent heruntergeladen und entpackt. Code:
cd _PATH_WWW_ROOT Schritt 12b - Plugins Jetzt kann man sich die gewünschten Plugins herunterladen und in ruTorrent einbinden. Was welches Plugin macht, wird hier erklärt. Ich selber nutze folgende Plugins: - _getdirUm z.B. das _getdir Plugin zu installieren, wechselt man zunächst in das Plugin Verzeichnis. Code:
cd _PATH_RUT/plugins Code:
wget http://code.google.com/p/rutorrent/downloads/detail?name=_getdir-3.2.tar.gz&can=2&q= Schritt 12c - Vorbereitung Multiuser Jetzt wird ruTorrent für den Multiuserbetrieb vorbereitet. Dafür müssen folgende Verzeichnisse angelegt werden. Code:
mkdir _PATH_RUT/conf/users _PATH_RUT/share/users Suche Code:
$log_file = '/tmp/errors.log'; Code:
$log_file = ''; Suche Code:
$saveUploadedTorrents = true; Code:
$saveUploadedTorrents = false; Code:
$pathToExternals = array( Code:
$pathToExternals = array( Code:
which php Schritt 12d - Einbinden von buildtorrent Um über die WebUI Torrents erstellen zu können, muss das Plugin create installiert sein. Nun wird die _PATH_RUT/plugins/create/conf.php geöffnet, und folgende Zeilen verändert: Suche Code:
$useExternal = ''; Code:
$useExternal = 'buildtorrent'; Code:
$pathToCreatetorrent = ''; Code:
$pathToCreatetorrent = '/usr/local/bin/buildtorrent'; Code:
$pathToExternals["pgrep"] = ''; Code:
$pathToExternals["pgrep"] = '/usr/bin/pgrep'; Schritt 12e - Unpack Plugin konfigurieren Möchte man Archive per WebUI entpacken, muss das Plugin unpack installiert sein. Um es nutzen zu können, müssen ein paar Zeilen in der _PATH_RUT/plugins/unpack/conf.php geändert werden. Suche Code:
$pathToExternals['unzip'] = ''; Code:
$pathToExternals['unzip'] = '/usr/bin/unzip'; Code:
$pathToExternals['unrar'] = ''; Code:
$pathToExternals['unrar'] = '/usr/bin/unrar'; Die anderen erwähnten Plugins benötigen keine Änderungen der Konfigdateien. Schritt 12g - Besitzer ändern Alle WWW Daten sollten dem User www-data gehören. Daher kurz folgendes eingeben: Code:
chown -R www-data:www-data _PATH_WWW_ROOT So, jetzt das eigentliche Kernstück - die Userverwaltung. Schritt 13a - Passwörter Wir brauchen zwei Passwörter, eins für die Shell und eins für die WebUI. Dafür bietet sich folgende Seite an. Erstellt ein benutzerdefiniertes mit Sonderzeichen und mindestens 16 Zeichen. Schritt 13b - User erstellen Nun wird ein Systemuser erstellt, über den später der rTorrent Client läuft. Code:
useradd -M _USER Schritt 13c - Ordner erstellen Jetzt den Ordner erstellen, indem die Downloads des Users gespeichert werden und die Rechte anpassen. Code:
mkdir -p _PATH_FILES/_USER Zunächst muss das Konfig Verzeichnis von rTorrent erweitert werden. Code:
mkdir -p _PATH_RT/users/_USER/session Code:
cp _PATH_RT/rtorrent.rc _PATH_RT/users/_USER Code:
chmod -R 0777 _PATH_RT Suche Code:
_PATH_RT Suche Code:
_PATH_RUT Suche Code:
_USER Suche Code:
scgi_port = localhost:5000 Schritt 13e - Anpassen des Apache In die Datei /etc/apache2/httpd.conf muss folgendes eingefügt werden: Code:
SCGIMount _RPC localhost:_SCGI_PORT Code:
/etc/init.d/apache2 restart Auch hier muss die Verzeichnisstruktur erweitert werden. Code:
cd _PATH_RUT Code:
cd _PATH_RUT/conf Suche Code:
$topDirectory = '/'; Code:
$topDirectory = '_PATH_FILES/_USER/'; Code:
$scgi_port = 5000; Code:
$scgi_port = _SCGI_PORT; Code:
$XMLRPCMountPoint = "/RPC0"; Code:
$XMLRPCMountPoint = "_RPC"; Code:
chown -R www-data:www-data _PATH_WWW_ROOT Code:
ln -s _PATH_FILES/_USER _PATH_RUT/share/users/_USER/torrents Damit sich der User auch in die WebUI einloggen kann, muss die .htpasswd Datei erweitert werden. Code:
htpasswd -bm _PATH_PASSWD/.htpasswd _USER _PW_WEB Schritt 14 - Endkonfiguration des Apachen Um die WebUI vor unbefugtem Zugriff zu schützen, muss der Apache angepasst werden. Im Anhang liegt eine default welche in /etc/apache2/sites-available gehört. Läuft bei euch bereits ein Apache, dann müssen nur die entsprechenden Directory/Location Einträge ergänzt werden. Kurz etwas zu der default Ich verzichte gänzlich auf einen http Zugriff und leite diesen immer weiter. Das wichtige steht also in der SSL Sektion. Da müssen nur noch die entsprechenden Pfade angepasst werden. Ist dies geschehen, einmal den Apache restarten. Code:
/etc/init.d/apache2 restart Schritt 15 - rTorrent starten und überwachen Um rTorrent einfach zu starten und zu überwachen hier einmal 2 Skripte. Schritt 15a - Init Im Anhang liegt ein rtorrent Init-Skript, mit dem ein rTorrent Prozess für einen User gestartet werden kann. Start Code:
/etc/init.d/rtorrent start _USER Code:
/etc/init.d/rtorrent stop _USER Falls folgende Binary Pfade falsch sind, müssen die korrigiert werden: /usr/local/bin/rtorrent und /usr/bin/dtach Überprüft werden kann dies mit: Code:
which rtorrent Code:
chmod 0775 /etc/init.d/rtorrent Um zu schaun, ob rTorrent auch wirklich startet, einfach mal Code:
/etc/init.d/rtorrent start _USER Wenn ja, dann sollte dies erscheinen: "Starting daemon-ized dtach session for: rtorrent." Um zu kontrollieren ob auch wirklich ein Prozess läuft, folgendes eingeben: Code:
ps aux | grep _USER | grep rtorrent Ist dem widererwarten nicht so, sind irgendwelche Rechte falsch gesetzt, ein Pfad ist falsch oder es fehlt eine Datei. Um den Fehler genauer zu lokalisieren folgendes eingeben: Code:
/usr/local/bin/rtorrent -n -o import=_PATH_RT/users/_USER/rtorrent.rc Schritt 15c - Überwachung rTorrent schmiert sehr sehr selten ab, wenn dies aber passiert, ist es ganz gut, wenn es automatisch neu gestartet wird. Dafür liegt das Cron Skript .cron_rt im Anhang. Im Skript selber muss nur _USER ersetzt werden. Wenn weitere User hinzukommen, werden diese mit Leerzeichen voneinander getrennt eingefügt. Wo das Skript liegt ist egal, hauptsache die Rechte stimmen. Code:
chmod 0775 _PATH_TO/.cron_rt Code:
crontab -e Code:
*/1 * * * * TERM=xterm _PATH_TO/.cron_rt >/dev/null 2>&1 Weitere User Um User zu ergänzen muss einfach Schritt 13 wiederholt werden und der Username in das .cron_rt Skript eingefügt werden. Der rTorrent Prozess wird durch den cron automatisch gestartet. ENDE So, das sollte es gewesen sein. Ich hoffe mal ich habe nichts vergessen. Wer Probleme hat und Fehlermeldungen bekommt, sollte sich diese einfach mal anschaun. In den meißten Fällen sind es mangelnde Rechte. Und bei wem es absolut nicht klappen will, der kann sich hier in dem Thread melden. Vielleicht hat sich ja doch ein Fehler meinerseits eingeschlichen, trotz mehrmaliger Kontrolle. *hf* |
Nette Anleitung aber irgendwie haut das bei mir nicht so ganz hin...:wacko:
Ab Punkt 6 fängt er an zu spinnen das er kein make && make install nimmt und so weiter... |
Was heißt "nicht nimmt".
Das ist ungefähr so präzise wie "funktioniert nicht". Ohne genau Fehlermeldung muss hier jeder in seine beschlagene Glaskugel gucken. Meine zeigt mir dann so sachen wie: -make nicht installiert -./configure schiefgelaufen -problem zwischen stuhllehne und bildschirm bzw. layer 8 fehler |
Jup, er gibt ja entsprechende Fehlermeldungen aus, z.B. "ich finde das nicht", "das und das ist nicht installiert" usw.
Also einfach mal die Ausgabe durchlesen ;) |
hab mein Server gestern Platt gemacht und neu aufgesetzt, jetzt funktioniert es auch :cool:
|
hxxp://c-ares.haxx.se/c-ares-1.7.4.tar.gz gibts nicht mehr.
|
|
Ach ja, jetzt wo dus sagst hätte ich auch drauf kommen können :rolleyes:
Peinlich peinlich... :o |
So Leute. Zum ersten Mal habe ich rtorrent eingerichtet. Ich bin absoluter Neuling. Also BITTE nehmt ein wenig Rücksicht ;)
Habe folgende Fehlermeldung: Bad response from server: (500 [error,getplugins]) Bad response from server: (500 [error,getuisettings Ich nutze Multiple User (wenn es damit was zu tuen haben sollte). KANN es damit was zu tuen habe, das mein Anmeldename nicht dem Namen im Ordnerverzeichnis entspricht? Habe es aber eigentlich mit Punkt 13b erklärt, das der Userloging zu dem Ordnerverzeichnis gehört. Oder ist das ein Problem? Kann da BITTE sich jemand mir erbarmen? DANKE |
Der Anmeldename muss dem Ordernamen entsprechen, denn über die Auth wird ruTorrent gesagt, wo er suchen soll. Oder denkst du ich habe das zum Spaß so geschrieben ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr. |
Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.