Stefan's Weblog

3Apr/181

Nextcloud auf dem Raspberry Pi

Seit einiger Zeit habe ich mit dem Gedanken gespielt Nextcloud auf einem Raspberry Pi zu installieren. Da ich kürzlich einen neuen Raspberry Pi 3 Model B gekauft habe, habe ich an die Installation und Konfiguration von Nextcloud gemacht.
Die Installation von Nextcloud ist sehr leicht, die Anpassungen und Konfiguration des Pi ein klein wenig aufwendiger, jedoch auch relativ schnell und einfach zu erledigen.

Raspberry Pi - Betriebssystem installieren und konfigurieren

Betriebssystem Raspian installieren

Als Betriebsystem verwende ich Raspian Stretch Lite ➡ https://www.raspberrypi.org/downloads/raspbian/

Nach dem erfolgreichen Donwload der aktuellen Version des Betriebssystems kann dieses in einen beliebigen Ordner auf der Festplatte euers PCs entpackt werden.

Nach dem Entpacken liegt die ISO-Datei für das Kopieren auf die SD-Karte bereit.

Zum Schreiben des ISO auf die SD-Karte verwende ich den Win32 Disk Imager ➡ https://sourceforge.net/projects/win32diskimager/

Nach dem erfolgreichen Schreiben des Betriebssystems auf die SD-Karte kann diese direkt in den Raspberry Pi eingelegt werden und der Mini-PC startet.

Jedoch muss der Pi an einen externen Monitor angeschlossen werden, ein Remotzugriff via SSH ist leider noch nicht möglich, das müsste im Konfigurationsmenü noch aktiviert werden. Einfacher ist es, wenn SSH gleich aktiviert wird. Dazu führt ihr die paar einfachen Schritte durch.

Prüft erst im Windows Explorer, ob alle Dateierweiterungen angezeigt werden.

Im zweiten Schritt erstellt ihr eine Text-Datei mit dem Namen "ssh" im Hauptverzeichnis der SD-Karte mit dem Raspian-Betriebssystem.
Es darf keine Dateierweiterung vergeben werden, sonst wird der SSH-Dienst nicht aktiviert!

Nun ist die SD-Karte fertig und ihr könnt diese in den Pi einlegen und das System starten. Der Raspberry bootet automatisch und ihr könnt warten bis ihr den Pi über SSH erreichen könnt.

Raspberry - Konfigurieren

Öffnet nun den PuTTY und verbindet euch mit dem Pi. Im Standard werden die Anmeldeinformationen verwendet

  • Benutzername: pi
  • Passwort: raspberry

Startet zuerst einmal das Konfigurationsmenü des Pi

sudo raspi-config

1 Change User Password

Ändert in diesem Menü zuerst einmal das Standardpasswort auf ein individuelles Passwort ab.

2 Network Options

In den "Network Options" könnt ihr einen neuen Namen, host name, für den Rechner vergeben.

4 Localisation Options

