Archiv der Kategorie: linux

Plex Media Server

Ich nehme so einiges mit dem VDR auf, jedoch komme ich selten dazu mir die Aufnahmen anzuschauen. Meine neueste Überlegung war es die Aufnahmen auf einem Tablet bzw auf einem Smartphone über eine Samba Freigabe anzuschauen. Jedoch fand ich im Internet einige Hinweise das dies nicht möglich ist bzw. nur das betrachten von Fotos und bearbeiten von Dokumenten sei möglich. Ein Kollege gab mir den Tip mir den Plex Media Server anzuschauen.

Die Installation unter Ubuntu war mit Hilfe der deb Datei die unter https://plex.tv/downloads heruntergeladen werden kann sehr einfach. 

wget https://downloads.plex.tv/plex-media-server/0.9.12.3.1173-937aac3/plexmediaserver_0.9.12.3.1173-937aac3_amd64.deb

dpkg -i plexmediaserver_0.9.12.3.1173-937aac3_amd64.deb

Unter den Downloads befinden sich auch die Versionen für Windows, Mac, weitere Linux Systeme sowie einige NAS Systeme.

Nach der Installation ist die die Weboberfläche des Servers unter der Url http://<Serverip>/34200/web erreichbar.

Über die Weboberfläche konnte eine Mediathek für die Aufnahmen angelegt werden und Diese wurden durch die Agenten eingelesen. Leider wurden keine Film bzw Serienaufnahmen erkannt und somit wurde ein Bild aus der Aufnahme und der Dateiname 0001.ts in der Übersicht dargestellt. Was bei mehreren Aufnahmen leicht verwirrend ist.

Auf github unter https://github.com/forouher/VDR.bundle hat jemand das gleiche Problem gehabt und ein Plugin veröffentlicht. Das Plugin wird unter ../Plex Media Server/Plug-ins/VDR.bundle abgelegt und ein Softlink oder eine Kopie wird von ../VDR.bundle/Scanners/Movies/VDR Recordings Scanner.py unter  ../Plex Media Server/Scanners/Movies/ erstellt. Das Verzeichnis Movies muss zuvor erstellt werden. Damit der Benutzer Plex das Plugin nutzen kann, müssen die Rechte entsprechend angepasst werden.

Damit die Aufnahmen erkannt werden muss bei der Mediathek die Bibliotheksart Film, bei Scanner VDR Recordings Scanner und bei Agent VDR Recordings Importer ausgewählt werden.

Nach dem nächsten Lauf des Agenten wird der Name der Serie ausgegeben, ein kleiner Infotext und bei einigen Serien die Folgennummer.

Plex pass

Für das abspielen der Inhalte gibt es im App Store von Google und Apple eine entsprechende App, diese ist jedoch nicht kostenlos. In den jeweiligen App Stores der Smart TVs ist Plex ebenfalls als App vorhanden, hierfür der Plex pass benötigt. Der Plex pass kann auf der Plex Seite als  monatliches oder jährliches Abo gekauft werden, eine Einmalzahlungen ist ebenfalls möglich. Der Plex pass bietet mehr Funktionen, eine für mich interessante Funktion ist die Synchronisierung der Aufnahmen mit dem Mobilen Endgerät. Der Server kodiert die Aufnahme in die für das mobile Engerät benötigte Auflösung und im Anschluss lädt der Client die Datei herunter. Die Aufnahme kann nun unterwegs ohne Verbindung zum Server angeschaut werden.

[nginx] ssl Zertifikat einrichten

Für die sichere Kommunikation zwischen nginx Server und Browser empfiehlt es sich wie beim Apache ein SSL Zertifikat zu verwenden.

Damit nach der erfolgreichen Einrichtung ein Aufruf per https erfolgen kann, muss zunächst der Port 443 in der firewall freigeschaltet werden.
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Hier die benötigten Schritte um ein SSL Zertifikat zu erstellen:
yum install mod_ssl openssl
cd /etc/ssl
openssl genrsa -out seite2.key 2048
openssl req -new -key seite2.key -out seite2.csr
openssl x509 -req -days 365 -in seite2.csr -signkey seite2.key -out seite2.crt

Für den SSL Server block wurde die Datei /etc/nginx/conf.d/seite2.conf nach /etc/nginx/conf.d/ssl-seite2.conf kopiert.

