DIESE ANLEITUNG WURDE AUSSCHLIEßLICH GESCHRIEBEN, UM KLAR ZUSTELLEN, WIE „EINFACH“ ODER „SCHWER“ DIE EINRICHTUNG WIRKLICH WÄRE, DA VIELE SEITEN FALSCHE INFORMATIONEN BEZÜGLICH u.A. DER EINRICHTUNG VON OPENBAY VERBREITEN! OB SIE ALS LESER DIESE UMSETZEN ODER NICHT, LIEGT IN IHRER EIGENEN VERANTWORTUNG. ALLES, WAS SIE MIT DIESER ANLEITUNG MACHEN, GESCHIEHT AUF EIGENE GEFAHR. ICH ALS AUTOR ÜBERNEHME KEINERLEI HAFTUNG FÜR JEGLICHE SCHÄDEN DIE DURCH DIE NUTZUNG / BEFOLGUNG / ETC DIESER ANLEITUNG ENTSTEHEN KÖNNTEN.
INDEM SIE DIE FOLGENDE ANLEITUNG LESEN, STIMMEN SIE DEM GESAMTEN, ROTEN TEXT AUF DIESER SEITE ZU BZW AKZEPTIEREN IHN.
OHNE SPHINX ENGINE
1. Vorbereitung
apt-get update
apt-get -y upgrade
apt-get -y install nano unzip php5-fpm wget php5-mysql
nano /etc/apt/sources.list
Für Debian:
deb http://nginx.org/packages/debian/ [Codename] nginx deb-src http://nginx.org/packages/debian/ [Codename] nginx
Für Ubuntu:
deb http://nginx.org/packages/ubuntu/ [Codename] nginx deb-src http://nginx.org/packages/ubuntu/ [Codename] nginx
ans Ende der Datei anhängen und die eckigen Klammern ersetzen (z.B. mit „wheezy“ für Debian 7.x, oder „trusty“ für Ubuntu 14.x)
apt-get update
apt-get install nginx [Beim Prompt mit y + Enter bestätigen]
2. Vorkonfiguration
mkdir -p /var/www/openbay
nano /etc/nginx/conf.d/openbay.conf
Folgenden Spoiler einfügen und anpassen:
server {
listen 80;
server_name [Sub- / Domain oder IP];
root /var/www/openbay/www;
index index.php;
set $yii_bootstrap „index.php“;
charset utf-8;
gzip on;
gzip_comp_level 5;
gzip_types text/plain text/css text/javascript application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss;
location / {
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|svg)$ {
fastcgi_hide_header Set-Cookie;
open_file_cache max=10000 inactive=14d;
open_file_cache_errors on;
open_file_cache_min_uses 3;
open_file_cache_valid 1m;
output_buffers 1 2m;
expires 14d;
}
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
set $fsn /$yii_bootstrap;
if (-f $document_root$fastcgi_script_name){
set $fsn $fastcgi_script_name;
}
fastcgi_pass localhost:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fsn;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fsn;
# fastcgi_param HTTPS $https_value;
}
}
Strg + O, Enter, Strg + X
nano /etc/php5/fpm/php.ini
Strg + W, „cgi.fix“ eingeben, Enter
aus:
;cgi.fix_pathinfo=1
folgendes:
cgi.fix_pathinfo=0
machen. Nun per Strg + V gedrückt halten um ans Ende der Datei gehen und folgendes einfügen:
extension=pdo.so
extension=pdo_mysql.so
Strg + O, Enter, Strg + X
nano /etc/php5/fpm/pool.d/www.conf
Nach
listen = /var/run/php5-fpm.sock
suchen und durch
listen = localhost:9000
ersetzen.
Strg + O, Enter, Strg + X
service php5-fpm restart
2. OpenBay herunterladen und vorbereiten
Bei GitHub die „master.zip“ von OpenBay herunterladen.
Um das Archiv direkt auf den Server zu laden:
wget [vollständiger Link zur .zip]
Entpacken:
unzip master.zip
cd openbay-master/src
Nun beiden Ordner verschieben. Wer kopieren will, macht aus „mv“ „cp -r“.
mv * /var/www/openbay/
cd /var/www/openbay
chown -R www-data:www-data *
service nginx restart
service php5-fpm restart
ACHTUNG: Die folgenden Schritte bis 3. sind nur erforderlich, wenn man die Datenbank selbst hosten möchte. Wem der „Aufwand“ soweit reicht o.Ä., macht einfach ab 3. weiter. Um die Datenbank selbst zu hosten, sind mindestens 3GB freier Speicher erforderlich!
apt-get install mysql-server rtorrent
mysql_install_db
mysql_secure_installation
Nun das Passwort eingeben welches man während der Installation festgelegt hat, dann n + Enter und alle weiteren Prompts einfach mit Enter bestätigen, bis man wieder beim Command Prompt ist.
rtorrent
Jetzt die Backspace Taste drücken (die längliche mit dem Pfeil nach links über Enter) und die vollständige URL zur .torrent Datei der OpenBay Datenbank einfügen (geht in PuTTY einfach per rechte Maustaste) und mit Enter bestätigen. Anschließend warten, bis unter dem Eintrag „torrents_mini.csv.gz“ „done“ steht. Ist der Download abgeschlossen und der Hash überprüft, kann rtorrent per Strg + Q geschlossen und anschließend auch gleich per
apt-get purge rtorrent
deinstalliert werden, da wir es für diesen Guide nicht mehr brauchen. Jetzt die csv entpacken:
gunzip torrents_mini.csv.gz
Dies lässt nurnoch die csv zurück, die .gz „verschwindet“. Dass MySQL auf die Datei zugreifen kann, muss sie sich an einem Ort befinden, auf den MySQL zugreifen darf. Am Einfachsten geht das folgendermaßen:
mkdir /sql
mv torrents_mini.csv /sql
Weiter geht’s:
cd
nano openbay.sql
Folgendes einfügen:
[/spoiler]
CREATE TABLE IF NOT EXISTS `torrents` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`description` text,
`category_id` tinyint(4) DEFAULT NULL,
`size` bigint(20) unsigned DEFAULT NULL,
`hash` varchar(40) NOT NULL,
`files_count` int(11) DEFAULT ‚0‘,
`created_at` datetime DEFAULT NULL,
`torrent_status` smallint(2) DEFAULT ‚0‘,
`visible_status` smallint(2) DEFAULT ‚0‘,
`downloads_count` mediumint(8) unsigned NOT NULL DEFAULT ‚0‘ COMMENT ‚umax = 16777215‘,
`scrape_date` datetime DEFAULT NULL,
`seeders` mediumint(8) unsigned NOT NULL DEFAULT ‚0‘,
`leechers` mediumint(8) unsigned NOT NULL DEFAULT ‚0‘,
`tags` varchar(500) DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `hash` (`hash`),
KEY `created_at` (`created_at`),
KEY `size` (`size`),
KEY `seeders` (`seeders`),
KEY `category_id_torrent_status_visible_status`
(`category_id`,`torrent_status`,`visible_status`)
);
LOAD DATA local INFILE ‚/sql/torrents_mini.csv‘ INTO TABLE torrents FIELDS TERMINATED BY ‚|‘
(name, size, hash, downloads_count, tags, seeders, leechers);
[/spoiler]
(Danke an der Stelle an @NewEraCracker auf GitHub, von ihm ist ein Teil dieses Codes)
und per Strg + O, Enter, Strg + X speichern.
mysql -u root -p[MySQL Root User Passwort]
create database [Name für die Datenbank];
exit
Wieder im „normalen“ Prompt:
mysql -u root -p[MySQL Root Passwort] [Name der neuen Datenbank] < openbay.sql
Dies wird eine GANZE WEILE dauern (je nach CPU Performance des Servers), heißt, so eine halbe Stunde kann man schon einrechnen, wenn man keinen Dedizierten mit (Dual) Xeon usw hat 😉
Während der Ausführung sollte nichts ausgegeben werden. Kommt stattdessen eine Fehlermeldung, ist bei GitHub in der Datenbank Repo ein Thread zu finden, wo ein Torrent verlinkt ist, hinter dem sich die gesamte Datenbank als sql befindet. Herunterladen des Torrents wieder wie oben (mit rtorrent), importieren des Dumps mit dem gleichen Befehl wie der nach“Wieder im normalen Prompt“ nur, dass openbay.sql natürlich mit dem Dateinamen des Dumps, „torrents_mini.sql“ ersetzt werden muss.
3. Die letzten Schritte
Nun das, was man in der /etc/nginx/conf.d/openbay.conf als server_name angegeben hat im Browser aufrufen. Es sollte einen Folgendes erwarten:
Und bei „System requirements“ sollte PDO und PDO_MYSQL einen grünen Haken haben:
Falls ja – wunderbar, fast geschafft 😉
Falls nein: bitte darauf achten, die Anleitung entweder EXAKT zu befolgen und unter keinen Umständen etwas auslassen oder, falls man bewusst manches abändert, es auch im folgenden anpassen. Falls es immer noch nicht mag: Kommentarfunktion ist unten. :p
Unter General und Name können wir einen Namen für unsere „eigene Piratenbucht“ festlegen. Dieser Name wird z.B. in Browsern im Tab angezeigt.
Wer die Schritte mit MySQL übersprungen hat: Database, Sphinx, Cache und Log einfach eingeschaltet lassen.
Wer MySQL eingerichtet hat um die Datenbank selbst zu hosten: Database „ausschalten“ und in die daraufhin erscheinenden Felder folgendes Eintragen:
[/spoiler]
Host: 127.0.0.1
Port: 3306
Database: [Name den man der Datenbank gegeben hat]
Username: [„root“ wenn man keinen neuen angelegt hat]
Password: [Passwort des Nutzers den man bei „User“ angegeben hat]
[/spoiler]
Abschließend den „Deploy“ Button betätigen…
Und das sollte erscheinen:
Ein allerletzter Klick auf „Browse Torrents“ zeigt einem, ob auch die Verbindung mit der (Remote) Datenbank (von IsoHunt) funktioniert. Falls ja:
Glückwunsch, schon hat man sein eigenes OpenBay (Frontend) auf seinem Server laufen!!
Sollten Probleme auftreten: Kommentare werden gerne beantwortet, wenn sie konstruktiv und ernst gemeint sind 🙂
P.S.: Eine Fortsetzung dieses Posts folgt demnächst, in dem ich auch zeigen werde, wie man die Sphinx Engine einrichtet!