Nextcloud bei ALL-INKL.COM installieren

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

9 Kommentare

  • Ich betreibe schon seit längerem NextCloud (inzwischen Hub II – Version 23.0.0) unter dem Premium- Tarif bei All-Inkl. Da nach einem Serverwechsel nun auch bei mir OPcache verfügbar ist, wollte ich dies gerne konfigurieren um diese eine letzte Warnung im Maschinenraum von NextCloud los zu werden.
    Habe daher die entsprechenden Zeile (wie oben angegeben) meiner .user.ini hinzugefügt. Leider scheint dies bei jedoch nicht zu funktionieren, denn neben vorgenannten Hinweis erhalte ich dadurch nun auch mehrfach folgenden Fehler im Protokoll: “[PHP] Fehler: Zend OPcache can’t be temporary enabled (it may be only disabled till the end of request) at Unknown#0”.
    Hast Du evtl. einen Tipp woran dies liegen könnte?

  • Diese Meldung kenne ich überhaupt nicht. Wenn man danach sucht gibt es viele Treffer und mögliche Lösungen. Ansonsten mal direkt den Support von All-inkl fragen.

  • Ein sehr hilfreicher Blogartikel, danke dafür.

    Zwei Fragen habe ich aber nun:

    1. Kann man in den Premiumtarifen bei all-inkl.com ONLYOFFICE und Talk nutzen? Oder geht das eben nicht, weil man dafür weitere Tools auf dem Server installieren muss, was nur geht wenn man der Server selbst verwalten kann? So ist es jedenfalls bei meinem jetzigen Hoster.
    2. Bei Updates uber die Benutzeroberfläche von Nextcloud ist immer wieder etwas nicht vollständig installiert worden und man wird auf die occ Befehle hingwiesen. Leiser sind auch diese nicht bei jedem Hoster via ssh einsetzbar. Sind diese bei all-inkl.com alle nutzbar?

    Danke für einen Hinweis.
    Beste Grüße
    Bernd

  • Zu 1: Nein, das geht bei vielen Shared Hostern nicht, da z.B. Talk weitere Dienste benötigt.
    Zu 2: Einen ssh-Zugang gibt es ab dem Premium-Tarif, ob alle OCC-Befehle dann funktionieren kann ich nicht sagen.

  • “opcache.enable = 1” funktioniert, man kann es selber ein-/ausschalten. Allerdings können die anderen Werte nicht verändert werden. All-Inkl.com schreibt dazu:

    “Innerhalb der Webhosting Pakte steht OPCache nur als Filecache zur Verfügung. Daher werden Sie diese Meldungen nicht weg bekommen. Jedoch schränkt dies nicht die Funktion der Cloud ein.”

  • Verzweiflung …
    Ich hab nen dicken Managed Server bei Allinkl. Laut Support sind die Einträge bereits gemacht. OPCache soll aktiv sein, Memory Cache ist auf 512 MB eingestellt. Lade ich mir eine phpinfo hoch, steht der Memory Cache auf 512 (bestätigt also deren Aussage). Zend OPCache steht auf “aktiv” (bestätigt erneut die Aussage). Auch sollen die Werte 128 und 8 beim OPCache korrekt eingestellt sein (opcache.interned_strings_buffer steht auf 8 opcache.memory_consumption steht auf 128).

    Dennoch schreien meine NextCloud-Instanzen alle das selbe:
    1. Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache.
    2. Das PHP OPcache-Modul ist nicht richtig konfiguriert.
    3. The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply opcache.memory_consumption to your PHP configuration with a value higher than 128.
    4. The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.

    Der Support meinte etwas, dass die NextCloud dies selbst verursachen würde im eingestellten “files_only_mode”. Man könne dies in der Config ändern und dann würden auch die Fehlermeldungen sich anpassen. Leider begreife ich die Aussage nicht wirklich. Was ist damit gemeint? Kannst du mir hier weiter helfen?

  • Hallo Rafael,

    klingt danach, als ob die config.php von Nextcloud angepasst werden muss.
    Da bin ich in Sachen Caching auch nicht fit. Am besten mal die Doku studieren und/oder ggf. im Nextcloud-Forum suchen bzw. posten.

  • Hallo Andy,

    vielen Dank für den hilfreichen Artikel – eigentlich sollte so etwas auf den all-inkl-Seiten stehen …
    Der Hinweis zur PHP-Speichergrenze in der “.user.ini” funktioniert zunächst, aber diese Datei scheint immer wieder automatisch neu generiert zu werden (und dann ohne die geänderten Einträge), so dass ich doch die “.htaccess” nutzen (und bei einem Update dann wohl wieder ergänzen) muss.

  • Servus,

    nachdem Nextcloud immer mehr Ressourcen belegen möchte, gerät auch der OPcache von all-inkl an seine Grenzen. Wie aber Sebastian weiter oben festgestellt hat, sind bei einem all-inkl shared hosting Tarif die Standardwerte offensichtlich nicht veränderbar. Ich habe gerade noch einmal den Support angeschrieben, um Klarheit in dieser Sache zu erhalten – erwarte aber keine bahnbrechenden Neuigkeiten.
    Derzeit für den privaten Einsatz Nextcloud 23.0.5 im Betrieb. Bei anderen NC Instanzen warte ich einfach mit einem Upgrade.
    Und ja, danke für diesen Artikel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.