Quantcast
Channel: Andy – Andy's Blog
Viewing all articles
Browse latest Browse all 2173

Nextcloud bei ALL-INKL.COM installieren

$
0
0

Es gibt viele Wege eine Nextcloud zu Betreiben, einer davon ist die Installation bei einem Hoster wie ALL-INKL.COM.

Die Friedersdorfer bieten bereits mit ihrem kleinsten Tarif einen Software-Installer an, mit dessen Hilfe es ein leichtes ist, diverse Blogs, CMS und Co. einfach und schnell einzurichten. Hinsichtlich der Möglichkeit kostenfreie Let’s Encrypt-Zertifikate und Cronjobs nutzen zu können, sollte mindestens der Tarif PrivatPlus gewählt werden.

Bevor man eine Installation bei einem (Shared) Hoster in Betracht zieht, sollte man eruieren welche Funktionen man nutzen möchte. Dieser Punkt ist relevant, da in der Regel anspruchsvollere Apps wie Talk oder ONLYOFFICE, die beide zusätzliche Dienste benötigen, dort nicht betrieben werden können. Hohe Nutzerzahlen, Platzbedarf und Änderungsraten sind weitere Parameter die in die Planung mit einbezogen werden müssen.

Die Installation vorbereiten

Vor Beginn der eigentlichen Installation sollte man sich Gedanken machen, ob man eine eigene (Sub-)Domain oder einen Unterordner einer bestehenden Homepage für die Nextcloud-Installation nutzen möchte. Zu beachten ist, das bei der Installation in einen Unterordner einer bestehenden Domain samt Homepage es zu unerwünschten Nebenwirkungen kommen kann. Für diesen Beitrag wurde im KAS zunächst eine eigene Subdomain angelegt.

Nextcloud installieren

Der Vorteil des Software-Installers liegt darin, das man sich nicht selbst um diverse Konfigurationsschritte kümmern muss. So wird beispielsweise automatisch eine MariaDB-Datenbank angelegt. Letztlich muss man nur die (Sub-)Domain bzw. den Unterordner auswählen und das administrative Konto (Benutzername samt Kennwort) festlegen. Der Rest läuft vollautomatisch ab.

Anschließend könnte man direkt die entsprechende Internetadresse aufrufen, allerdings wäre dieser Zugriff via http unverschlüsselt, was in der heutigen Zeit ein absolutes No-Go darstellt!

Let’s Encrypt einrichten

Ein weiterer Pluspunkt der für eine Installation bei einem Hoster spricht ist der, das man einfach Let’s Encrypt nutzen kann, ohne sich groß um die Einrichtung kümmern muss. Bei ALL-INKL-COM bearbeitet man im KAS unter dem Menüpunkt “Domain” oder “Subdomain” die gewünschte bzw. verwendete Internetadresse und aktiviert den “SSL-Schutz”, man stimmt dem Haftungsausschluss zu und einen Moment später ist das Zertifikat bereits ausgestellt und eingebunden.

Nun bearbeitet man die “SSL-Schutz”-Einstellungen und aktiviert folgende Punkte:

  • SSL erzwingen: Ja
  • HSTS aktivieren: Ja, max-age= 15552000 Sekunden

PHP-Speichergrenze einstellen

Die PHP-Speichergrenze kann bei ALL-INKL.COM nicht über das KAS eingestellt werden. Hierzu ist es notwendig, im Nextcloud-Ordner via ssh oder FTP die “.htaccess”-Datei um folgenden Inhalt zu erweitern:

php_value memory_limit 512M
php_value max_execution_time 7200

Aber Achtung: Diese Datei wird durch das Nextcloud-Setup bzw. ggf. bei Updates oder Upgrades wieder verändert! D.h. nach jeder Aktualisierung sollte man prüfen, ob die nachgetragenen Zeilen noch vorhanden sind und falls nicht diese erneut einfügen.

Geschickter ist es im gleichen Ordner die versteckte Datei “.user.ini” um folgende Zeilen zu erweitern:

memory_limit=512M
max_execution_time=7200

Im Grunde hat dies den gleichen Effekt wie die Änderung der “.htaccess”-Datei, allerdings ist diese Anpassung persistent, d.h. sie wird nicht bei jeder Aktualisierung von Nextcloud überschrieben.

PHP Memory Cache

OPcache kann in den Tarifen ALL-INKL Premium und ALL-INKL Business sowie auf den Managed Servern installiert bzw. aktiviert werden. Dies geschieht ebenfalls in der Datei “.user.ini” durch folgende Zeilen:

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Mittels phpinfo lässt sich prüfen das OPcache verfügbar und aktiviert ist:

Meldet Nextcloud weiter das kein PHP Memory Cache wie OPcache konfiguriert oder verfügbar sei, muss man den Support kontaktieren und es ist ggf. ein Serverwechsel notwendig.

Allerdings ist das nur ein Teil der Geschichte, denn neben OPcache gibt es noch mehr wie APCu, Redix und Memcached. Siehe dazu:

Nextcloud – Docs – Nextcloud configuration – Memory caching

Diese sind allerdings bei ALL-INKL.COM nur auf den Managed Servern verfügbar. Der Vollständig halber bzw. zur Info sei erwähnt, das man den Hinweis in der Übersicht erst los wird, wenn die entsprechenden Einträge in der “config.php” konfiguriert sind:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',

Sofern kein entsprechendes Caching zur Verfügung steht, brauchen diese Einträge nicht vorgenommen zu werden und die Meldung kann ignoriert werden.

Cronjob

Bei ALL-INKL.COM besteht ab dem Tarif PrivatPlus die Möglichkeit Cronjobs ausführen lassen zu können. Genau genommen handelt es sich um Webcrons, die man im KAS unter “Tools – Cronjobs” konfiguriert.

Zunächst wählt man “https” aus und gibt die URL samt “/cron.php” oder “/nextcloud/cron.php” ein, als Ausführungsintervall gibt man beispielsweise fünf Minuten ein. Weitere Angaben sind nicht zwingend notwendig.

Ruft man die URL im Browser auf, sollte als Ausgabe

{"status":"success"}

erscheinen. Um über etwaige Fehler informiert zu werden bietet es sich an, eine E-Mail-Adresse anzugeben und bei “E-Mail-Filter” “success” anzugeben.

In den Grundeinstellungen von Nextcloud muss bei “Hintergrund-Aufgaben” ebenfalls “Webcron” ausgewählt sein.

Backup

Viele Hoster führen, wenn überhaupt, nur bedingte Datensicherungen durch. Besser ist es, sich selbst um eine ordentliche Datensicherung zu bemühen. Diese sollte zudem woanders als beim Hoster gelagert werden, damit im schlimmsten Fall man dennoch auf die Daten zugreifen kann.

Um eine Datensicherung der Nextcloud-Installation durchführen zu können sind im wesentlichen zwei Dinge relevant: Der Ordner und die Datenbank. Den Ordner kann man einfach kopieren, die Datenbank muss man auf die richtige Weise sichern.

Bei ALL-INKL.COM besteht die Möglichkeit entweder über einen Cronjob oder via ssh Befehle ausführen lassen zu können. Wie bereits im vorige Abschnitt erwähnt handelt es sich bei diesem Cronjob um ein Webcron, d.h. man kann nur Befehle mittels http bzw. https aufrufen, einen Befehl wie tar oder mysqldump kann man so nicht direkt ausführen und man muss einen Umweg über PHP nehmen.

Wie man eine Ordner- und Datenbank-Sicherung so durchführen lassen kann, ist auf den Seiten des Hosters beschrieben:

ALL-INKL.COM – Anleitungen – PHP-Skript zum Sichern der FTP-Daten: Einrichten

ALL-INKL.COM – PHP-Skript zum Sichern und Wiederherstellen einer Datenbank: Dump erstellen

Um den regelmäßigen Download muss man sich selbst bemühen, ferner ist für die Sicherheit der Verzeichnisschutz relevant! Allerdings können Datensicherungen die so durchgeführt werden sollen an Restriktionen und Limits stoßen. Deswegen und um die Datensicherung automatisch herunterladen zu lassen, bietet es sich an, auf dem lokalen Computer oder einem Server die entsprechenden Aufgaben durchzuführen.

Als Voraussetzung muss ein ssh-Zugang im KAS eingerichtet sein und es sollte einen Backup-Ordner geben, dieser sollte nicht von einer Domain aus erreichbar sein, was wiederum zusätzlich die Sicherheit erhöht.

Am Beispiel von Windows kann man mit den PuTTY-Tools plink.exe und pscp.exe oder den Pendanten von KiTTY, also klink.exe und kscp.exe, ein Skript erstellen, das mittels Aufgabe ausgeführt regelmäßig die Datensicherung ausführt. Hier ein Auszug aus einem solchen Skript:

rem Die Datenbank-Datensicherung durchfuehren

 Tools\plink.exe -batch -v -pw %SSH-PASSWORD% %SSH-USER%@%SSH-HOST% "mysqldump -h%DB-HOST% -u%DB-USER% -p%DB-PASSWORD% %DB-NAME% > %BASE-FOLDER%/backup/backup.sql" >> backup.log 2>&1

rem Die Datenbank-Datensicherung und den Ordner als Archiv packen
 
 Tools\plink.exe -batch -v -pw %SSH-PASSWORD% %SSH-USER%@%SSH-HOST% "tar -vcjf %BASE-FOLDER%/backup/backup.tar.bz2 %BASE-FOLDER%/backup/backup.sql %BASE-FOLDER%/%NEXTCLOUD-FOLDER%/" >> backup.log 2>&1

rem Die Datensicherung herunterladen

 Tools\pscp.exe -v -q -scp -batch -pw %SSH-PASSWORD% %SSH-USER%@%SSH-HOST%:%BASE-FOLDER%/backup/backup.tar.bz2 "%WORKING-FOLDER%\backup.tar.bz2" >> backup.log 2>&1

Damit die *link.exe und *scp.exe-Befehle automatisch laufen können, muss man einmalig eine der .exe-Dateien mit dem Host und Anmeldedaten, z.B.

plink.exe -batch -v -pw %SSH-PASSWORD% %SSH-USER%@%SSH-HOST% "ls"

aufrufen, damit man den ssh-Keys vertrauen kann.

Weitere Schritte

Hat man soweit die Nextcloud-Installation vorbereitet, kann man mit der eigentlichen Einrichtung fortfahren wie z.B. das Deaktivieren von nicht-benötigten Apps oder die Installation von zusätzlichen Apps, das Anlegen von Benutzern, das Anpassen der Standard-Dateien, uvm.

Updates / Upgrades

Für die Aktualisierung stehen mehrere Wege zur Verfügung: Via Browser als Administrator unter “Einstellungen – Übersicht” (aka “web based updater”)  oder via ssh und dem “command line based updater”. Die relevanten Hilfe-Seiten sind:

Nextcloud – Docs – Maintenance – How to upgrade

Nextcloud – Docs – Maintenance – Upgrade via built-in updater

Vor jeder Aktualisierung sollte unbedingt eine Datensicherung durchgeführt werden, für den Fall das es irgendwelche Schwierigkeiten gibt!

Am einfachsten lässt sich eine Aktualisierung via Browser starten, allerdings je nach Umfang kann man dabei an Laufzeit-Limits oder anderen Restriktionen stoßen.

Besser ist es, die Aktualisierung über ssh durchzuführen:

cd /www/htdocs/<Login-Name>/<nextcloud-(sub-)domain>/updater
oder
cd /<nextcloud-(sub-)domain>/updater

php updater.phar

Beim ersten Update-Versuch stößt man ggf. auf folgende Fehlermeldung:

[✘] Check for expected files failed
The following extra files have been found:
index.htm
tmp

Update failed. To resume or retry just execute the updater again.

In diesem Fall aus dem (Unter-)Ordner in dem Nextcloud installiert ist folgendes entfernen:

  • index.htm
  • index.html

Offenbar werden diese automatisch bei der Einrichtung einer neuen (Sub-)Domain angelegt, diese werden allerdings nicht für Nextcloud benötigt. Was den Ordner “tmp” betrifft so wird dieser von Nextcloud durchaus verwendet und sollte die Berechtigungen “644” haben.

Von Zeit zu Zeit ist es außerdem notwendig, nach der Aktualisierung noch weitere Anpassungen an der Datenbank durchführen zu lassen. Dies bekommt man auf der Übersicht-Seite in den Einstellungen angezeigt und eine Durchführung ist nur mittels ssh möglich:

cd /www/htdocs/<Login-Name>/<nextcloud-(sub-)domain>
oder
cd /<nextcloud-(sub-)domain>

php occ db:add-missing-columns
php occ db:add-missing-indices

Fazit

Selbst wenn es die Zeilen dieses Beitrags auf den ersten Blick nicht unbedingt vermuten lassen, lässt sich Nextcloud einfach, schnell und gut bei ALL-INKL.COM mit Einschränkungen betreiben. Wie bei allem modularen und komplexen Anwendungen kommt es auf die jeweiligen Ansprüche an. Für de Einstieg, mal um zu Schnuppern oder gar um ein paar Anwender damit zu versorgen reicht es alle Mal. Darüber hinaus stellt dies eine bequeme Möglichkeit dar, ohne viel Aufwand Dateien beispielsweise Kunden oder Partners zur Verfügung zu stellen.

Quellen

Devil At Work – Automatisches Datenbank-Backup mit Cronjobs bei All-Inkl

Nextcloud – Help – Hosting bei all-inkl.com \ Erfahrungsaustausch


Viewing all articles
Browse latest Browse all 2173