In den Lokalisierungseinstellungen solltet ihr die Sprache ("Change Local") und vorallem die Zeitzone ("Change Timezone"") anpassen.

7 Advanced Options

In den erweiterten Einstellungen ist noch "Expand Filesystem" auszuwählen. Dadurch wird sichergestellt, dass nach dem nächsten Neustart des Pi die gesamte SD-Karte als Festplatte verwendet wird.

8 Update

Zum Abschluss starten wir über die Menüfunktion noch das Update für das Tool "raspi-config".

Nach dem Update wird der Pi neugestartet und eine neue Anmeldungen mit eurem vergebenen Passwort ist erforderlich.

Rapberry Pi - Erster Start und Update

Nach der erfolgreichen Anmeldung sollte sofort ein Update der Paketquellen und der bereits installierten Programme duchgeführt werden, danach ist der Pi neuzustarten.

sudo aptitude update && sudo aptitude dist-upgrade && sudo reboot


Nachdem Update und dem anschließenden Neustart ist das Betriebssystem des Pi auf dem aktuellsten Stand und es kann mit der Vorbereitung für die Nextcloud-Installation begonnen werden.

Nun können alle notwendigen Pakete für Nextcloud installiert werden

sudo aptitude install apache2 php7.0 php7.0-gd php7.0-curl php7.0-common php7.0-intl php-pear php-apcu php7.0-xml libapache2-mod-php7.0 php7.0-mbstring php7.0-zip curl libcurl3 libcurl3-dev php7.0-mysql mariadb-server-10.1 smbclient

Nach der Installation der Pakete prüfen wir die Funktionsfähigkeit des Webserver Apache2

sudo service apache2 restart
sudo service apache2 status

Bereits jetzt kann über einen Webbrowser die Startseite des Apache aufgerufen werden

http://ip-adresse-des-pi

Raspberry Pi - Anmeldung absichern

Im Artikel ➡ Zwei-Faktor-Authentifizierung am Raspberry Pi einrichten habe ich beschrieben wie sich eine Zwei-Faktor-Authentifizierung am Pi konfigurieren lässt. Damit wird neben dem von euch vergebenen Passwort auch ein Einmal-Passwort (OTP) benötigt, dass mit Hilfe einer Smartphone-App erzeugt wird.

MariaDB - Datenbank erstellen und absichern

Nextcloud benötigt einen Datenbankserver. Ich habe mich für MariaDB entschieden, da diese von Nextcloud der bekannteren MySQL vorgezogen wird ( ➡ https://docs.nextcloud.com/server/13/admin_manual/configuration_server/server_tuning.html & ➡ https://docs.nextcloud.com/server/13/admin_manual/configuration_database/linux_database_configuration.html)
Wer ein wenig über die Geschichte von MariaDB nachlesen möchte, der findet einen ganz informativen Arikel dazu auf www.informatik-aktuell.de ( ➡ https://www.informatik-aktuell.de/betrieb/datenbanken/mariadb-und-mysql-vergleich-der-features.html)

Die Datenbank (mariadb-server-10.1) haben wir bereits installiert, nun muss noch ein Benutzer, Passwort und eine Datenbank für Nextcloud angelegt werden.
Das Ganze wird auf der Konsole durchgeführt, ein grafisches Tool wird nicht verwendet. Wer gerne ein solches nutzen möchte, der kann zu Adminer ( ➡ https://www.adminer.org/) oder phpMyAdmin ( ➡ https://www.phpmyadmin.net/) greifen. Ich muss gleich dazusagen, dass ich keines von beiden auf meinem Pi installiert habe.
Ihr könnt ganz einfach prüfen, ob die beiden Tools in den Paketquellen eurer Linux-Distribution verfügbar sind.

apt-cache policy adminer
apt-cache policy phpMyAdmin

Es muss von euch dafür ein neues Passwort vergeben werden. Dieses sollte ihr ganz zwingend notieren, es wird später noch benötigt. Die Fragen während der Konfiguration könnt ihr getrost mit "Y" beantworten.

sudo mysql_secure_installation

Nun legen wir die Datenbank und den Benutzer für Nextcloud an.

sudo mariadb
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

In der nächsten Zeile müsst ihr "password" durch euer neues Passwort ersetzen!

CREATE USER nextcloud@localhost identified by 'password';
GRANT ALL PRIVILEGES on nextcloud.* to nextcloud@localhost;
FLUSH privileges;
quit;

Wir haben nun folgendes gemacht:

  1. Benutzer nextcloud angelegt
  2. Passwort geändert
  3. Datenbank mit dem Namen nextcloud erstellt

Die Daten benötigt ihr, wenn ihr das erste Mal Nextcloud im Webbrowser aufruft und damit die Installation startet.

In Nextcloud wird trotz MariaDB-Installation angezeigt, dass ihr eine MySQL verwendet. Der Grund besteht in der engen Verwandschaft beider Datenbank-Systeme.

Möchtet ihr die Datenbank "nextcloud" löschen, weil ihr z.B. Nextcloud noch einmal installieren möchtet, lautet der Befehlt dafür

sudo mariadb
SHOW DATABASES;
DROP DATABASE IF EXISTS nextcloud;

Nextcloud-Installation

Nun ist ein Wechsel in das Apache-Verzeichnis notwendig und die aktuellste Nextcloud-Version kann dorthin heruntergeladen werden. In diesem Beispiel wird die Version 13.0.1 heruntergeladen.
Das aktuellste Release kann auf dieser Seite nachgeschlagen werden ➡ https://download.nextcloud.com/server/releases/

cd /var/www/html
curl https://download.nextcloud.com/server/releases/nextcloud-13.0.1.tar.bz2 | sudo tar -jxv

Nach dem Donwload sind noch ein paar Berechtigungen anzupassen und der Apache ist zum Abschluss neuzustarten:

cd /var/www/html/nextcloud
sudo mkdir -p /var/www/html/nextcloud/data
sudo chown www-data:www-data /var/www/html/nextcloud/data
sudo chmod 750 /var/www/html/nextcloud/data
sudo chown www-data:www-data config apps
sudo service apache2 restart

Nextcloud ist startbereit

Nextcloud lässt sich nun über jeden beliebigen Webbrowser aufrufen.

http://ip-adresse-des-pi</nextcloud

Vergebt einen neuen Benutzernamen und ein Passwort für euer Administratorkonto.
Wählt im Abschnitt "Datenbank einrichten" MySQL/MariaDB" aus unt tragt in die Felder die Daten aus der MariaDB-Konfiguration ein.

  1. Benutzer: nextcloud
  2. Passwort:
  3. Datenbank: nextcloud

Nachdem Abschluss der Installation, welche ein wenig dauern kann, ist Nextcloud bereit und startklar.

Ihr könnt nun in jedem Webbrowser eurer Wahl Nextcloud über die IP-Adresse des Raspberry Pi aus dem lokalen Netzwerk erreichen.
http://ip-adresse-des-pi/nextcloud

Nexcloud lässt sich bequem über ein Webfrontend konfigurieren, jedoch sind für tiefere Eingriffe in das System Anpassungen in der "config.php" im Verzeichnis "/var/www/html/nextcloud/config" vorzunehmen.
Die Nextcloud-Dokumentation ist eine sehr gute Anlaufstelle, um einen Überblich über die verfügbaren Parameter zu erhalten. ➡ https://docs.nextcloud.com/server/13/admin_manual/configuration_server/config_sample_php_parameters.html

Nextcloud über das Internet erreichbar machen

In meinem Artikel Nextcloud und Let´s Encrypt zeige ich euch, wie ihr Nextcloud aus dem Internet erreichen könnt und ihre den Zugang absichert.

Nextcloud - Optionale Einstellungen

OPcache einrichten

Mit dieser Konfiugurationen lässt sich die Performance von Nextcloud verbessern. In der Hilfe ist das auch ganz gut beschrieben ➡ https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html
Das erforderliche Paket für OPcache (php-apcu) haben wir bereits installiert.

Fügt in die Datei "config.php" folgendes in die vorletzte Zeile ein:

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


cd /var/www/html/nextcloud/config
sudo nano config.php

Neben dieser Anpassung wird von Nextcloud noch eine weitere Anpassung empfohlen, die in der "php.ini" vorzunehmen ist. Die Anleitung dazu gibt es hier ➡ https://docs.nextcloud.com/server/13/admin_manual/configuration_server/server_tuning.html
Die dort einzutragenden Zeilen lauten:

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

sudo nano /etc/php/7.0/apache2/php.ini

Externen Datenspeicher einbinden

Aktuell habt ihr in eurem Raspberry Pi nur die SD-Karte als Speichermedium, die ggf. zu klein werden kann. Weitere Festplatten oder USB-Sticks lassen sich sehr einfach beim Pi mounten und in Nextcloud einbinden.

Raspberry Pi Konfiguration

Steckt eure Festplatte an einem USB-Port des Pis an und gebt im Terminal den Befehl ein

sudo blkid


Es werden alle Speichermedien aufgelistet, die aktuell am Pi vorhanden sind. Eine ausführlist Anleitung für das weiter Vorgehen findet ihr in meinem Artikel ➡ Externe Laufwerke automatisch einhängen

Meine fstab im Pi sieht aktuell so aus:
UUID=6BE6CE35 /mnt/nextcloud ntfs defaults,auto,umask=000,users,rw 0 0

UUID=6BE6CE35 /mnt/nextcloud ntfs-3g utf8,dmask=007,fmask=007,umask=007,uid=www-data,gid=www-data,noatime 0


In diesem Beispiel habe ich einen NTFS-formatierten USB-Stick gemountet. Damit der Raspberry Pi diesen auch korrekt erkennt und ein Schreiben auf den Stick zulässt ist noch ein Paket und dessen Abhängigkeiten zu installieren.

sudo aptitude install ntfs-3g
sudo reboot


Nachdem Neustart sollte der USB-Stick eingebunden sein und ihr könnt darauf schreibend zugreifen.

Ihr habt auch die Möglichkeit einen entfernten Speicher einzubinden und dorthin /data auszulagern. Dabei sollte aber eine ausreichende Geschindigkeit des Netzwerks vorhanden sein, um keine zu hohen Zugriffszeiten zu haben.

In diesem Beispiel könnt ihr z.B. eine an eine Fritz!Box angeschlossene Festplatte beim Pi einbinden.
Zuerst noch das Paket smbclient installieren und dann öffnet die fstab-Datei mit Nano zum editieren:

sudo aptitude install cifs-utils
mkdir /home/pi/fritzbox

sudo nano /etc/fstab

Dort tragt ihr am Ende der fstab-Datei die folgenden Zeilen ein:

#AVM Fritzbox
//192.xxx.xxx.xxx/FRITZ.NAS/Verzeichnis /home/pi/fritzbox cifs credentials=/etc/samba/auth,uid=1000,gid=1000 0 0

Die Anmeldedaten für die Fritz!Box sind in der Datei /etc/samba/auth gespeichert. Dort sind die Einwahldaten im Format einzutragen:
username=
password=

sudo nano /etc/samba/auth

Nextcloud - Externe Speichermedien

Im Nextcloud App-Store findet ihr die App "External storage support". Aktiviert man die App erscheit in der Navigationsleiste der Einstellungen der Menü-Punkt "Externe Speicher".

Datenverzeichnis verschieben

Es wird aus Sicherheitsgründen von Nextcloud empfohlen das /data-Verzeichnis in einen Ordner außerhalb von /var/www zu verschieben. ( ➡ https://docs.nextcloud.com/server/12/admin_manual/configuration_server/harden_server.html#deployment)
Mehrere Möglichkeiten wie das gemacht werden kann, sind in dem folgenden Artikel beschrieben ➡ https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170)

Des Weiteren habt ihr die Möglichkeit damit /data auf eine andere Partition bzw. eine externe Festplatte auszulagern, wenn ihr mehr Speicherplatz für eure Nextcloud-Dateien benötigt.
Ihr solltet dabei beachten, dass durch das nachträgliche Verschieben des Datenbestandes sich der Speicherpfad ändert und dieser in der Datenbank auch noch geändert werden muss. Wird die Datenbank nicht angepasst, können Nextcloud-Dateien evtl. nicht mehr gefunden werden. Im Artikel ➡ https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170 ist das ganz gut beschrieben.

In diesem Beispiel verschieben wir das /data-Verzeichnis lediglich in einen anderen Ordner im Verzeichnis /var. Jedoch habt ihr auch die Möglichkeit /data auf ein externes Speichermedium zu verschieben. Dazu müsst ihr das externe Speichermedium wie oben beschrieben permanent über fstab einhängen und den Pfad in der Datei /var/www/html/nextcloud/config/config.php entsprechend anpassen.

sudo mkdir -p /var/nextcloud
sudo mv -v /var/www/html/nextcloud/data /var/nextcloud/data

In der Nextcloud-Config-Datei ist der neue Pfad zum Datenverzeichnis anzugeben. Wir wechseln dazu in das entsprechende Verzeichnis und legen vor einer Änderung eine Sicherheitskopie der Config-Datei an:

cd /var/www/html/nextcloud/config
sudo cp -p config.php config.php-bak
sudo nano config.php

In der Config-Datei ist der Eintrag "datadirectory" zu ändern.
Alter Wert

'datadirectory' => '/var/www/html/nextcloud/data',

Neuer Wert

'datadirectory' => '/var/nextcloud/data',

Die Rechte müssen für den neuen Pfad dann noch angepasst werden, wie wir das bereits bei der Nextcloud-INstallation gemacht haben.
sudo chmod 750 /var/nextcloud/data
sudo chown www-data:www-data /var/nextcloud/data

Ich habe festegestellt, dass das anpassen der Rechte nicht zwingend zum Erfolg führen muss. Eine bessere Lösung ist es, die Rechte direkt in der fstab-Datei beim mounten anzupassen.

UUID=6BE6CE35 /mnt/nextcloud ntfs-3g utf8,dmask=007,fmask=007,umask=007,uid=www-data,gid=www-data,noatime 0

Nachdem Verschieben des Datenverzeichnisses kann die Fehlermeldung auftauchen, dass die ".ocdata" im root-Verzeichnis des Datenverzeichnisses fehlt. Um diesen Fehler zu beseitigen hat bei mir das Anlegen einer neuen .ocdata-Datei geholfen.

sudo touch /vollständiger-Pfad-zum-neuen-Datenverzeichnis/.ocdata

Nun kann es sein, dass eure Dateien nicht mehr von Nextcloud gefunden werden, da die Datenbank die neuen Dateipfade nicht mehr kennt.
Im Blog-Beitrag "Howto: Change / Move data directory after installation" ➡ https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170 wird beschrieben, wie die Datenbank angepasst werden kann. Dies ist jedoch mit Vorsicht zu genießen, da sonst die Datenbank "zerstört" werden kann. Ihr sollte zuvor unbedingt ein Backup der Datenbank anlegen.

Aktualisiert zum Abschluss die Nextcloud-Seite im Webbrowser (Taste F5).

Nextcloud - Backup

Nachdem ihr eure Nextcloud am Laufen habt, ist eine Datensicherung relativ leicht einzurichten. In diesem Beispiel erstellen wir das Backup auf den oben angeschlossenen USB-Stick der in das Verzeichnis /mnt/nextcloud gemountet wurde.

Für die Datensicherung benötigt ihr die folgenden Informationen:

  1. Datenbankuser = nextcloud
  2. Passwort des Datenbankusers = euer individuelles Passwort
  3. Name der MariaDB = nextcloud
  4. Der Pfad zur Nextcloud-Config-Datei = /var/www/html/nextcloud/config
  5. Der Pfad des Datenverzeichnises = /var/www/html/nextcloud/data
  6. das Verzeichnis in das ihr das Backup erstellen möchtet = /mnt/nextcloud

Der Befehl zu Sicherung der Datenbank setzt sich wie folgt zusammen:

mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > /mnt/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Für die Sicherung der Datenbank werden ein paar Optionen verwendet, dich ich hier kurz vorstellen möchte. Alle Optionen können in der MariaDB-Dokumentation selbst noch nachgeschlagen werden ➡ https://mariadb.com/kb/en/library/mysqldump/#options

  1. --single-transaction = Diese Option sendet eine START TRANSACTION SQL-Anweisung an den Server, bevor Daten gedumpt werden.
  2. -h = Definiert den Datenbankserver, bei dieser Installation ist das localhost
  3. -u = Datenbankbenutzer. In diesem Beispiel ist es nextcloud
  4. -p = Diese Option ist gibt das Passwort des Datenbankbenutzers mit. ACHTUNG: Das Passwort muss direkt nach -p eingegeben werden. Wird ein Leerzeichen gelassen, wird das Passwort als Datenbankname erkannt. --> -pPASSWORT
  5. Als letzte Option ist der Name der Datenbank mitzugeben, bei uns ist das nextcloud.

Die Sicherung könnt ihr bereits manuell über die Konsole mit den folgenden Befehlen ausführen:

cd /var/www/html/nextcloud

sudo -u www-data php occ maintenance:mode --on

sudo tar -cpzf /mnt/nextcloud/Nextcloud_Config_`date +"%Y%m%d%H"`.tar.gz -C /var/www/html/nextcloud/config .

sudo tar -cpzf /mnt/nextcloud/Nextcloud_Data_`date +"%Y%m%d%H"`.tar.gz -C /var/www/html/nextcloud/data/ .

mysqldump --single-transaction -h localhost -u nextcloud -pPASSWORT nextcloud > /mnt/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

sudo -u www-data php occ maintenance:mode --off

Im Backup-Verzeichnis sollten nun die Dateien und die Datenbanksicherung auftauchen:

cd /mnt/nextcloud/

Da die manuelle Sicherung von Nextcloud nun funktioniert, können wir das Ganze auch mit Hilfe von CRON Jobs automatisieren. Dazu legen wir ein Shell-Skript nextcloudbackup.sh im Verzeichnis /etc/scripts an und tragen dort unsere Sicherungsparameter ein.

sudo mkdir /etc/scripts
sudo nano /etc/scripts/nextcloudbackup.sh

In das Skript kopiert ihr die Zeilen:

#!/bin/bash

#Wechsel in das Nexcloud-Verzeichnis
cd /var/www/html/nextcloud

#Aktiviere den Maintenancemode für Nextcloud - Keine Useranmeldung mehr möglich!
sudo -u www-data php occ maintenance:mode --on

#Sichere die Config-Datei
sudo tar -cpzf /mnt/nextcloud/Nextcloud_Config_`date +"%Y%m%d%H"`.tar.gz -C /var/www/html/nextcloud/config .

#Sichere das gesamte Verzeichnis /data
sudo tar -cpzf /mnt/nextcloud/Nextcloud_Data_`date +"%Y%m%d%H"`.tar.gz -C /var/www/html/nextcloud/data/ .

#Erstelle ein Datenbanksicherung
mysqldump --single-transaction -h localhost -u nextcloud -pPASSWORT nextcloud > /mnt/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

#Entferne den Maintenancemode für Nextcloud - Useranmeldungen sind wieder möglich!
sudo -u www-data php occ maintenance:mode --off

Anschließend ändern wir noch die Rechte des Skripts:

sudo chmod +x /etc/scripts/nextcloudbackup.sh

Zum Abschluss legen wir das Skript noch als CRON Job an:

sudo crontab -e

Der CRON Job könnte z.B. einmal pro Woche ausgeführt werden:

@weekly /bin/bash /etc/scripts/nextcloudbackup.sh

Es gibt auch die Möglichkeit, dass ihr euch nach jeder Ausführung eines CRON Jobs per E-Mail benachrichten lasst. Dazu benötigt ihr aber einen funktionierenden E-Mail-Server wie Postfix auf dem Raspberry Pi.

Im Blog habe ich dazu ein paar Artikel verfasst.

  1. Motion mit E-Mail-Versand - Einrichtung von Postfix
  2. Crontab-Meldungen per E-Mail versenden
  3. Raspberry Status per E-Mail

Dateiuploadlimit erhöhen

Je nach Gebrauch eurer neuen Nextcloud ist ein Upload von größeren Dateien gewünscht. Im Standard lassen sich einzelnen Dateien mit einer Größe von bis zu 511 MB hochladen. Versucht ihr eine größere Datei zur Nextcloud hinzuzufügen, ist dies noch nicht möglich. Die Größe ist in der Standardinstallation von Nextcloud in der Datei /var/www/ntml/nextcloud/.htaccess definiert. Diese maximale Upload-Größe wird euch auch in der Administrationsoberfläche von Nextcloud angezeigt.

In der /var/www/ntml/nextcloud/.htaccess sind zwei Anpassungen vorzunehmen, die nach einem Neustart des Webservers sofort aktiv sind. Der neue Wert wird euch in der Administrationsoberfläche sofort angezeigt.


Achtung:
Die Zeilen gibt es in der .htaccess zweimal, einmal für php5 und einmal für php7. In unserer Installation verwenden wir die Version 7, deshalb ist die Anpassung der Werte dort ausreichend.

php_value upload_max_filesize
php_value post_max_size

Das temporäre Uploadverzeichnis, das während des Datei-Uploads die Dateien zwischenspeichert und dann automatisch in das Dateiverzeichnis verschoben werden muss über die "config.php" im Verzeichnis "/var/www/html/nextcloud/config/" angepasst werden. Ändert ihr das Verzeichnis nicht, wird der Systemstandard verwendet. Der Systemstandard nutzt beim Pi immer die SD-Karte. Ladet ihr nun große Dateien hoch und zuerst in das Temporäreverzeichnis kann das zu Problemen führen, wenn eure SD-Karte zu klein oder zu voll ist.
In die "config.php" müsst ihr die folgende Zeile hinzufügen:

'tempdirectory' => '/tmp/nextcloudtemp',


Als tempörares Verzeichnis könnt ihr z.B. auch ein externes Speichermedium definieren. Eine Anleitung zum Einbinden externer Speichermedien findet ihr im Abschnitt "Externen Datenspeicher einbinden".

Wer Probleme mit dieser Methode hat, kann auch auf die "php.ini" anpassen. Über diese Datei lässt sich das Verhalten des Webservers Apache2 direkt anpassen und ist für ALLE Webapplikationen, die auf dem Raspberry Pi installiert sind aktiv.

Es sind 4 Einträge in der "php.ini", die ggf. anzupassen sind

  • post_max_size
  • upload_max_filesize
  • max_input_time
  • max_execution_time

Zuerst wechseln wir in das Verzeichnis der "php.ini" und legen eine Sicherheitskopie an:

cd /etc/php/7.0/apache2
sudo cp php.ini php.ini-bak

sudo nano php.ini

Damit die Änderungen aktiviert werden, muss Apache neugestartet werden.

sudo service apache restart

Ebenfalls in der php.ini könnt ihr noch festlegen welches temporäre Verzeichnis für das Zwischenspeichern während des Uploads genutzt werden soll. Ändert ihr das Verzeichnis nicht, wird der Systemstandard verwendet. Der Systemstandard nutzt beim Pi immer die SD-Karte. Ladet ihr nun große Dateien hoch und zuerst in das Temporäreverzeichnis kann das zu Problemen führen, wenn eure SD-Karte zu klein oder zu voll ist.

Weitere Informationen zu dem Thema findet ihr hier ➡ https://docs.nextcloud.com/server/11/admin_manual/configuration_files/big_file_upload_configuration.html?highlight=big%20file%20upload und hier ➡ https://docs.nextcloud.com/server/11/admin_manual/configuration_server/config_sample_php_parameters.html

Webserver - Umleitung auf Nextcloud erstellen

Die Installation von Nexcloud befindet sich in einem Unterverzeichnis des Apache Webservers. Wird das Hauptverzeichnis aufgerufen, wird eine Standardseite angezeigt. Die dazugehörige Datei befindet sich im Hauptverzeichnis von Apache und heißt index.html.
Möchtet ihr eine Umleitung auf eure Nextcloud-Anmeldeseite, wenn dann könnt ihr eine sofortige Umleitung einrichten.
Der Inhalt der Datei ist:

<html>
<head>
<title>Redirect</title>
<meta http-equiv="refresh" content="0; URL=https://mydyndns.dns.de/nextcloud">
<meta name="keywords" content="automatic redirection">
</head>
<body>
If your browser doesn't automatically go there within a few seconds,
you may want to go to the destination manually.
</body>
</html>

Nun können wir die alte index.html löschen und unsere neue Datei, mit der Umleitung auf Nextcloud anlegen.

sudo rm /var/www/html/index.html
sudo nano index.html
sudo service apache2 restart

Raspberry Pi- und Nextcloud-Monitoring

Beim Monitoring haben wir zwei unterschiedliche Systeme, einmal

  1. den Raspberry Pi
  2. die Nextcloud-Installation

Für den Raspberry Pi könnt ihr euch in Echtzeit die Daten anzeigen lassen im Terminal anzeigen lassen. Dazu gibt es ein paar ganz hilfreiche Tools. Ich verwende meistens "htop" das aus den Repositories installiert werden kann. Eine weitere Alternative zu "htop" stellt das Tool "glances" dar.

sudo aptitude install htop


Nextcloud selbst bietet eine eigne Seite im Administrationsmenü, um das System, Benutzer, Dateien, etc. zu monitoren.

Benötigt ihr ein detailierteres und umfangreicheres Monitoring kann ein externes Überwachungsprogramm wie OpenNMS oder Nagios angebunden wurden. Hilfe dazu findet ihr hier ➡ https://github.com/opennms-config-modules/nextcloud

Nextcloud Artikelserie

  1. Nextcloud auf dem Raspberry Pi
  2. Nextcloud und Let´s Encrypt
  3. Nextcloud - Konfiguration und App-Installation
  4. Nextcloud - E-Mail-Versand einrichten
  5. Raspian und Nextcloud absichern

Bildquelle: raspberrypi.org

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (1) Trackbacks (0)
  1. Danke. Deine Anleitung hat super funktioniert und ist deutlich detaillierter als viele andere Tutorials.Hat alles genau so geklappt!


Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Noch keine Trackbacks.

%d Bloggern gefällt das: