Dieser Artikel ist Teil der Reihe selbstgebauter Homeserver/Nas mit Ubuntu 18.04

Anzeige:

Nextcloud ist die Eierlegende-Wollmilchsau für selbstgehostete Cloudanwendungen. Das Projekt findet sich unter nextcloud.com, ist OpenSource und kann kostenlos heruntergeladen und genutzt werden.

In Nextcloud können Kalender und Kontakte gespeichert werden und mit dem Smartphone synchronisiert werden. Nextcloud kann Dienste wie Google Calendar komplett ersetzten. Außerdem gibt es einen Desktopclient mit welchem Dateien über mehrere Computer synchronisiert werden können, genau wie das bei Diensten wie Dropbox der Fall ist. Eine App für das Smartphone ermöglicht den Zugriff auf die Dateien von unterwegs. Außerdem ermöglicht die App den sofortigen Upload von Fotos oder Videos die mit dem Smartphone erstellt werden. Nextcloud bietet ein übersichtliches Webinterface, über welches man von jedem Computer mit jedem Webbrowser auf die Dateien auf dem Homeserver zugreifen kann.

Nextcloud ist in PHP geschrieben und benötigt einen Webserver und eine Datenbank.

Als Webserver wird Apache und als Datenbank MariaDB installiert.

Installation der MariaDB-Datenbank

MariaDB ist ein Datenbank-Server, welcher kompatibel zu Oracles MySQL-Server ist. Da Oracle den freien MySQL-Server sehr stiefmütterlich behandelt wird zunehmend auf MariaDB als Alternative gesetzt.

Der Datenbank-Server wird installiert mit

sudo apt install mariadb-server

Mit dem nächsten Befehl kann die MariaDB Installation abgesichert, bzw. für den Produktivbetrieb bereit gemacht werden indem z.B. der anonyme Benutzer gelöscht wird.

Im Gegensatz zu anderen Distributionen, oder wenn MariaDB aus anderen Quellen installiert wird, findet bei Ubuntu die Authentifizierung über einen Unix-Socket mit den Rechten des lokalen Benutzer statt. Wenn also ein MariaDB-Befehl als Root oder mit sudo aufgerufen wird, wird dieser auch als Rootuser im Datenbankserver ausgeführt. Ein lokaler Benutzer der sudo nicht nutzen darf (z.B. die bereits angelegten User heimnetz und heimgast) hat auch keinen Rootzugriff auf den Datenbankserver. Aus diesem Grund ist es nicht nötig und nicht sinnvoll in dieser Konfiguration ein Rootpasswort für den Datenbankserver zu vergeben. Wer sich für weitere Details interessiert findet hierzu einen interessanten Beitrag im Blog von Michael Kofler.

Die Absicherung erfolgt nun mit folgendem Befehl und folgenden Antworten:

Anzeige:
sudo mysql_secure_installation

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Anlegen der Datenbank für Nextcloud

Nach der Installation des Datenbabank-Servers kann die Datenbank für die Nextcloud angelegt werden. Als erstes muss man sich auf dem Datenbank-Server einloggen.

sudo mysql -u root

Dann wird eine neue Datenbank mit dem Namen nextcloud angelegt

CREATE DATABASE nextcloud;

Im nächsten Schritt wird ein neuer Datenbankbenutzer für die Nextcloud Installation vergeben. Für diesen Benutzer wird ein Passwort vergeben, da dieser im Gegensatz zum Rootuser nicht an ein lokales Benutzerkonto gekoppelt ist. Das Passwort muss natürlich individuell festgelegt werden.

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';

im letzten Schritt werden dem Benutzer nextcloud alle Rechte an der gleichnamigen Datenbank eingeräumt.

GRANT ALL ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Damit ist die Datenbank bereit. Die Änderungen werden nur noch gespeichert und anschließend loggen wir uns aus dem Datenbankserver wieder aus.

FLUSH PRIVILEGES;
EXIT;

Installation des Apache Webserver

Nun wird der Apache Webserver installiert. Die Wahl fällt auf Apache, weil dieser weit verbreitet, gut dokumentiert ist und in der offiziellen Dokumentation von Nextcloud verwendet wird. Das Ausführen der PHP-Dateien übernimmt mod_php, eine Erweiterung für Apache.

Apache und mod_php werden mit diesem Befehl installiert:

sudo apt install apache2 libapache2-mod-php7.2

Außerdem benötigt Nextcloud weitere PHP-Module, welche mit den folgenden Befehl installiert werden:

sudo apt install php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring php7.2-intl php-imagick php7.2-xml php7.2-zip

Damit ist der Webserver grundsätzlich schon einsatzbereit. Ein Aufruf im Webbrowser über http://mimashome.ddns.org oder die IP-Adresse http://192.168.30.114 gibt bereits eine Webseite aus.

Anzeige:

Apache Default Page

Einrichten des Let’s Encrypt https-Zertifikats

Damit die Übertragung der Daten über das Internet verschlüsselt und ohne störende Fehlermeldungen des Browsers erfolgen kann, wird ein Schlüsselpaar und ein Verschlüsselungszertifikat benötigt. Seit der Gründung von Let’s Encrypt sind solche, von allen Browsern und Betriebssystemen anerkannte Zertifikate nicht nur kostenlos sondern auch automatisiert und sofort zu erhalten. Ein echter Meilenstein für das Internet.

Die Erstellung der Schlüssel und das Beantragen, sowie die anschließende Zertifikatsverwaltung übernimmt die Software Certbot, welche zuerst wieder installiert werden muss.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python-certbot-apache

Dann wird ein Schlüsselpaar erstellt und ein Zertifikat für unsere DynDNS Adresse beantragt.

sudo certbot --apache certonly

Hierzu müssen ein paar Fragen beantwortet werden

  • Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
    cancel): deine Emailadresse für Benachrichtigungen
  • Please read the Terms of Service. (A)gree/(C)ancel: A
  • Would you be willing to share your email address with the Electronic Frontier
    Foundation. (Y)es/(N)o: Y oder N, je nachdem ob man Mitteilungen Lets Encrypt bekommen möchte
  • No names were found in your configuration files. Please enter in your domain
    name(s) (comma and/or space separated) (Enter ‘c’ to cancel): mimashome.ddns.net

Jetzt werden die Daten überprüft und die Zertifikate erstellt und unter /etc/letsencrypt/live/mimashome.ddns.net gespeichert.

