Archiv der Kategorie: Linux

nextcloud – HTTP error 500 nach update (memory caching)

Nach einem fehlgeschlagenen Update von Version 11.0.4.1 auf die aktuelle Version 12.0.4. auf dem Raspberry Pi 2 konnte ich die meinen privaten Onlinespeicher nicht mehr erreichen.  Nach dem Aufruf der URL reagierte der Apache-Webserver mit dem HTTP Error 500 (Internal Server Error). Ein Blick in das Fehlerprotokoll (dieses wird im Datenverzeichnis gespeichert, bei Verwendung des Editors ’nano‘ kann mit der Tastenkombination ‚Strg+W+V‘ in die letzte Zeile gesprungen werden) verriet, dass die ‚Memory Caching‘-Funktion scheinbar Verursacher der Fehlers ist. Daraufhin habe ich mir die Konfigurationsdatei im Installationsverzeichnis von Nextcloud angeschaut und den folgenden Eintrag gefunden:

'memcache.local' => '\\OC\\Memcache\\APC',

Nachdem ich diese Zeile auskommentiert habe, konnte ich das Update beenden. Eine kurze Recherche hat ergeben, dass die ‚Memory Caching‘-Funktion zur signifikanten Verbesserung der Server-Performance dient, weshalb diese genutzt werden sollte. Im Admin-Bereich erhalte ich nun auch diese Einrichtungswarnung, weshalb ich mich nach der erfolgreichen Syncronisierung aller mit dem Server verbundenen Clients um die (Re-) Aktivierung der Funktion kümmern werde.

Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Das Logo von Nextcloud ist Eigentum der Nextcloud GmbH aus Stuttgart, Deutschland.

HandBrake – Open Source Video Transcoder | Linux Ubuntu Server 12.04.2 LTS

An dieser Stelle eine kurze Vorstellung der Software HandBrake, die es als Kommandozeilen-Variante für Linux-Systeme gibt. Bitte beachten, dass die Installation von Fremdquellen immer das System gefährden. Um die Software zu installieren sind folgende Befehle auszuführen:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-cli

Danach kann die Software unter Verwendung von Kommandozeilenbefehlen sowie Presets (voreingestellte Transkodierparameter) auf dem Server ausgeführt werden.

wiki.ubuntuusers – HandBrake

wiki.ubuntuusers – Hinzufügen von Fremdquellen

HandBrake – Scripting and Automation

HandBrake – Built-In Presets

Das Logo ist Eigentum des ‚The HandBrake Team‘.

 

 

Erweiterte Einstellungen – Plex Media Server Linux Ubuntu Server 12.04.2 LTS

Nachdem im ersten Beitrag zum Plex Media Server die Installation über Unity, einem Graphical User Interface (GUI), unter Verwendung des Terminals beschrieben wurde, soll nun die Installation und Konfiguration über ein SSH-Terminal nachgereicht werden. Dabei wird ein besonderes Augenmerk auf die Parameter der Datei Preferences.xml. 

Installation und Einrichtung

1. Schritt: Zunächst muss in der Datei sources.list (/etc/apt/sources.list), in welchem die sogenannten Repositories (also die Quellen für die Pakete) enthalten sind der folgende Eintrag hinzugefügt werden:

deb http://www.plexapp.com/repo lucid main

Danach wird der Repository-Key installiert:

wget http://plexapp.com/plex_pub_key.pub
$ sudo apt-key add plex_pub_key.pub
$ rm plex_pub_key.pub

Nun wird die eigentliche Installation gestartet:

$ sudo apt-get update
$ sudo apt-get install plexmediaserver

Die wichtigsten Befehle für den Plex Media Server lauten:

sudo service plexmediaserver start
sudo service plexmediaserver stop
sudo service plexmediaserver restart

Nachdem die Installation abgeschlossen ist, kann mit der Einrichtung begonnen werden.

2. Schritt: Standardmäßig ist der Zugriff auf die Konfiguration des Medienservers nur über den localhost möglich. Da eine grafische Benutzeroberfläche auf dem Server nicht zur Verfügung steht, muss für die erste Nutzung eine Option in der Datei Preferences.xml hinzugefügt werden. Man findet die Datei unter Ubuntu in /etc/default/plexmediaserver. Durch Hinzufügen von disableRemoteSecurity = "1" in den Preferences wird die Konfigurationsmaske über jeden beliebigen Browser aufrufbar:

http://IP-ADDRESS:32400/manage/index.html

