Skip to content
bachmma1 edited this page Oct 2, 2018 · 14 revisions

1. rTorrent

https://rtorrent-docs.readthedocs.io/en/latest/cmd-ref.html#load-commands

1.1. Installation

1.1.1. Debian 9

für die Installtion von rTorrent werden zuerst einige Pakete aus dem Paketmanager Benötigt:

sudo apt-get install build-essential g++ libsigc++-2.0-dev pkg-config comerr-dev libcurl3-openssl-dev libidn11-dev libkrb5-dev libssl-dev zlib1g-dev libncurses5 libncurses5-dev subversion automake git

Bei einer Debian Minimal-Installation müsst ihr euch zusätzlich noch das Programm "make" besorgen

sudo apt-get install make

Nun brauchen wir noch die Quellcode-Pakete von rTorrent, libtorrent und xmlrpc-c

git clone https://github.com/rakshasa/rtorrent.git
git clone https://github.com/rakshasa/libtorrent.git
svn checkout http://svn.code.sf.net/p/xmlrpc-c/code/release_number/01.51.01/ xmlrpc-c_01.51.01

Weiter geht es damit, die Heruntergeladenen Pakete zu kompilieren.

Zuerst xmlrpc-c

cd xmlrpc-c_01.51.01
./configure
make
sudo make install
cd -

dann libtorrent

cd libtorrent
./autogen.sh
./configure
make
sudo make install
cd -