Wichtig: Dieser Punkt muss erfolgreich abgeschlossen werden, ansonsten werden die weiteren Schritte, sowie der Zugriff auf Nextcloud nicht funktionieren. Wenn die Erstellung der Zertifikate fehlschlägt, liegt wahrscheinlich ein Fehler bei der DynDNS-Konfiguration oder der Portweiterleitung im Router vor.

Wenn die Verifizierung der Domain und die Erstellung der Zertifikate erfolgreich war, beendet sich Certbot mit folgendem Hinweis.

Certbot erfolgreich

Automatische Erneuerung der Zertifikate einrichten

Aus Sicherheitsgründen sind Let’s Encrypt Zertifikate nur drei Monate gültig. Sofern einem das Zertifikat abhanden kommt, ist der potentielle Schaden geringer als bei einem Zertifikat mir langer Laufzeit. Um ein wartungsarmes System zu bekommen muss die Aktualisierung der Zertifikate automatisiert werden. Dies übernimmt ein Cronjob, der wiederum regelmäßig einen Certbot-Befehl zum erneuern des Zertifikats ausführt.

Hierzu öffnen wir die Datei /etc/crontab

sudo nano /etc/crontab

und fügen vor der abschließenden Raute den folgenden Befehl ein:

Anzeige:
@weekly root certbot renew

die crontab sollte dann etwa so aussehen

Crontab für Let's Encrypt

Damit wird einmal wöchentlich die Gültigkeitsdauer aller vorhandenen Zertifikate überprüft und bei Bedarf eine Neuausstellung beantragt.

Installation von Nextcloud und Konfiguration des Apache Webserver

Als erstes besorgen wir uns die Nextcloud Dateien. Diese findet man auf der offiziellen Webseite unter Downloads. Die Dateien können aber auch direkt über die Kommandozeile heruntergeladen werden, wobei wir zuerst in unser Homeverzeichnis wechseln und dann den Download starten.

cd ~
wget https://download.nextcloud.com/server/releases/latest.tar.bz2

Damit wird automatisch die aktuelle Version von Nextcloud heruntergeladen (Danke für den Tipp in den Kommentaren).

Nach dem Download werden die Dateien nach /var/www/html entpackt. Dies ist das Standardverzeichnis in welchem der Apache Webserver Webseiten erwartet. Beim entpacken wird automatisch das Unterverzeichnis Nextcloud erstellt. Anschließend werden die Dateirechte auf den Benutzer des Apache Webservers geändert, so dass Apache die Dateien lesen und für Updates auch beschreiben darf.

sudo tar -xjvf latest.tar.bz2 -C /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud

Apache konfigurieren

Nun folgt noch die Konfiguration des Webservers. Für jeden Dienst der über Apache ausgeliefert wird, wird eine sogenannte Virtual-Host unter /etc/apache2/sites-available Konfiguration erstellt. Diese erstellen wir mit dem folgenden Befehl und öffnen die leere Datei anschließend mit dem Texteditor.

sudo touch /etc/apache2/sites-available/001-nextcloud.conf
sudo nano /etc/apache2/sites-available/001-nextcloud.conf

In diese Date wird folgender Inhalt kopiert:

<VirtualHost *:80>
ServerName mimashome.ddns.net

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Redirect permanent / https://mimashome.ddns.net
</VirtualHost>

<IfModule mod_ssl.c>
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
<VirtualHost *:443>

ServerName mimashome.ddns.net

DocumentRoot /var/www/html/nextcloud

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# SSL Konfiguration
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mimashome.ddns.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mimashome.ddns.net/privkey.pem
SSLProtocol All -SSLv2 -SSLv3 -TLSv1.1

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>

#Nextcloud Konfiguration
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>

</VirtualHost>
</IfModule>

Nun wird die bereits vorhandene Standardseite deaktiviert und dafür unsere neue Nextcloudkonfiguration aktiviert.

sudo a2dissite 000-default.conf
sudo a2ensite 001-nextcloud.conf

Außerdem benötigt Nextcloud noch ein paar weitere Apache Module, die mit diesem Befehl aktiviert werden.

sudo a2enmod ssl rewrite headers env dir mime

Damit alle jetzt vorgenommenen Änderungen aktiviert werden muss der Apache Webserver einmal neu gestartet werden mit

sudo systemctl restart apache2

Nextcloud einrichten

Jetzt kann Nextcloud über den Webbrowser eingerichtet werden. Dazu wird die angelegte Dyndns Adresse über eine verschlüsselte https-Verbindung aufgerufen. https://mimashome.ddns.net.
Hier werden wir bereits von der funktionierenden, aber noch nicht eingerichteten Nextcloud empfangen.

Zuerst müssen wir jedoch im Dateisystem noch ein Verzeichnis anlegen in welches Nextcloud unsere Dateien speichert. In der Standardeinstellung würden diese auf der SystemSSD liegen. Wir wollen aber natürlich dass die Dateien auf unserem sicheren Storage-Raid abgelegt werden. Dazu wird das Verzeichnis zuerst erstellt und anschließend die Rechte so angepasst dass Apache und damit Nextcloud Zugriff bekommen.

sudo mkdir -p /mnt/storage/nextcloud
sudo chown -R www-data:www-data /mnt/storage/nextcloud

Dann werden die Felder auf der Konfigurationsseite ausgefüllt.

  • Benutzername und Passwort können hier frei vergeben werden. Hiermit loggt man sich später in die Nextcloud ein
  • Dateiverzeichnis sollte geändert werden, so dass dieses nicht auf der SystemSSD sondern auf unseren Storage-Raid liegt. In diesem Fall /mnt/storage/nextcloud
  • Datenbank-Benutzer ist nextcloud
  • Datenbank-Password ist das beim Anlegen der Datenbank vergebene Passwort
  • Datenbank-Name ist nextcloud
  • localhost bleibt unverändert, da sich die Datenbank auf dem gleichen Computer befindet.

Mit einem Klick auf Installation abschließen wird Nextcloud eingerichtet und einsatzbereit gemacht.

Nextcloud einrichten

Damit ist Nextcloud grundsätzlich Einsatzbereit. Allerdings haben wir derzeit nur Zugriff auf die Dateien unter /mnt/storage/nextcloud. Daten die wir über die im vorherigen Artikel  angelegt haben sind noch nicht erreichbar.

