Die folgende Anleitung beschreibt daher eine Möglichkeit zur Installation und Einrichtung der Nextcloud auf openSUSE Leap 15.0 mit PHP 7, MariaDB und Apache als Basis. OpenSUSE Leap ist der mit Langzeitpflege unterstützte stabile Zweig des openSUSE-Projektes (siehe: openSUSE Leap) und eignet sich gut für den Einsatz als Serverbetriebssystem. Alternativ sind natürlich auch Debian, Ubuntu, CentOS oder andere geeignet, die Anleitung bezieht sich jedoch ausschließlich auf openSUSE.
Installation
OpenSUSE bietet über den OBS eine extra Paketquelle für PHP-Anwendungen. Nextcloud ist auch direkt in den Paketquellen verfügbar, allerdings in einer etwas älteren Version. Diese bekommt aber erfahrungsgemäß sicherheitskritische Updates, weshalb grundsätzlich zu dieser Version geraten werden kann. Sofern eine aktuelle Version gewünscht ist, kann die OBS-Quelle mit folgendem Befehl hinzugefügt werden:
# zypper addrepo http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_Leap_15.1/ openSUSE BuildService - PHP:Applications # zypper refresh
Code-Sprache: PHP (php)
Gegebenenfalls ist es noch sinnvoll die Paketquelle anschließend in YaST abweichend zu priorisieren (z.B. mit 120), damit Paketen aus den normalen Paketquellen der Vorzug gegeben wird.
Abschließend muss nur noch Nextcloud aus den Paketquellen installiert werden:
# zypper in nextcloud
Code-Sprache: PHP (php)
OpenSUSE Leap 15.1 liefert standardmäßig PHP 7 aus, weshalb im Gegensatz zu früheren Versionen eine genaue Prüfung der Abhängigkeiten nicht mehr erforderlich ist. Wer noch sehr alte Software parallel zu Nextcloud betreibt oder über eine Fremdquelle veraltete PHP-Versionen bezieht sollte vorher die Anforderungen überprüfen.
Zypper installiert nun zusätzlich zu Nextcloud auch noch PHP 7, sowie MariaDB und Apache. MariaDB ist ein MySQL-Fork und wird inzwischen bei openSUSE und RedHat Enterprise Linux/CentOS bevorzugt verwendet.
LAMP einrichten
MariaDB
Bevor es an die Einrichtung der Nextcloud geht, muss noch die zugrunde liegende Basis konfiguriert werden. Zuerst sollte MariaDB konfiguriert und für den Betrieb mit Nextcloud vorbereitet werden. Bei den entsprechenden Befehlen zeigt sich (noch?) die Herkunft von MySQL.
OpenSUSE startet neu installierte Dienste im Gegensatz zu Debian oder Ubuntu nicht automatisch, weshalb der Administrator nachhelfen muss.
# systemctl enable mysql # systemctl start mysql
Code-Sprache: PHP (php)
Anschließend sollte ein root-Passwort vergeben werden.
mysqladmin -u root password <Neues Passwort> # Neues Passwort ohne die "<>" eingeben
Code-Sprache: HTML, XML (xml)
Abschließend muss noch die Datenbank für Nextcloud angelegt werden. Dazu wechselt man in die MariaDB-Konsole:
mysql -u root -p CREATE DATABASE nextcloud_db; GRANT ALL ON nextcloud_db.* TO ncuser@localhost IDENTIFIED BY 'Passwort';
Code-Sprache: CSS (css)
In diesem Fall wären nextcloud_db, ncuser und das gewählte Passwort die Informationen die später bei der Einrichtung von Nextcloud eingegeben werden müssten. Die Angaben können natürlich je nach Präferenz angepasst werden.
PHP
Die Voreinstellungen von PHP sind für einen Cloudspeicher etwas ungünstig. Angepasst werden können diese mit einem Editor der Wahl in folgender Datei:
# nano /etc/php7/apache2/php.ini
Code-Sprache: PHP (php)
Folgende Angaben sollten auf jeden Fall geändert werden. Die neuen Werte sind Vorschläge und können je nach individuellem Setup angepasst werden. Weitere Änderungen ergeben sich ggf. im tatsächlichen Betrieb, können hier aber nicht allgemeingültig festgehalten werden:
- post_max_size = 5G
- upload_max_filesize = 5G
- memory_limit = 512M
Apache
Mittels des Befehls a2enmod müssen noch ein paar Module für Apache aktiviert werden.
# a2enmod php7 # a2enmod rewrite # a2enmod headers # a2enmod env # a2enmod dir # a2enmod mime
Code-Sprache: PHP (php)
Ganz zum Schluss wird Apache gestartet und aktiviert:
# systemctl start apache2 # systemctl enable apache2
Code-Sprache: PHP (php)
Nextcloud konfigurieren
Über http://IP-Adresse/nextcloud lässt sich nun – sofern alles funktioniert hat – die Konfiguration von Nextcloud durchführen.
OpenSUSE Leap hat standardmäßig eine Firewall integriert. Diese muss entsprechend konfiguriert oder deaktiviert werden um die Nextcloud erreichbar zu machen. Mit folgendem Kommando kann man die Firewall temporär stoppen um die Funktionsweise zu testen.
# systemctl stop firewalld
Code-Sprache: PHP (php)
Dauerhaft deaktivieren kann man die Firewall via:
# systemctl disable firewalld
Code-Sprache: PHP (php)
Die notwendigen Angaben für die Datenbank hat man bereits im Rahmen der Einrichtung von MariaDB festgelegt.
Nextcloud bietet dezidiert an die Nutzerdaten außerhalb des Webroot-Verzeichnisses abzulegen. Davon sollte man unter openSUSE auch gebrauch machen! Sofern man die Daten auf ein eigenes Btrfs-Subvolume ablegt kann man von den erweiterten Funktionen dieses Dateisystems wie automatische Snapshot etc. profitieren. Das Verzeichnis muss dem Apache-Nutzer gehören:
# chown wwwrun /Pfad/zum/Daten/Verzeichnis
Code-Sprache: PHP (php)
Nun ist die Nextcloud als Cloud im heimischen Netzwerk verfügbar. Um sie von außerhalb aufzurufen muss noch ein DDNS-Dienst konfiguriert und die entsprechende Portfreigabe im Router vorgenommen werden. In diesem Szenario ist ein SSL-Zertifikat – z. B. von Let’s Encrypt – auch unabdingbar.
Danke 😉