3. Schritt: Auf jeden Fall sollte man sich ein „myplex“-Benutzeraccount anlegen, um den Server später besser administrieren zu können. Die Zugangsdaten sowie weitere wichtige Einstellungen kann man über verschiedene Eingabemasken zur Verfügung stellen. Am Ende sollten folgende Parameter in der Datei Preferences.xml  enthalten sein:

MachineIdentifier="-"
ProcessedMachineIdentifier="-"
AcceptedEULA="1"
FirstRun="0"
PlexOnlineMail="-"
PlexOnlineToken="-"
PlexOnlineUsername="-"
PublishServerOnPlexOnlineKey="1"
ManualPortMappingMode="1"
FriendlyName="-"

Dabei steht „-“ für individuelle Angaben.

Danach wird  disableRemoteSecurity = "1" entfernt, jedoch steht der Server weiterhin nach Eingabe der „myplex“-Benutzerdaten zur Verfügung.

Pfad zu den wichtigen Dateien unter Ubuntu:

/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml
/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Logs/

Plex Media Server – Advanced Preferences

Plex Media Server – Installation „How To“

Plex Media Server – Plex Nine Tips & Tricks

Plex Media Server – Publishing Plex Media Server

Zur Vereinfachung der Administration können auch direkte URL-Kommandos verwendet werden. Diese sind insbesondere bei der schnellen Ausführung von Befehlen hilfreich.

Plex Media Server – URL Command

Das Logo ist Eigentum der Entwickler der Website plexapp.

SSL-Verschlüsselung von Websites Apache HTTP Server | Linux Ubuntu Server 12.04.2 LTS

Bereits im Eintrag vom 30. April 2013 habe ich ansatzweise erläutert, mit welchen Mitteln eine SSL-Verschlüsselung des Webservers zu realisieren ist. Um dieses Wissen anzuwenden, werden nun jene Schritte erläutert, um eine konkrete Subdomain http://xy.meinedomain.com durch ein SSL-Zertifikat abzusichern. An dieser Stelle wird davon ausgegangen, dass ihr bereits über eine abgeschlossene Installation des Webservers als auch des entsprechenden Dienstes verfügt. Dieser soll nunmehr über die abzusichernde Subdomain aufgerufen werden.

Zunächst nochmals die wichtigsten Links zum Thema:

Wiki.Ubuntuusers.de – Apache SSL

Heise Security SSL für lau

Zertifizierungstelle StartSSL

Ein SSL-Zertifikat kann durch kommerzielle Anbieter (Verisign, RapidSSL etc.) ausgestellt werden, dessen Preisen sich nach Authentifizierungsmethode und Laufzeit richten. Es gibt jedoch auch einen israelischen Anbieter (StartSSL), der ein kostenloses Zertifikat für ein Jahr Laufzeit ausstellt. Dessen Wurzelzertifikat ist bereits in allen gängigen Webbrowsern enthalten ist. Dadurch wird keine Fehlermeldung bei Aufruf der Domain ausgegeben. StartSSL verwendet als Authentifizierungsmethode eine Domainvalidierung. Diese ist Voraussetzung für die Ausstellung eines Zertifikats.

Theorie:

  1. Aktivierung des entsprechenden Apache-Moduls
  2. Änderung des Port-Konfiguration des Apache-Webservers
  3. Generierung eines Schlüsselpaars (öffentlicher und privater Schlüssel)
  4. Auslesen des öffentlichen Schlüssels und Erstellung eines Certificate Signing Request (CSR)
  5. Übermittlung des CSR an die Certificate Authority (CA)
  6. Ausstellen des Zertifikats durch die CA
  7. Speicherung des Zertifikats auf dem Webserver und Auslieferung an die Clients

Praxis:

Alle Arbeiten an der Konfiguration des Webservers sollten im Ordner /etc/apache2 durchgeführt werden.

Einige Befehle für den Apache-Webserver:

sudo service apache2 start
sudo service apache2 stop
sudo service apache2 restart
sudo service apache2 force-reload

1. Schritt: Änderung der Konfiguration ports.conf (/etc/apache2) des Apache-Webservers, so dass dieser auf Anfragen des Ports 443 reagiert (Standard-Port für HTTPS-Verbindungen). Falls der Server über einen SSH-Dienst verfügt, kann die Konfiguration bequem über eine SFTP-Verbindung übertragen und am lokalen Rechner bearbeitet werden. Jedoch ist die Bearbeitung mittels eines SSH-Terminals und einem passenden Editors (z.B. vi) in der Regel komfortabler.

sudo vi /etc/apache2/ports.conf

Die folgenden beiden Argumente sollten nicht auskommentiert, also aktiv sein:

[IfModule mod_ssl.c]
Listen 443
[/IfModule]
[IfModule mod_gnutls.c]
Listen 443
[/IfModule]

Bitte <> anstelle [] verwenden!

2. Schritt: Danach kann das SSL-Modul aktiviert werden.

sudo a2enmod ssl

Über den Befehl sudo a2dismod ssl kann das Modul auch jederzeit wieder deaktiviert werden.

3. Schritt: Nun wird das Schlüsselpaar (öffentlicher und privater Key) generiert:

openssl genrsa -out xy.meinedomain.com.com.key 2048

Anschließend kann das CSR erstellt werden:

openssl req -new -nodes -newkey rsa:2048 -keyout xy.meinedomain.com.key -out xy.meinedomain.com.csr

Dabei werden einige Punkte abgefragt sowie ein Challenge Password gefordert. Dieser Punkt kann mit einer Enter-Bestätigung übersprungen werden. Nach diesem Schritt befinden sich zwei neue Dateien xy.meinedomain.com.key sowie xy.meinedomain.com.csr im Arbeitsordner /etc/apache2. Diese sollten im Anschluss auf den lokalen Rechner gespeichert werden.

3. Schritt: Jetzt wird mit dem Anlegen eines Benutzeraccount bei StartSSL begonnen: Control Panel – Sign-Up. Nachdem alle Angaben gemacht wurden, wird die Validierung der Domain durchgeführt: Validations Wizard – „Type“ Domain Name Validation. Abgeschlossen wird der Vorgang mit der Zusendung und Eingabe des Bestätigungscodes.

4. Schritt: Im Anschluss kann das Zertifikat beantragt werden: Certificates Wizard – „Certificate Target“ WebServer SSL/TLS – Skip „Generate Private Key“ – Submit Certificate Request (CSR). Hier den Inhalt der Datei  xy.meinedomain.com.csr einfügen und übermitteln. Danach den „Top Target Domain“ auswählen und Subdomain festlegen. Damit ist der Prozess abgeschlossen. Mit einem Klick auf „Continue“ wird der Zertifikatinhalt erzeugt. Dieser wird vollständig in eine Textdatei kopiert und mit der Endung .crt abgespeichert.

5. Schritt: Zuletzt müsst ihr noch die Zertifikate „StartComm Root CA (PEM encoded)“ und das „Class 1 Intermediate Server CA“ herunterladen. Nun alle Dateien auf den Server übertragen und  in einem separaten Ordner unter /etc/apache2 abspeichern.

Abschließender Schritt: Abschließend muss ein VirtualHost für den SSL-Zugriff angelegt werden. Falls der abzusichernde Webservice bereits über eine Subdomain erreicht wird, kann auch eine Änderung notwendig sein. In der Regel werden die VirtualHost-Dateien unter /etc/apache2/sites-available unter ihrem Subdomainnamen abgespeichert. Die beispielhafte Konfiguration ist nachfolgend dargestellt:

2013-08-05_190730

 

Durch Ausführen eines Neustarts des Apache-Webservers wird die neue Konfiguration übernommen und der Webservice sollte nun verschlüsselt über die Subdomain aufgerufen werden können.

Plex Media Server Linux Ubuntu Server 12.04.2 LTS

Die Einrichtung des Medienservers „Plex“ gestaltet sich denkbar einfach. Zunächst muss das entsprechende Programmpaket heruntergeladen und installiert werden.

Installation über das Terminal:

sudo apt-get update

sudo apt-get install plexmediaserver

oder Installation über das Software Center durch Download des Programmpaketes

Nach erfolgreicher Installation kann der Server konfiguriert werden. Dies kann über einen beliebigen Webbrowser (sowohl über localhost als auch im Netzwerk) erledigt werden:

http://localhost:32400/web/index.html

Die Beschreibung der genauen Einrichtung spare ich an dieser Stelle aus, da gibt es im Netz genügend Informationen. Wichtig ist, dass nach der Installation ein neuer Nutzer plex zur Verfügung steht. In den entsprechenden Verzeichnissen muss dieser über die korrekten Rechte verfügen, um die reibungslose Funktion zu gewährleisten.

Dieser Befehle fügt den User plex der gewünschten Benutzergruppe hinzu:

sudo chown YOURUSER:plex -R /home/user/MEDIADIRECTORY

Und mit diesem Befehle wird dem User Lese-/Schreibrecht eingeräumt:

sudo chmod 770 -R /home/user/MEDIADIRECTORY

Installation Grundsystem inkl. Owncloud 5.0.5 Linux Ubuntu Server 12.04.2 LTS

Nachdem die Installation und Konfiguration der MySQL-Datenbank sowie der Skriptsprache PHP nur unter erheblichen Mehraufwand realisiert werden konnte und die Funktionalitäten von Owncloud unter IIS 7.5 / 8 bisher nur eingeschränkt verfügbar sind, ist die gesamte Architektur des Colocation-Servers geändert worden. Um zu einem späteren Zeitpunkt das Betriebssystem wechseln zu können, wurde auch der Einsatz der spezifischen Virtualisierungsplattform „Hyper-V“ überdacht. Zentraler Bestandteil des neuerlichen Konzepts ist die Verwendung der Virtualisierungssoftware „Virtual Box“.

Zukünftig sollen zwei virtuelle Maschinen die zentralen Aufgaben des Colocation-Servers übernehmen. Ein linux-basiertes System soll auf der Basis einer LAMP-Installation alle Hostingaufgaben realisieren und durch den Einsatz einer RSYNC- sowie FTP-Serverrolle als Backupsystem fungieren. Zusätzlich wird durch die Installation der Plex-Serversoftware jene Maschine als Mediaserver genutzt. Ein windows-basiertes System soll als Entwicklerplattform dienen und durch die freie Skalierbarkeit zusätzlicher Ressourcen für den Einsatz von Active Directory-, Sharepoint- und Exchange-Rollen bereitstellen.

Somit kommen wir zunächst zu einer ausführlichen Dokumentation der Testumgebung. Als erster wichtiger Baustein wird die Installation des Linux-Servers vorangetrieben. Durch die Einrichtung einer neuen virtuellen Maschine unter „Virtual Box“, wird das Fundament für den produktiven Einsatz gelegt.

Nachdem die Installation abgeschlossen ist, kann das System durch folgende Befehle aktualisiert werden.

sudo apt-get update
sudo apt-get upgrade

Da der Colocation-Server hardwareseitig genügend Potenzial für ein leistungsfähiges System besitzt und für die spätere Verwaltung von Medieninhalten eine grafische Oberfläche vorteilhaft sein kann, wird nachträglich ein GUI (Graphic User Interface) installiert.

sudo apt-get install ubuntu-desktop

Nun kann die Linux-Installation nach den Anforderungen der Anwendungen konfiguriert werden. In einem ersten Schritt wird die Webserver [Linux, Apache, PHP, MySQL (LAMP)] beschrieben.

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql phpmyadmin

Jetzt kann die Vorbereitung des Webservers und des Datenspeicherorts für Owncloud gestartet werden. Hinsichtlich späterer Datensicherungsmöglichkeiten und erhöhter Flexibilität bei der Datenspeicherung wird eine eigene virtuelle Festplatte erstellt. Diese wird mit über den nachfolgenden Befehl mit den entsprechenden Rechten für die Apache-Nutzergruppe ausgestattet.

chown -R www-data:www-data /datalocation

Wiki.Ubuntuusers.de – CHOWN

Optional kann der Apache-Webserver mit einer SSL-Zertifikat gesichert werden. Diese Möglichkeit soll zu einem späteren Zeitpunkt genutzt werden.

Heise Security SSL für lau

Wiki.Ubuntuusers.de – Apache SSL

SSLTrust – Apache 2.x SSL Einrichtung

Zertifizierungstelle CAcert

Zertifizierungstelle StartSSL

Als letzten Schritt auf dem Weg zur Owncloud-Installation muss der Apache-Webserver für die Verarbeitung von .htaccess vorbereitet und zwei Apache-Module aktiviert werden.

Zunächst die Verarbeitung von .htaccess-Dateien:

sudo vi /etc/apache2/sites-available/owncloud

Inhalt des Konfigurations-Datei:

Inhalt Konfigurationsdatei

Durch den folgenden Befehle wird der Apache-Webserver über die Aktivierung der Website informiert:

sudo a2ensite owncloud

Nun werden noch die beiden Apache-Module aktiviert:

sudo a2enmod headers rewrite

Zum Abschluss wird der Apache-Webserver einmal neu gestartet:

sudo service apache2 restart

Jetzt kann mit dem Installationsprozess von Owncloud begonnen werden. Dabei gibt es zwei verschiedene Wege: Installation über das Terminal oder über das Ubuntu Software Center. In der nachfolgenden Bildergalerie wird die Installation über das Software Center gezeigt. Die Befehle für das Terminal lauten:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud

Falls es beim Installationsprozess zu Problemen bezüglich der Rechteverwaltung auf der virtuellen Festplatte kommt, hilft eventuell ein Blick in diesen oder jenen Foreneintrag.