Dies lösen wir dadurch, dass über die Nextcloud App “external storage support” die bereits vorhandenen Verzeichnisse eingebunden werden. Damit Nextcloud auch Schreibzugriff auf die Dateien hat, die ja mit dem Benutzer heimnetz erstellt werden und nicht mit dem Benutzer des Webservers, benötigen wir noch die Software smbclient, die wieder über das Terminal installiert werden muss. Damit Nextcloud die Änderung mitbekommt starten wir anschließend den Apache einmal neu.

sudo apt install smbclient
sudo systemctl restart apache2

Zum aktivieren der App in Nextcloud klickt man in der rechten oberen Ecke auf das Symbol mit dem Anfangsbuchstaben des Benutzernamens und anschließend auf Apps.

Bei den Apps findet man unter dem Punkt deaktivierte Apps die App External Storage Support, welche mit einem Klick auf aktivieren verfügbar gemacht wird.

Nextcloud Apps aktivieren

Zum Einbinden der vorhandenen Ordner gehen wir wieder auf das Symbol in der rechten oberen Ecke und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen “Externe Speicher“. Zum Einrichten benötigen wir den unteren.

  • Ordnername wird entsprechend der Freigabe benannt. Z.B. lokale Videos
  • Externer Speicher ist SMB/CIFS
  • Authentifizierung ist Benutzername und Passwort
  • Konfiguration:
    Host ist localhost
    Share ist der Name der Freigabe. Z.B. Video
    Entfernter Unterordner bleibt leer
    Domain bleibt ebenfalls leer
    Benutzername ist heimnetz oder heimgast. Je nachdem ob die Dateien mit Schreibrechten (heimnetz) oder aus Sicherheitsgründen nur mit Leserechten (heimgast) eingebunden werden sollen
    Passwort ist das zum Benutzername gehörende Passwort

Ein klick auf den kleinen Haken am Ende des Formularfeldes bindet den Ordner in Nextcloud ein.

Nextcloud mount SMB-Shares

Dies wird für alle Freigaben wiederholt, die in Nextcloud eingebunden werden sollen. Also z.B. Audio, Dokumente…

Anschließend sind die eingebundenen Freigaben über Nextcloud erreichbar.


Homeserver/NAS mit Ubuntu 18.04: Teil 1, Einleitung, Hardware und Kosten
Homeserver/NAS mit Ubuntu 18.04: Teil 2, Systeminstallation
Homeserver/NAS mit Ubuntu 18.04: Teil 3, Grundkonfiguration
Homeserver/NAS mit Ubuntu 18.04: Teil 4, Dateifreigaben im Heimnetz
Homeserver/NAS mit Ubuntu 18.04: Teil 5, Nextcloud
Homeserver/NAS mit Ubuntu 18.04: Teil 6, Media Streaming mit Plex
Homeserver/NAS mit Ubuntu 18.04: Teil 7, Backups mit Duplicati und Rsnapshot


Anzeige:
Raspberry Pi: Das umfassende Handbuch, komplett in Farbe – aktuell zu Raspberry Pi 3 und Zero W
Preis: EUR 39,90
(Stand von: 25.05.2019 9:50 - Details
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.
)
2 neu von EUR 39,903 gebraucht von EUR 36,01

80 Kommentare

  1. Hi Niko,
    noch eine Frage zur Systemsicherheit. Der hier gezeigte Daten-Server (NAS) beherbergt die Next-Cloud, hier im Artikel ist die einzige (?) Sicherheitsstufe Username und Passwort oder irre ich mich? Sollte der Server, der nextcloud hostet nicht mit weiteren Massnahmen gehärtet werden? two-factor-authentification und/oder fail2ban… ich weiß nicht, was es noch gibt. Oder wie machst Du das?
    Gruß, Alex

    • Klar, du kannst das beliebig ausbauen. Das ist ja der Vorteil von einem selbstkonfigurierten System. Nextcloud bring eine Brute Force Protection mit, die das reihenweise durchprobieren von Passwörtern verhindert. Natürlich kannst du zusätzlich Fail2ban konfigurieren. Two factor authentication ist immer eine gute Idee, birgt aber auch die Gefahr sich selbst auzusperren, wenn man den zweiten Faktor/Handy verliert.
      Wie gesagt, man kann diese Tutorial beliebig ausbauen. Dann ist es aber schnell nicht mehr einsteigerfreundlich.

  2. Wäre es von Vorteil statt die Freigaben über den Ubuntu Server mit einer NAS Software wie OpenMediaVault zu realisieren

    • OMV ist ja eine eigenständige Linuxdistribution auf Debian Basis. Du musst also entscheiden ob du OMV oder Ubuntu Server nutzen möchtest.

  3. Habe eigentlich vor einen kleinen Homeserver mit Proxmox aufzusetzen und dort einige Linux Container und 2-3 VM laufen zu lassen. U.a. Nextcloud, OMV, Asterisk….

    Übrigens: tolle Anleitung, nur das mit Let´s Encrypt werde ich benötigen. Eventl. ein Sef-signed Certificate

  4. Hi.
    Deine Anleitung ist ganz nett, aber ich habe ein großes Problem. Ich komme nur bis zu dem Punkt, wo Apache fertig konfiguriert wurde und neugestartet wird. Beim Neustarten von Apache kommt das hier:
    stephanj@UbuntuServerSJL:~$ sudo systemctl restart apache2
    Job for apache2.service failed because the control process exited with error code.
    See “systemctl status apache2.service” and “journalctl -xe” for details.

    als “systemctl status apache2.service” kommt das:

    ● apache2.service – The Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
    Drop-In: /lib/systemd/system/apache2.service.d
    └─apache2-systemd.conf
    Active: failed (Result: exit-code) since Fri 2018-08-17 18:35:01 CEST; 3min 34s ago
    Process: 29940 ExecStop=/usr/sbin/apachectl stop (code=exited, status=1/FAILURE)
    Process: 29948 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
    Main PID: 24040 (code=exited, status=0/SUCCESS)

    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: Starting The Apache HTTP Server…
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: AH00526: Syntax error on line 23 of /etc/apache2/sit
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: SSLCertificateFile: file ‘/etc/letsencrypt/live/medi
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: Action ‘start’ failed.
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: The Apache error log may have more information.
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: apache2.service: Control process exited, code=exited statu
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: apache2.service: Failed with result ‘exit-code’.
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: Failed to start The Apache HTTP Server.

    und als “journalctl -xe” das:

    Job for apache2.service failed because the control process exited with error code.
    See “systemctl status apache2.service” and “journalctl -xe” for details.
    stephanj@UbuntuServerSJL:~$ journalctl -xe
    — Subject: Unit apache2.service has begun start-up
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit apache2.service has begun starting up.
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: AH00526: Syntax error on line 23 of /etc/apache2/sit
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: SSLCertificateFile: file ‘/etc/letsencrypt/live/medi
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: Action ‘start’ failed.
    Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: The Apache error log may have more information.
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: apache2.service: Control process exited, code=exited statu
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: apache2.service: Failed with result ‘exit-code’.
    Aug 17 18:35:01 UbuntuServerSJL systemd[1]: Failed to start The Apache HTTP Server.
    — Subject: Unit apache2.service has failed
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit apache2.service has failed.

    — The result is RESULT.
    Aug 17 18:35:01 UbuntuServerSJL sudo[29937]: pam_unix(sudo:session): session closed for user root
    Aug 17 18:39:01 UbuntuServerSJL CRON[30014]: pam_unix(cron:session): session opened for user root by (
    Aug 17 18:39:01 UbuntuServerSJL CRON[30015]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ !
    Aug 17 18:39:01 UbuntuServerSJL CRON[30014]: pam_unix(cron:session): session closed for user root
    Aug 17 18:39:24 UbuntuServerSJL systemd[1]: Starting Clean php session files…
    — Subject: Unit phpsessionclean.service has begun start-up
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit phpsessionclean.service has begun starting up.
    Aug 17 18:39:24 UbuntuServerSJL systemd[1]: Started Clean php session files.
    — Subject: Unit phpsessionclean.service has finished start-up
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit phpsessionclean.service has finished starting up.

    — The start-up result is RESULT.
    Aug 17 18:40:00 UbuntuServerSJL sudo[30096]: stephanj : TTY=pts/0 ; PWD=/home/stephanj ; USER=root ; C
    Aug 17 18:40:00 UbuntuServerSJL sudo[30096]: pam_unix(sudo:session): session opened for user root by s
    Aug 17 18:40:00 UbuntuServerSJL systemd[1]: Starting The Apache HTTP Server…
    — Subject: Unit apache2.service has begun start-up
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit apache2.service has begun starting up.
    Aug 17 18:40:00 UbuntuServerSJL apachectl[30099]: AH00526: Syntax error on line 23 of /etc/apache2/sit
    Aug 17 18:40:00 UbuntuServerSJL apachectl[30099]: SSLCertificateFile: file ‘/etc/letsencrypt/live/medi
    Aug 17 18:40:00 UbuntuServerSJL apachectl[30099]: Action ‘start’ failed.
    Aug 17 18:40:00 UbuntuServerSJL apachectl[30099]: The Apache error log may have more information.
    Aug 17 18:40:00 UbuntuServerSJL systemd[1]: apache2.service: Control process exited, code=exited statu
    Aug 17 18:40:00 UbuntuServerSJL systemd[1]: apache2.service: Failed with result ‘exit-code’.
    Aug 17 18:40:00 UbuntuServerSJL systemd[1]: Failed to start The Apache HTTP Server.
    — Subject: Unit apache2.service has failed
    — Defined-By: systemd
    — Support: http://www.ubuntu.com/support

    — Unit apache2.service has failed.

    — The result is RESULT.
    Aug 17 18:40:00 UbuntuServerSJL sudo[30096]: pam_unix(sudo:session): session closed for user root

    Kannst du mir helfen?
    Mfg
    Stephan

    • Die entscheidenden Zeilen sind:
      Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: AH00526: Syntax error on line 23 of /etc/apache2/sit
      Aug 17 18:35:01 UbuntuServerSJL apachectl[29948]: SSLCertificateFile: file ‘/etc/letsencrypt/live/medi
      Die Zeilen sind in deinem Post am Ende abgeschnitten. Man sieht aber dass in Zeile 23 der Konfigurationsdatei ein Syntaxfehler ist, also irgendetwas ist falsch geschrieben. Außerdem ist irgendwas mit dem Zertifikat. evtl. existiert es nicht oder der Pfad ist nicht korrekt.
      Du kannst auch mal schauen was das Error Log unter /var/log/apache2/error.log sagt.

      • Zeile habe ich bearbeitet, jetzt kommt dafür:

        Aug 17 18:53:45 UbuntuServerSJL apachectl[30246]: Action ‘start’ failed.
        Aug 17 18:53:45 UbuntuServerSJL apachectl[30246]: The Apache error log may have more information.
        Aug 17 18:53:45 UbuntuServerSJL systemd[1]: apache2.service: Control process exited, code=exited status=1
        Aug 17 18:53:45 UbuntuServerSJL systemd[1]: apache2.service: Failed with result ‘exit-code’.
        Aug 17 18:53:45 UbuntuServerSJL systemd[1]: Failed to start The Apache HTTP Server.
        — Subject: Unit apache2.service has failed
        — Defined-By: systemd
        — Support: http://www.ubuntu.com/support

        — Unit apache2.service has failed.

      • Oder auch:

        — Unit apache2.service has begun starting up.
        Aug 17 19:12:16 UbuntuServerSJL apachectl[30466]: Action ‘start’ failed.
        Aug 17 19:12:16 UbuntuServerSJL apachectl[30466]: The Apache error log may have more information.
        Aug 17 19:12:16 UbuntuServerSJL systemd[1]: apache2.service: Control process exited, code=exited status=1
        Aug 17 19:12:16 UbuntuServerSJL systemd[1]: apache2.service: Failed with result ‘exit-code’.
        Aug 17 19:12:16 UbuntuServerSJL systemd[1]: Failed to start The Apache HTTP Server.
        — Subject: Unit apache2.service has failed
        — Defined-By: systemd
        — Support: http://www.ubuntu.com/support

        — Unit apache2.service has failed.

        — The result is RESULT.
        Aug 17 19:12:16 UbuntuServerSJL sudo[30463]: pam_unix(sudo:session): session closed for user root

        Wenn man das mit sudo macht.

      • Error.log sagt nur das:
        [Fri Aug 17 19:12:16.015997 2018] [ssl:emerg] [pid 30473] AH02572: Failed to configure at least one certificate and key for medienserXXXXXX.ddns.net:443
        [Fri Aug 17 19:12:16.016066 2018] [ssl:emerg] [pid 30473] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
        [Fri Aug 17 19:12:16.016179 2018] [ssl:emerg] [pid 30473] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information
        AH00016: Configuration Failed

        Also kurz zusammengefasst, man soll in /var/log/apache2/error.log nachschauen, um den hinweis zu finden, dass man doch bitte in /var/log/apache2/error.log schauen soll. XD

        Sorry für die vielen Kommentare. 🙂

      • Etwas stimmt mit der Konfiguration deiner Zertifikate nicht.
        Hast du das Let’s Encrypt Zertifikat auch vorher erstellt?
        Ansonsten solltest du noch prüfen ob du auch wirklich die Zeilen
        SSLCertificateFile /etc/letsencrypt/live/mimashome.ddns.net/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/mimashome.ddns.net/privkey.pem
        so in der Konfigurationsdatei hast und ob die Pfade auch wirklich korrekt sind. Dann sollte es eigentlich passen.

  5. Genau diese Zeilen waren drin, nur mit meinen dns Angaben. Allerdings hat er rum gemeckert. Ich kann es Ja nochmal versuchen. Mit mimashome, oder mit meinem?

    • Mit deinem, sonst kann es nicht klappen.
      Kannst anschließend mit
      cat /etc/letsencrypt/live/mimashome.ddns.net/fullchain.pem
      schauen ob es die Datei auch wirklich gibt. Wenn er dir das Zertifikat anzeigt stimmt auch der Pfad. Ansonsten kommt eine Fehlermeldung

  6. Das hier ist im übrigen die ominöse Zeile 23:
    Aug 17 19:55:01 UbuntuServerSJL apachectl[31393]: SSLCertificateFile: file ‘/etc/letsencrypt/live/medienseXXXXXX.ddns.net/fullchain.pem’ does not exist or is empty

      • Ist erstellt, es liegt eben nur in /etc/letsencrypt/keys und heißt 0000_key-certbot.pem, dementsprechend müsste ich die Zeile abändern, oder nicht?

      • Du musst die Dateinamen natürlich an dein System anpassen. Allerdings solltest Du immer das /etc/letsencrypt/live Verzeichnis nutzen. Deine Schlüsseldatei in /etc/letsencrypt/keys ändert sich bei jeder Erneuerung alle drei Monate. Und dann geht deine Konfiguration wieder kaputt.
        Wenn das “live” Verzeichnis nicht existiert, dann hat die Erstellung, bzw. Verifizierung des Zertifikats nicht funktioniert.

  7. Das gab es nicht. Das habe ich eben jetzt erstellt. Kann man die Zertifizierung einfach neu starten? beim 1. Mal kam auch die Meldung, habe dann das Betriebssystem neuinstalliert, und kam an der selben Stelle.

    • Das Verzeichnis wird automatisch erstellt, wenn Certbot verifizieren kann dass der DynDNS-Name auf deinen Computer verweist. Dein Problem liegt ziemlich sicher nicht am Computer, sondern an der Router-Konfiguration. Entweder ist die Portweiterleitung nicht richtig konfiguriert, oder die Aktualisierung der IP-Adresse über DynDNS funktioniert nicht.

  8. Hi,

    wie kann man den mehrer vhost in Apache2 aktivieren ?
    Gebe ich diesen Befehl ein:
    sudo a2ensite 002-linux-dash.conf u. Apache2 restarte,
    lande immer wieder auf der Nextcloud seite.

  9. Moin,

    danke deiner Anleitung habe ich mein Nextcloud am Laufen. Leider kann ich meine Kontakte und mein Kalender nicht mit meinem iPhone, iPad oder Macbook synchronisieren.
    Hast du bei diesem Thema Erfahrung und eine Idee was hier falsch läuft. Es kommt immer die Meldung, dass die Accountüberprüfung fehlgeschlagen ist.

    Danke im Voraus.
    Sven

  10. Ja, habe ich. Leider ohne Erfolg. Ich habe keinen Ansatz was da schief läuft bei CalDav bzw. CardDav. Denn alles andere läuft super.
    Gibt es irgend welche logs, die helfen könnten?

  11. Hallo,

    erstmal danke für die Anleitung. Kann mir jedoch bitte jemand bei folgendem Problem helfen:

    Ich starte die maske von nextcloud und gebe alles entsprechend ein und wenn ich dann die Installation abschließen möchte erhalte ich folgende Nachricht:

    Fehler
    Das Datenverzeichnis /mnt/storage/nextcloud kann nicht erstellt oder es kann darin nicht geschrieben werden.

    Der entsprechende Ordner hat volle lese und schreibrechte von “www-data”

    Bitte um Aufklärung

    • Ich denke dass die Fehlermeldung schon korrekt ist. Irgendetwas stimmt mit den Lese-/Schreibrechten des Ordners nicht.
      Vielleicht darf www-data schon gar nicht auf /mnt/storage zugreifen. Prüfe mal ob hier die Rechte auf 0755, bzw. rwxr-xr-x gesetzt sind, so dass alle User auf den Ordner zugreifen dürfen.

  12. Was ich nicht ganz verstehe: Welchen Vorteil hat es, die SMB Shares in Nextcloud als SMB Shares einzubinden anstatt als lokale Shares? Nextcloud und Samba Server befinden sich doch auf dem gleichen Host.

    • Um Probleme mit den Lese-/Schreibberechtigungen auf Dateisystemebene zum umgehen, ohne beide Dienste (Samba und Apache) mit dem selben User laufen zu lassen.

      • Ich verstehe, danke für die Antwort! Ich löse das so:
        bindfs –map=heimnetz/root:@heimnetz/@root /media/storage/share /media/storage/ncshare
        Das macht einen fuse mount vom SMB Share /media/storage/share in /media/storage/ncshare und mappt die Berechtigungen, so dass Nextcloud es passt.
        Dadurch kann man Nextcloud den Share mit den richtigen Rechten anbieten.

  13. Hi,
    die Serverhardware konnte ich nach deinen Vorgaben bauen … läuft gut.
    Owncloud hat mir graue Haare gemacht. Ich musste noch den php-smbclient nachinstallieren, damit SMB/CIFS zur Auswahl steht. In der Domäne musste dann noch die Windows-Arbeitsgruppe (workgroup)eingetragen werden. Warum das so ist … vermutlich irgend etwas im Rahmen der Installation durcheinander geraten, da ich mehrmals PHP und Apache installiert habe.

    Danke für die hervorragende Anleitung! Mal sehen was Plex anrichtet 🙂

    • Wenn eine neue Nextcloud-Version zur Verfügung steht, wird man förmlich mit Hinweisen zugeballert. Die Smartphone App schickt eine Notification, der Desktopclient meldet die neue Version und in der Weboberfläche erscheint auch ein Hinweis.
      Ich nutze dann den eingebauten Updater über die Weboberfläche. Damit ist das Update praktisch mit einem Klick erledigt.

      • Hallo Niko,

        Danke, die Info reicht mir dann 😉

        Bzgl. Zugriff von außen habe ich eine Ergänzung – habe es hoffentlich bei dir nicht überlesen:

        in der /var/www/html/nextloud/config/conig.php muss der URI eingetragen werden, von dem aus zugegriffen werden darf. sonst erhält man eine entsprechende Fehler-MEldung und es erscheint kein Login-Screen.

        vgl. https://docs.nextcloud.com/server/14/admin_manual/installation/installation_wizard.html#trusted-domains

        Vllt. kannst du das noch mit aufnehmen.

        Ansonsten schonmal schöne Woche!
        Matthias

      • Hallo Matthias,
        schön dass Du die Dokumentation liest und nicht einfach nur Befehle kopierst.
        Das manuelle bearbeiten der config.php sollte aber nicht nötig sein. Deine DynDNS-Domain wird automatisch eingetragen, sofern Du das Setup bereits über diese Domain aufrufst. Das ist in der Anleitung der Fall.
        Nur wenn Du die Einrichtung z.B. über http://localhost vornimmst, oder aber die Domain nachträglich änderst, dann musst Du die Domain in die config.php eintragen.
        Wenn man aber nur den Schritten im Tutorial folgt, ist das nicht nötig.
        Gruß
        Niko

  14. Ah, ok, danke. Hab mich in der Tat erst nachträglich entschieden für externen Zugriff. War mir halt noch nicht sicher, ob ich das wirklich möchte 😉

    Tolles Tutorial
    Matthias

  15. Hallo,
    danke für die super Anleitung.
    Lokal in einer Test-VM hat alles super geklappt.
    Nun wollte ich das Ganze live auf dem Server nachvollziehen und scheitere mit Let’s encrypt, da dort AUSSCHLIESSLICH Port 80 oder 443 akzeptiert werden!
    Dies als Hinweis für alle anderen Nutzer.
    Ich habe einen Server mit mehreren VMs laufen, die über verscheidene Ports von außen erreichbar sind. Dafür muss ich wohl doch selbstsignierte Zertifikate verwenden (ist ja auch NUR für bekannte Nutzer).

    Oder gibt es andere Vorschläge von Euch???
    LG
    Matthias (der Zweite ;-))

  16. Hallo, erstmal super gemachte Anleitung, leider habe ich aber noch ein Problem mit den Umlauten, die kann Nextcloud nämlich nicht. Installiert habe ich Schritt für Schritt nach Deiner Anleitung, auch mit Raid, nur habe ich Raid 0 gemacht, aber das ist ja egal.
    Laut diversen Lösungen sollte man in der php.ini UTF-8 “aktivieren”, dieses ist aber bei mir schon passiert, ohne das ich was ändern mußte.
    ; PHP’s default character set is set to UTF-8.
    ; http://php.net/default-charset
    default_charset = “UTF-8”

    Leider kann ich trotzdem keine Ordner mit Umlauten erstellen, gibt es da noch andere möglichkeiten? Dateien kann ich mit Umlauten erstellen, gerade getestet.

    Danke 🙂

    • Tut mir leid dass ich hier nicht helfen kann. Ich setze Nextcloud ein seit es existiert. Dieses Problem ist mir glücklicherweise noch nie begegnet.

      • Hallo,

        ich habe jetzt mal ein wenig getestet, anscheinend hängt das irgendwie auch mit dem dem Minus “-” zusammen….
        Ich kann z.B. schreiben “Walt Disney – Lustige Taschenbuecher”, aber nicht “Walt Disney – Lustige Taschenbücher”, allerdings kann ich schreiben “Walt Disney = Lustige Taschenbücher”, auch kann ich “Bücher” oder “Taschenbücher” schreiben. Aber sobald das “-” drin ist, geht der Umlaut dort nicht.

        Keine Ahnung warum, vorher hatte ich Nextcloud auf einem Raspberry laufen, da ging das alles, nur der Raspberry war halt sehr sehr gemütlich…

  17. Servus Niko,
    herzlichen Dank für diese hervorragende Anleitung!

    Ich hänge leider an einem Punkt fest:
    System läuft, Samba funktioniert, der Indianer ist da, Nextcloud ist installiert, die 001-nextcloud.conf ist auf meinen Servernamen angepaßt, die Fritzbox erneuert die IPs für meine Domain, die Zertifikate wurden ohne Fehlermeldung erstellt und liegen (verlinkt) im passenden Verzeichnis…

    Bei jedem Aufruf der Website erhalte ich nicht die Startseite der Nextcloud sondern Gemüse der Art

    * @author Joas Schilling * @author Jörn Friedrich Dreyer * @author Lukas Reschke * @author Morris Jobke * @author Robin Appelman * @author Sergio Bertolín * @author Thomas Müller * @author Vincent Petry * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANT

    usw.

    Dazu finde ich zwar (wenige) Stellen im Web, aber bisher nichts hilfreiches.
    Der Neuaufbau der Maschine hat nichts gebracht.

    Hat jemand eine Idee dazu ?

    Vielen Dank !

    Wolfgang

    • Hallo Wolfgang,
      ich bin die Schritte nochmals in einer VM durchgegangen, obwohl ich die Anleitung mehrfach getestet hatte. Aber manchmal ändern sich Abläufe ja.
      Bei mir funktioniert allerdings alles einwandfrei. Auch die mbstring-Erweiterung von PHP wird im Artikel installiert. Evtl. hattest du diesen Schritt übersprungen.

  18. Hallo Niko,
    danke für die schnelle Reaktion!

    ja, das hab ich auch gesehen daß die Installation von php7.2-mbstrings schon erfolgt ist – bei mir hat aber erst die Installation von dem Pakte php-mbstrings geholfen:

    sudo apt-get install php-mbstring

    Dafür hab ich keine Erklärung …

    Herzlichen Gruß
    Wolfgang

  19. Hallo Niko,

    ich möchte Dir einfach mal Danke sagen, das Problem, welches ich hatte (etwas weiter oben, mit Dateibezeichnung), hat sich erledigt, warum wieso weshalb weiß ich nicht, einmal ging es.
    Dann habe ich jetzt auch endlich mal ein Backup Programm nach Deiner Anleitung installiert, super, daher habe ich mir auch Dein eBook vor ein paar Tagen gekauft, sehr gut gemacht :-).
    Ich habe, nachdem ich mit Deiner Anleitung für Nextcloud, klar kam, auch meinen Plex PC von LinuxMint 18.3 auf Ubuntu Server 18.04 LTS umgestellt, ging wirklich einfach. Auf beiden PCs läuft jetzt Duplicati, sehr geil :-).

    Danke und alles Gute für 2019 🙂

    Gruß
    Andreas

  20. Ich hänge bei der Installation des Paketes libapache2-mod-php7.2 mit folgender Fehlermeldung:
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen…. Fertig
    E: Paket libapache2-mod-php7.2 kann nicht gefunden werden.
    E: Mittels des Musters »libapache2-mod-php7.2« konnte kein Paket gefunden werden.
    E: Mittels regulärem Ausdruck »libapache2-mod-php7.2« konnte kein Paket gefunden werden.

    Weiß nicht mehr weiter. Anscheinend ist die Paketliste irgendwie falsch.

  21. Hallo,
    erst einmal vielen Dank für die super Anleitung!
    Leider bekomme ich die Einbindung meines Ordners z.b. Videos nicht hin, ich bin strikt deiner Anleitung gefolgt, wenn ich bei externen Speicher alles eingebe und dann den Hacken aktiviere bekomme ich nur ein rotes Ausrufezeichen!

    • Das ist aus der Ferne schwer zu beurteilen. Funktioniert das Einbinden der Freigaben denn an einem anderen PC, über das Netzwerk? Wenn das geht, liegt das Problem bei Nextcloud, bzw. dem Plugin. Wenn das nicht geht, liegt das Problem wahrscheinlich bei Samba.

      • In meinem Finder sind die freigegebenen Ordner zu sehen, wenn ich einen von ihnen anwähle kommt eine Fehlermeldung:Der Vorgang konnte nicht abgeschlossen werden, da das Originalobjekt für „Audio“ nicht gefunden wurde.
        Wahrscheinlich gibt es wohl ein Problem mit Samba.
        Hat jemand einen Tip?

  22. Hallo Niko,
    zunächst einmal herzlichen Dank für die Anleitung!
    Mein Server läuft nun schon seit einigen Monaten in einer etwas angepassten Form.
    Was mir derzeit ein wenig Kopfzerbrechen bereitet ist Certbot. Von Let’s Encrypt habe ich eine Mail mit dem Hinweis bekommen, dass ein Update auf die Version 0.28 erforderlich ist, die nicht in den Paketquellen von Ubuntu 18.04 vorhanden ist.
    Ist es sinnvoll hier das PPA von Certbot einzubinden oder gibt es einen anderen, besseren Weg?

    Viele Grüße
    Thomas

    • Hallo Thomas,
      ich denke das Certbot PPA ist die einfachste Möglichkeit. Da muss ich auch den Artikel noch aktualisieren, bevor die alte Version Mitte Februar aufhört zu funktionieren.
      Gruß
      Niko

      • Hallo Niko,
        kurze Rückmeldung:
        Ich habe das PPA installiert und das Update von Certbot auf die Version 0.28 hat problemlos funktioniert.

        Viele Grüße
        Thomas

  23. Irgendwie lässt sich in Nextcloud bei mir kein SMB Share einrichten mit dem lokalen smb server..

    wie kann dass sein ??

    in den logssteht auch immer ein falscher benutzer da steht nicht heimnetz sondern heimnez ohne t obwohl ich mit t eingetragen habe…

  24. Hallo Niko,

    ich habe mal wieder ein Problem, einige Dateien sind gelocked, wie kann ich die frei machen und löschen?
    Das würde über phpMyadmin funktionieren, somit hatte ich über sudo apt-get install phpmyadmin dieses installiert, ein Passwort für den Zugang vergeben, mich als Nutzer phpmyadmin und dem vergebenen Passwort angemeldet. Allerdings sehe ich die Datenbank nicht. Es wurde wohl eine neue angelegt. Wie kann ich die vorhandene hinzufügen? Oder weißt Du eine andere Option zum unlocken der Dateien?

    Danke schon im voraus.
    Andreas

    • Hallo Thomas,
      für den Login bei phpmyadmin musst du die Zugangsdaten der Nextcloud Datenbank nehmen, die du auch beim Setup der Nextcloud angegeben hast.
      Und mach am besten ein Backup der Datenbank bevor du etwas an den Tabellen änderst. Geht auch in phpmyadmin im Menüpunkt “exportieren”.

      • Eigentlich Andreas, aber egal 🙂

        Danke für den Tip, damit hat es geklappt, ich konnte die Dateien mit “DELETE FROM oc_file_locks WHERE 1” im SQL Eingabefeld freigeben und danach löschen 🙂

        Gruß
        Andy

  25. Hallo Niko,
    tolle Anleitung mit deinem Homeserver 😉

    Nun bin ich auf der Index – Seite von Nextcloud angekommen. Habe wie oben beschrieben alles eingetragen. Danach kommt die Fehlermeldung:

    Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user ‘nextcloud’@’localhost’ (using password: YES)

    Ausserdem habe ich eine Frage zu
    “Datenbank-Password ist das beim Anlegen der Datenbank vergebene Passwort”
    Ist das, das Passwort vom Administrator-Konto anlegen?

    • Im ersten Schritt musst du das Passwort für die Datenbank eintragen, das im Schritt “Anlegen der Datenbank für Nextcloud” festgelegt wurde.
      Den Administrator-Account für Nextcloud legst du im nächsten Schritt an, nachdem die Datenbank eingerichtet wurde.

  26. Hallo!
    Als erstes, super Tutorial aber das ist man schon aus der alten Version gewohnt 😉
    Hab dennoch eine Frage, warum nimmst du Samba und nicht Webdav?
    Wo sind die Vorteile von Samba?

    Ich frage, weil ich mir vorstellen kann, dass eine Netzwerk-Festplatte, auf die man von überall zugreifen kann ziemlich bequem wäre.

    VG
    Alex

      • Ach! Schau einer guck! Das ist natürlich eine super Lösung, sonst hätte ich Nextcloud und dann noch extra Webdav über Apache eingerichtet 🙂

        Vielen Dank für die schnelle und hilfreiche Antwort.

        Alex

  27. Hi Niko,
    zuerst mal vielen Dank für das sehr gute Tutorial, dass es tatsächlich auch dem Anfänger möglich macht, zu folgen!
    Eine Frage hätte ich aber:
    Ich kann problemlos von außen auf meine Nextcloud zugreifen, werde jedoch beim Zugriff über die IP innerhalb des Netzwerkes sofort auf die Domain (also meine Äquivalent zu mimashome.ddns.net) umgeleitet, was natürlich im Heimnetzwerk nicht geht; somit kann ich auch von innerhalb nichts administrieren oder später mal per onlyoffice oder so arbeiten.
    Ich vermute, ich könnte das über einen Alias-Eintrag in der 001-nextcloud.conf lösen, oder? Gehe ich ein Sicherheitsrisiko ein, wenn ich von innerhalb und außerhalb meines Netzwerkes auf die Nextcloud zugreife? (Bilde mir ein, mal sowas gelesen zu haben)
    Vielen Dank und beste Grüße!

  28. Hi Niko,

    wie hast du denn Raid fomartiert. Mit ext4? Wir kommen denn dann die Windows Rechner auf die Shares? Die können doch nur NTFS. Oder habe ich einen Denkfehler?

    Und danke für die tolle Anleitung
    Grüße

    Olaf

    • Hallo Olaf,
      dein Windows PC kommuniziert nicht direkt mit den Festplatten (z.B. über die SATA-Schnittstelle), sondern spricht nur mit dem auf dem Homeserver installierten SAMBA-Server (via SMB/CIFS-Protokoll). Der Samba-Server wiederum schreibt auf die Festplatten. Dein Windows hat keine Ahnung mit welchem Dateisystem die Festplatten auf dem Homeserver formatiert sind.

  29. Hallo Niko,

    erstmal großes Lob für das klasse Tutorial! Ich habe alles so aufgesetzt, wie beschrieben, bis auf das RAID, da habe ich nur eine einzelne Platte. Es lief alles, bis ich dann auf die Nextcloud-Seite zum Einrichten bin. Dort habe ich die Angaben genauso eingetragen, wie beschrieben, natürlich mit meinen Usernamen. Aufgefallen ist mir, dass in dem Feld Datenverzeichnis als Voreinstellung /mnt/storage/nextcloud/data stand. Habe das /data dann entfernt und die Installation abgeschlossen. Seither komme ich nicht mehr auf die Seite, kriege die Fehlermeldung 403, Zugriff auf den Server nicht erlaubt. Was kann denn da schiefgegangen sein?

    Gruß
    Martin

    • Hallo Martin,
      schau mal in die Logfiles des Apache Webserver unter /var/log/apache2/access.log oder /var/log/apache2/error.log. Da sollte stehen was das Problem ist. Möglicherweise ein Problem mit den Lese-/Schreibrechten des Verzeichnisses.

  30. Hallo Niko,
    im error.log finde ich Meldungen wie “client denied by server configuration: /var/www/html/nextcloud/index.php, referer https://meine.domain.de/“. Im access.log sehe ich Hinweise, dass irgendetwas mit der index.php nicht stimmt. Welcher User muss denn welche Rechte in dem Verzeichnis haben? Ich nehme an es geht um /var/www/html/nextcloud, oder geht es um /mnt/storage/nextcloud?
    Gruß
    Martin

  31. Hallo, ich habe es jetzt hinbekommen, habe einfach die Nextcloud-Dateien nochmal ausgepackt und dann lief es wieder. Allerdings kommt die erste Einstellungsseite nicht mehr hoch und es liegen die Daten jetzt nicht wie ich vorher angegeben hatte unter /mnt/storage/nextcloud sondern doch auf der Systemplatte. Jetzt die Frage, wie kann ich das wieder hinbiegen? In den Einstellungen finde ich keine Möglichkeit, das Verzeichnis umzubiegen, geht dann vermutlich nur direkt auf dem Server übers Terminal?
    Gruß
    Martin

    • Nextcloud unterstützt das nachträgliche Verschieben nicht offiziell und es ist auch nicht so einfach möglich. Ich würde das Setup von Nextcloud einfach nochmal neu durchführen. Dazu einfach die Datei /var/www/html/nextcloud/config/config.php löschen. Dann kommt beim Aufruf von Nextcloud im Browser wieder der Einrichtungsassistent.

  32. Hallo, ist jetzt auch gelöst, habe ein howto gefunden und jetzt liegen die Daten auf dem großen Laufwerk. Nochmal danke für das Tutorial und die Hilfe!

  33. Hallo Niko,

    dein e-Book ist super und es hat letzten Endes alles super geklappt. Mir stellt sich obendrein noch die Frage, wie sicher mein lokales System ist? Welche Schritte kann/muss ich denn ggfs. zusätzlich unternehmen, um den Schutz zu erhöhen?

    Gruß

    • Hallo Aki,
      einfache Frage, auf die es keine einfache Antwort gibt. Ein Ubuntu-Server ist ja standardmäßig nicht unsicher und müsste erst durch Zusatzsoftware sicher gemacht werden.
      Wie heißt es so schön: “Sicherheit ist kein Zustand. Sicherheit ist ein Prozess”. Dementsprechend die Software immer aktuell halten, besonders das, was aus dem Internet erreichbar ist, wie z.B. Nextcloud. Und das System auf auffälliges Verhalten beobachten. Mit Logwatch kannst du dir beispielsweise Zusammenfassungen von den wichtigsten Logfiles zusenden lassen.

Hinterlasse einen Kommentar

Please enter your comment!
Die Angabe von Name oder Webseite ist optional. Weitere Informationen: siehe Datenschutzerklärung

Please enter your name here