Aufbau ssl-seite2.conf
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/seite2.crt;
ssl_certificate_key /etc/ssl/seite2.key;

index index.html;

server_name www.seite2.de;
access_log /var/vhosts/seite2/logs/ssl-seite2.access.log main;
error_log /var/vhosts/seite2/logs/ssl-seite2.error.log;

root /var/vhosts/seite2/www;
}

Damit der Besucher der Seite beim http Aufruf auf https weitergeleitet wird, wurden folgende Zeilen in der /etc/nginx/conf.d/seite2.conf hinterlegt:

if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

[nginx] und php

Für viele Webseiten oder Anwendungen wie WordPress, Joomla sowie Contao wird php benötigt. Von Haus aus kann nginx nur html oder Bilddateien ausgeben, damit php Seiten dargestellt werden wird php-fpm benötigt.

Zunächst wird php-fpm unter dem root Benutzer installiert:
yum install php-fpm

Nach der Installation habe ich in der /etc/php.ini folgende Anpassung vorgenommen:
cgi.fix_pathinfo=0

Für die php Konfiguration der www.seite1.de wurde die Datei /etc/php-fpm.d/seite1.conf angelegt.

[seite1]
listen = /var/run/php-fpm/seite1.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
user = seite1
group = seite1
pm = dynamic
pm.max_children = 10
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
chdir = /var/vhost/seite1/www/
php_admin_value[open_basedir] = /var/vhosts/seite1/www:/var/vhosts/seite1/temp
php_admin_value[upload_tmp_dir] = /var/vhosts/seite1/temp

Zum Schluss die folgenden Zeilen dem Server-Block in der Datei /etc/nginx/conf.d/seite1.conf hinzufügen.
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm/seite1.sock;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}

Gestartet wird php-fpm über systemctl start php-fpm.service bzw über systemctl stop php-fpm.service gestoppt.

[nginx] einrichten von vhosts

Wie beim Apache Webserver ist es auch unter nginx möglich verschiedene virtuelle hosts einzurichten. Bei nginx werden diese jedoch nicht als virtuelle hosts bezeichnet sondern als server blocks.

Damit die Seiten unter verschiedenen Benutzern bearbeitet werden können, habe ich zunächst einen Benutzer angelegt adduser seite1 /var/vhosts/seite1. Unter dem Benutzer seite1 wurden die Verzeichnisse logs und www angelegt, im Anschluss müssen noch die Rechte der Verzeichnisse angepasst werden.

chmod 755 /var/vhosts/seite1
chmod 755 /var/vhosts/seite1/www
chmod 760 /var/vhosts/seite1/logs

Damit der nginx die log Dateien in dem angegeben Verzeichnis erstellen kann muss der nginx Benutzer der Gruppe seite1 hinzugefügt werden.

Die Konfiguration des Vhosts wurde in der Datei /etc/nginx/conf.d/seite1.conf erstellt.

server {
index index.html;

server_name www.seite1.de;
access_log /var/vhosts/seite1/logs/seite1.access.log main;
error_log /var/vhosts/seite1/logs/seite1.error.log;

root /var/vhosts/seite1/www;
}

Wenn bei auftretenden Fehlern zum Beispiel die eigene 404 Seite angezeigt werden soll, reicht der folgende Eintrag in der Konfiguration.

error_page 404 errors/404.html;

[nginx] installation unter centos7

Um nginx installieren zu können wird zunächst ein Software Repository benötigt, welches unter dem Benutzer root hinzugefügt wird.
yum install epel-release

Im zweiten Schritt kann nginx installiert werden:
yum install nginx

Nach Abschluss der Installation kann der Dienst über systemctl start nginx.service gestartet werden. Damit der Zugriff per Browser möglich ist, muss der Port 80 in der Firewall geöffnet werden.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

Nun ist ein Aufruf per Browser über http://serverip möglich.

nginx Startseite

Damit nginx beim nächsten Systemstart mit gestartet wird, muss folgender Befehl ausgeführt werden:
systemctl enable nginx.service

Möchte man an dem default vhost(server block) ein paar Anpassungen vornehmen, so befindet sich die Standardkonfiguration in der Datei /etc/nginx/nginx.conf. Die html Dateien befinden sich in dem Verzeichnis /usr/share/nginx/html/.