und als Letztes noch rTorrent (WatchOut: RPC Migration 0.9 | Comprehensive list of rTorrent 0.9 commands

cd rtorrent
./autogen.sh
./configure --with-xmlrpc-c
make
sudo make install

zum Schluss noch ldconfig ausführen damit alle libraries von rTorrent gefunden werden

sudo ldconfig

Wir legen einen neuen Benutzer, z.B. "rtorrent", an der zur Gruppe „users“ gehört und das Verzeichnis /home/rtorrent besitzt:

sudo adduser --home /home/rtorrent/ -shell /bin/bash --ingroup users rtorrent

1.2. Konfiguration

Nun müsst Ihr noch im Home-Verzeichniss des rtorrent-Users (/home/rtorrent, wenn ihr genau nach Tutorial vorgegangen seid) eine .rtorrent.rc anlegen und füllen. Dazu könnt ihr entweder eine rTorrent.rc mit Hilfe der rTorrent-Homepage erstellen und den SCGI-Mount hinzufügen.

scgi_port = localhost:5000

** Alternativ könnt ihr die rtorrent.rc aus dem Support-Paket einfach an die richtige Stelle kopieren und diese Anpassen. Die wichtigsten Parameter zur Nutzung auf einem ALT sind genauso voreingestellt wie Andere Sachen. **

1.3. Starten

1.3.1. init-Script

da rTorrent standardmäßig nicht in den Hintergrund forked, sprich immer im Vordergrund bleibt und somit auch beim beenden der Bash stirbt, müssen wir ein bisschen drumrumarbeiten. Für Debian-User ist es das einfachste, das rtorrent Script aus dem Support-Package zu nehmen und nach /etc/init.d/ zu verschieben. Anschließend kann mann mit

service rtorrent start

und

service rtorrent stop

das starten, bzw. beenden von rtorrent steuern.

Alternativ könnt ich rTorrent mit dtach oder screen starten und dann mit einer Tastenkombination Hintergrund schicken. Anschließend kann man rTorrent mit einem bestimmten Befehl wieder in den Vordergrund holen.

1.3.2. dtach

Anmerkung: dtach hasst scheinbar Tastaturen. Die Pfeiltasten gehen nicht und es werden teilweise so lustige Tastenkombos wie "strg +/" verlangt (mit einer deutschen Tastatur unmöglich). Allerdings verbraucht es weniger RAM als screen. Wenn ihr aber sowohl mit Konsole als auch mit Webfrontend arbeiten wollt, sei euch screen dringenst ans Herz gelegt. Ansonsten könnt ihr ruhig dtach nach dem Motto "Hauptsache es läuft" benutzen.

Um später rtorrent in der Konsole aufzurufen müsst ihr folgendes entweder als root oder als der User, unter dem rtorrent gestartet wurde, ausführen:

dtach -a /tmp/rtorrent.dtach -e ^Y

Mit „strg + y“ könnt ihr den rtorrent Bildschirm wieder verlassen. Die Kombination "strg + y" könnt ihr ändern, je nachdem, was ihr hinter "-e" schreibt.

Wenn euch das zu kompliziert ist, könnt ihr auch diesen neuen Eintrag in der ~/.bashrc des betreffenden Users erstellen:

alias rtorrent="dtach -a /tmp/rtorrent.dtach -e ^Y"

Jetzt wird der Befehl „rtorrent“ auf den Befehl „ dtach -a /tmp/rtorrent.dtach -e ^Y“ quasi umgeleitet. Es genügt also ein „rtorrent“ um den rtorrent-Bildschirm zu öffnen.

1.3.3. screen

aktuelle alternative: https://wiki.archlinux.org/index.php/RTorrent#With_screen

** Vorerst nur für Firsts Gentoo-Runscript ** Eigentlich ganz einfach: fügt in /etc/rtorrent/.screenrc die User hinzu, die bei screen attachen dürfen (root ist default) danach startet ihr rtorrent schnell neu

/etc/init.d/rtorrentd restart

ab jetzt könnt ihr mit den entsprechenden Usern durch

screen -r rtorrent/rtorrent

attachen

wie immer kann man sich auch wieder ein alias anlegen: In der ~/.bashrc des betreffenden Users den folgenden Eintrag erstellen:

alias rtorrent="screen -r rtorrent/rtorrent"

und schon wird mit rtorrent der client geöffnet.

detachen kann man mit der Tastenkombo strg+a+d

2. Apache und PHP

Wir holen uns zunächst wieder ein paar Pakete und installieren diese, benötigt wird *Apache 2 *PHP 5 *SCGI-Mod für Apache *xmlrpc-Modul für PHP

sudo apt-get install apache2 php5 php5-cli libapache2-mod-php5 libapache2-mod-scgi , php5-xmlrpc

Dann noch den mod scgi für Apache konfigurieren:

sudo nano /etc/apache2/apache2.conf

Und fügen folgendes hinzu (zum Beispiel am Ende):

#own configuration
SCGIMount /RPC2 127.0.0.1:5000

Wenn wir rTorrent und rEmote auf nur einem Server betreiben, wie es wohl die Meisten machen werden, ist es das Sinnvollste, wenn wir den Zugriff auf RPC2 auf unseren Server beschränken. Dazu können wir einfach folgende Zeilen an die Obige anhängen.

<Directory "/RPC2">
	Order Deny,Allow 
	Deny from all 
	Allow from 127.0.0.1
</Directory>

Jetzt starten wir den Apache2 bzw. starten ihn neu falls er bereits läuft:

sudo apache2ctl restart

3. MySQL

wieder werden ein paar Pakete benötigt. in unserem Fall:

  • Den MySQL-Server
  • Einen MySQL-Client
  • Das MySQL-Modul für PHP

Manually add MySQL APT Repository

zuerst müssen wir die PGP-keys des offiziellen Repository adden

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5072E1F5

und das offizielle Repository von Oracle zur source.list hinzufügen Erzeuge eine Datei unter '/etc/apt/sources.list.d/mysql.list

sudo touch /etc/apt/sources.list.d/mysql.list
[nano|vi|...] /etc/apt/sources.list.d/mysql.list

und füge folgenden Eintrag ein Als Beispiel:

deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7
deb-src http://repo.mysql.com/apt/debian/ stretch mysql-5.7

Folgend kann der Eintrag zusammengesetzt werden

deb http://repo.mysql.com/apt/{debian|ubuntu}/ {jessie|wheezy|trusty|utopic|vivid} {mysql-5.6|mysql-5.7|workbench-6.3|utilities-1.6|connector-python-2.1}

bei Debian/Ubuntu wieder:

sudo apt-get install mysql-server mysql-client php5-mysql

MySQL-service stoppen

service mysql stop

Und folgenden Eintrag in der Config ("my.cnf" / "mysql.cnf") machen

sudo [nano|vi|etc] /etc/mysql/mysql.conf.d/mysqld.cnf
# Default is STRICT_TRANS_TABLES, but this require " A value is missing when a new row to be inserted does not contain a value for a non-NULL column that has no explicit DEFAULT clause in its definition."
sql-mode        = "NO_ENGINE_SUBSTITUTION"

Die Konfiguration testen

mysql --help

Alles Gut? MySQL-service starten

service mysql start

Im Folgenden gilt: "remote", "remotepassword0815" und "remoteDB" sind nur Vorschläge und müssen (bzw. sollten) nicht übernommen werden.

Erstellt einen neuen User für rEmote mit entsprechendem Passwort

CREATE USER 'remote'@'127.0.0.1' IDENTIFIED BY 'remotepassword0815';

und verseht ihn mit ein paar Rechten

GRANT USAGE ON * . * TO 'remote'@'127.0.0.1' IDENTIFIED BY 'remotepassword0815' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

erstellt die rEmote-Datenbank

CREATE DATABASE IF NOT EXISTS `remoteDB`;

und weißt die Datenbank dem rEmote-User zu

GRANT ALL PRIVILEGES ON `remoteDB` . * TO 'remote'@'127.0.0.1';

und ab dafür

FLUSH PRIVILEGES;

jetzt beendet ihr MySQL

quit

4. rEmote Installation

4.1. Vorbereitung

Im DocumentRoot des Apache (unter Debian üblicherweise /var/www) einfach das remote-tar mit "tar -xvf" entpacken. anschließend in den Ordner "remote" wechseln, die datei "example.config.php" in "config.php" umbenennen.

cd remote
mv example.config.php config.php
nano config.php

Hier nun die SQL-Einstellungen ausfüllen:

$sql = array(
	'type'		=> 'mysql',
	'user'		=> 'remote',
	'password'	=> 'remotepassword0815',
	'host'		=> '127.0.0.1',
	'database'	=> 'remoteDB'
);

und den RPC-Pfad angeben

$rpc_connect="http://localhost/RPC2";

um den Installationvorgang abzuschließen zu können müssen wir noch eine Datei mit dem Namen ".lock" erstellen und dieser Schreibrechte für den Webserver geben.

touch .lock
chgrp www-data .lock
chmod 660 .lock

** Die Gruppe www-data ist natürlich durch eine Gruppe zu ersetzen deren Mitglied der Webserver ist. Unter Debian/ubuntu funktioniert "www-data" **

4.2. Installer

Nun ruft ihr vom Webbrowser aus euren Server auf, mit dem Pfad /remote/install/

Wenn alles glatt gelaufen ist, solltet ihr folgendes oder ähnliches Bild sehen. Wählt die Sprache aus, die ihr nutzen wollt, und klick auf Speichern.

Nach einem Klick auf "Fortfahren" seht ihr welche Erweiterungen benötigt werden. Neben jedem benötigten Modul sollte ein grünes "Licht" erscheinen. Ist ein benötigtes Licht rot. Müsst ihr die bestehende Erweiterung nachinstallieren. Unter Debian/Ubuntu heißen die Pakete üblicherweise "php5-ERWEITERUNGSNAME", wie z.B. "php5-xmlrpc".

Nach einem Klick auf "Fortfahren" wird die Verbindung zu rtorrent überprüft. Hier seht ihr das erste mal, ob ihr einen Fehler in Schritt 1 gemacht habt. Wenn ihr folgenden Fehler seht: Dann solltet ihr Sicherstellen dass der Zugriff auf den RPC-Pfad geschützt ist, wie z.B. in Punkt 2 beschrieben. Ist dies der Fall, könnt ihr einfach auf "Fortfahren" klicken. Ansonsten solltet ihr die Sicherung aus Punkt 2 nachholen, einen htaccess-Schutz erstellen oder zur Not den Beschreibungen unter der Fehlermeldung im Installer folgen.

in den nächsten beiden Schritt werden die benötigten SQL-Tabellen und Einstellungen automatisch eingetragen. Sollten hierbei Schwierigkeiten auftreten, prüft bitte ob eure SQL-Zugangsdaten korrekt in die config.php eingetragen wurden. In MySQL könnt ihr zudem noch testen ob euer User die Datenbank aufrufen kann:

mysql -u remote -p remoteDB

Anschließend das Passwort eingeben und schauen ob man sich mit diesen Zugangsdaten zur Datenbank verbinden kann.

wenn wir das geschafft haben, kommen wir auch schon dazu den ersten User zu erstellen. Einzufüllen sind hier Benutzername und Passwort, sowie das Verzeichniss, in dem der User rechte hat. Der erste User ist automatisch Administrator und kann Andere User erstellen. Zu beachten ist hierbei, dass ein Administrator, Nutzern auch nur Rechte auf Verzeichnisse geben kann, in denen er selbst rechte hat. Möchte man also eine Ordnerstruktur wie "/daten/downloads/user1", "/daten/downloads/user2", "/daten/downloads/user3", etc... so macht es sinn, dem ersten User das Verzeichnis "/daten/downloads/" zu geben, damit er anschließend Problemfrei weitere nutzer anlegen kann.

Anschließend können wir die von rEmote benötigten Pfade kontrollieren und Editieren. Im Standard sollte alles so funktionieren. Ins Standardverzeichniss für neue User lässt sich ein Default-Wert einstellen, der, außer bei der Erstellung weiterer neuer User, nicht von bedeutung ist. [i]Bis zur Final wird dieses Verzeichniss wohl noch entfernt werden und standardmäßig das Home-Verzeichniss des Erstellenden Users verwendet, um im Verzeichniss-Wirrwarr ein bisschen aufzuräumen[/i]

Der vorletzte Schritt beinhaltet die von rEmote-Verwendeten Unix-Programme: Einige Programme sind womöglich installiert, aber nicht eingetragen. Wir können diese nun automatisch suchen lassen und/oder ihren Pfad manuell eintragen. Hierzu klicken wir auf "ändere Verzeichnisse"

Direkt nach dem Öffnen des Dialogs sieht man, dass der Installer das Programm "zip" automatisch erkannt hat. Weitere Programme die nicht oder falsch erkannt wurden, kann man hier manuell nachbessern.

Nach einem klick auf Speichern, wurden die neuen Programmpfade übernommen, und im Screenshot sieht man, dass das "Licht" neben "zip" grün geworden ist.

Nach einem klick auf "Fortsetzen" gelangen wir nun zum Abschluss der Installation. Hier kann eigentlich nichts mehr schiefgehen und rEmote kann verwendet werden.