Weitere Informationen:

Fernwartung eines Linux-Systems über RDP [(Windows-) Remote Desktop Protocol] durch XRDP

mntechblog.de – LAMP Installation

http://forum.ubuntuusers.de/

http://wiki.ubuntuusers.de/MySQL

Upload von großen Dateien Owncloud

Das Ubuntu Logo ist Eigentum der Canonical Ltd.

PHP Einstellungen Owncloud und Strato Webhosting

Nach der Installation des Owncloud-Pakets müssen Änderungen an den globalen PHP-Einstellungen sowie einer spezifischen PHP-Datei vorgenommen werden. Diese sind notwendig, um die volle Funktionalität sicherzustellen.

Um bei dem im Titel genannten Webhosting-Anbieter die globalen PHP-Einstellungen zu ändern, muss eine eigene PHP-Konfiguration erstellt werden. Unter Verwendungen eines beliebigen Texteditors werden die von den Standardeinstellungen abweichenden Parameter in ein Dokument geschrieben und die Datei unter dem Namen „php.ini“ abgespeichert. Diese Datei wird danach mit einem beliebigen FTP-Programm oder einer SSH-Verbindung in das Owncloud-Wurzelverzeichnis hochgeladen. Durch dieses Vorgehen wird sichergestellt, dass der Apache-Webserver des Hosters die geänderten Parameter auf alle Unterverzeichnis anwendet. Für die eigene Installation habe ich mich für folgende Abweichungen entschieden:

file_uploads = On
max_execution_time = 600
safe_mode = Off
post_max_size = 650M
upload_max_filesize = 500M
max_file_uploads = 20
register_globals = Off

Diese Werte geben an, dass der Upload von Dateien mit max. 500 MB möglich ist. Für die Änderung von PHP-Parametern gibt es unzählige Möglichkeiten. Um den Upload großer Dateien zu ermöglichen, werden in diesem Artikel einige Hinweise auf die korrekten Werte gegeben.

Der Apache-Webserver von Strato ist so eingestellt, dass automatisch eine .htaccess-Datei in dem Verzeichnis der php.ini angelegt wird. Dadurch wird der Webserver angewiesen, die geänderten Einstellungen zu verwenden. Falls diese Datei nicht erstellt wird, so kann diese auch manuell geschrieben werden.

SetEnv PHPRC /verzeichnis der eigenen php.ini

Zur Kontrolle der PHP-Einstellungen bietet es sich an, eine Subdomain auf einen beliebigen Unterordner des Owncloud-Wurzelverzeichnis (/owncloud, /php) einzurichten und über eine „index.php“  mit dem folgendem Inhalt die Werte auszulesen.

<?php
phpinfo();
phpversion();
?>

Nachdem die PHP-Einstellungen erfolgreich angepasst sind, muss noch ein spezifisches Problem gelöst werden. Denn ohne die Änderung der „local.php“ im nachstehenden Verzeichnis, ist der Upload von Daten nicht möglich.

/domain/owncloud/lib/filestorage

Dies ist auf eine fehlerhafte bzw. unvollständige Verarbeitung einer Funktion zurückzuführen. Um diesen Fehler zu korrigieren, muss der folgende Code gesucht werden.

public function free_space($path) {
return disk_free_space($this->datadir.$path);

Nun muss der zweite Teil der Funktion je nach verfügbarem Speicher des Hosting-Paketes anpasst werden. Wenn zum Beispiel 2 GB für die Verwendung von Owncloud zur Verfügung stehen, so muss dieser Wert zunächst in Byte (2 GB = 2147483648 B) umgerechnet und dann in der Funktion explizit übergeben werden.

public function free_space($path) {
return 2147483648;

Damit wird sichergestellt, dass ein exakter Wert bezüglich des freien Speichers übergeben wird. Mithilfe dieser Änderungen ist der erfolgreiche Betrieb eines eigenen Cloudspeichers über den Hostinganbieter „Strato“ möglich.

Stand: Owncloud Version 4.5.6 | PHP 5.3.22

Hier sind alle geänderten Dateien in einem ZIP-Archiv zusammengefasst.

Weitere Informationen:

Owncloud-Forum „OwnCloud 4.0.3 Max Upload Size = 0B?“

BITblokes „ownCloud bei Shared Webhosting – Kann keine Datei hochladen (Upload max. B)“

Webdecker „PHP: INI-WERTE ÜBERSCHREIBEN“

Byterechner

Das Owncloud-Logo ist Eigentum der Owncloud Inc.