So installieren Sie Nextcloud auf Ubuntu 18.04

Abbildung: Synchronisieren eines Desktop-Computers, Laptops und Smartphones mit Nextcloud.

Nextcloud ist ein selbst gehosteter Cloud-Dienst. Es bietet synchronisierte Speicher-, Produktivitäts- und Groupware-Anwendungen für den persönlichen oder geschäftlichen Gebrauch, auf die Sie in der Cloud zugreifen können. Es kann vor Ort (in einem lokalen Netzwerk) oder auf einem VPS im Internet gehostet werden.

Diese Anweisungen führen Sie durch die Schritte, die zum Installieren von Nextcloud auf einem VPS erforderlich sind.

Erstellen Sie einen VPS mit Ubuntu Server 18.04 LTS

Beginnen Sie mit einer Neuinstallation von Ubuntu 18.04.

Wenn Sie beispielsweise Linode verwenden, wählen Sie in Ihrem Linode-Dashboard Erstellen und dann Linode. Wählen Sie dann unter „Choose a Distribution“ Ubuntu 18.04 LTS aus.

Oder, wenn Sie Digital Ocean verwenden, wählen Sie in Ihrem Digital Ocean-Dashboard Create, Droplets. Wählen Sie dann unter Distributionen Ubuntu 18.04.3 (LTS) x64.

Tipp

Die minimalen $5/Monat-Dienste auf Linode und Digital Ocean bieten 1 GB RAM, 25 GB SSD-Speicher und 1 TB monatlichen Netzwerkverkehr. Für den persönlichen Gebrauch schneidet Nextcloud bei diesen Spezifikationen gut ab. Wenn Sie mehr Speicherplatz benötigen, können Sie einen teureren Plan wählen.

Stellen Sie nach der Erstellung Ihres VPS sicher, dass Sie seine IP-Adresse und sein Root-Passwort kennen, bevor Sie mit diesen Anweisungen fortfahren. Die IP-Adresse ist im Dashboard für Ihren VPS aufgeführt. Das Root-Passwort wurde entweder von Ihnen während der Installation gewählt (Linode) oder Ihnen per E-Mail zugeschickt (Digital Ocean).

Aktualisieren Sie den DNS-Eintrag Ihrer Domain

Jetzt ist ein guter Zeitpunkt, um den DNS-Eintrag Ihrer Domain so zu aktualisieren, dass er auf Ihren VPS verweist. Melden Sie sich bei Ihrem Domain-Registrar an und erstellen Sie einen A-Eintrag für Ihre Domain mit der IPv4-Adresse Ihres VPS. Sie können optional einen AAAA-Eintrag erstellen, der auf die IPv6-Adresse des VPS verweist.

Wenn Sie sich nicht sicher sind, wie das geht, sehen Sie in der Dokumentation auf der Website Ihres Registrars nach.

Tipp

Die Verwendung eines Domänennamens für Ihren Server wird empfohlen, ist jedoch nicht erforderlich. Wenn Sie keinen Domainnamen haben, können Sie einen bei einem Registrar wie NameCheap oder GoDaddy bekommen. Wenn Sie keinen Domänennamen wünschen, können Sie den Domänennamen in dieser Anleitung durch die IPv4-Adresse Ihres VPS ersetzen.

Verbinden Sie sich mit VPS mit SSH

Verbinden Sie sich mit SSH mit Ihrem VPS und melden Sie sich als Benutzer root an. Öffnen Sie beispielsweise in Windows 10 eine Eingabeaufforderung und führen Sie den folgenden Befehl aus.

ssh [email protected]address

Ersetzen Sie Adresse durch den Domänennamen oder die IP-Adresse Ihres Servers. Wenn beispielsweise die IPv4-Adresse Ihres VPS lautet 123.45.67.89:

ssh [email protected]
Tipp

Wenn Sie Ihre DNS-Einträge kürzlich aktualisiert haben, wurden die Informationen möglicherweise noch nicht an Ihre DNS-Server weitergegeben. Wenn Sie mit Ihrem Domänennamen keine Verbindung herstellen können, verwenden Sie stattdessen Ihre IP-Adresse.

Wenn Sie sich zum ersten Mal mit dem Server verbinden, werden Sie aufgefordert, die Authentizität des Verschlüsselungsschlüssels des Servers zu überprüfen.

The authenticity of host 'example.com (123.45.67.89)' can't be established.
ECDSA key fingerprint is SHA256:asdfPZq159216hjklgRBhD412b3PvkEjKBf0h352mZp.
Are you sure you want to continue connecting (yes/no)?

Geben Sie ja ein und drücken Sie die Eingabetaste. Sie werden dann nach dem Root-Passwort Ihres VPS gefragt.

Warning: Permanently added '198.74.58.146' to the list of known hosts.
[email protected]'s password:

Geben Sie das Root-Passwort ein und drücken Sie die Eingabetaste.

Aktualisieren Sie Ubuntu und erstellen Sie einen Benutzer

Wenn Sie sich anmelden, sehen Sie die Eingabeaufforderung für Ihren Server.

[email protected]:~#

Aktualisieren Sie das System mit dem apt-Paketmanager.

apt update && apt -y upgrade

Erstellen Sie ein normales Benutzerkonto (ohne Rootberechtigung). Wählen Sie einen aus einem Wort bestehenden Namen mit Kleinbuchstaben. Wenn Sie beispielsweise Alice heißen, können Sie den Benutzernamen Alice wählen. In diesem Beispiel nennen wir den Benutzer myuser.

adduser myuser

Beantworten Sie die Eingabeaufforderungen wie folgt.

Enter new UNIX password:    (type a password and press Enter)
Retype new UNIX password:   (type it again and press Enter)
    Full Name []:       (press Enter)
    Room Number []:     (press Enter)
    Work Phone []:      (press Enter)
    Home Phone []:      (press Enter)
    Other []:           (press Enter)
Is the Enter correct? [Y/n]   (press Enter)

Verwenden Sie den Befehl usermod, um Ihren Benutzer zur sudo-Gruppe hinzuzufügen. Mit Usermod können Sie den Befehl sudo ausführen, sodass Sie Administratorbefehle ausführen können, ohne sich als Root anzumelden.

usermod -aG sudo myuser

Stellen Sie den Hostnamen Ihres Computers auf Ihren Domänennamen ein. (Ersetzen Sie example.com durch Ihren tatsächlichen Domainnamen.)

hostnamectl set-hostname example.com

Melden Sie sich vom Server ab.

exit

Sichern Sie das VPS

Melden Sie sich erneut beim Server an, diesmal als Ihr neuer Benutzer.

ssh [email protected]

Sie werden von der normalen Benutzeraufforderung begrüßt.

[email protected]:~$

Beachten Sie, dass die Eingabeaufforderung anstelle eines # mit einem $ endet. Dies zeigt an, dass Sie als normaler Benutzer und nicht als root angemeldet sind.

Root-SSH-Anmeldung deaktivieren

Es ist gefährlich, SSH-Anmeldungen durch den Root-Benutzer zuzulassen, da Ihr VPS dem Internet ausgesetzt ist und viele unerwünschte Anmeldeversuche erhalten kann. Die folgenden Schritte stellen sicher, dass sich niemand (einschließlich Sie) als Root beim Server anmelden kann.

Tipp

Sie sollten Root-SSH-Anmeldungen immer so schnell wie möglich nach dem Erstellen eines VPS deaktivieren.

Öffnen Sie die Datei /etc/ssh/sshd_config in einem Texteditor. In diesen Beispielen verwenden wir den Nano-Texteditor. Für die Bearbeitung der Datei sshd_config sind Administratorrechte erforderlich, daher müssen Sie dem nano-Befehl sudo voranstellen und Ihr Passwort (nicht das Root-Passwort) eingeben, wenn Sie dazu aufgefordert werden.

sudo nano /etc/ssh/sshd_config

Verwenden Sie im Texteditor die Pfeiltasten, um die Zeile PermitRootLogin yes zu finden. Ändere das Wort ja in nein.

Root-SSH-Anmeldung deaktivieren

Speichern Sie die Datei, indem Sie Strg+O, Enter drücken. Beenden Sie den Editor, indem Sie Strg+X drücken.

Starten Sie den SSH-Server neu, um die neuen Einstellungen zu laden.

sudo systemctl restart sshd

Konfigurieren Sie die VPS-Firewall

Verwenden Sie zum Schutz Ihres Servers das Dienstprogramm ufw (“Uncomplicated Firewall”), um den Zugriff auf bestimmte Netzwerkports zu beschränken.

Legen Sie zunächst allgemeine Standardregeln fest. Konfigurieren Sie die Firewall so, dass sie den gesamten ausgehenden Datenverkehr zulässt und den gesamten eingehenden Datenverkehr ablehnt.

sudo ufw default allow outgoing
sudo ufw default deny incoming

Erstellen Sie dann Ausnahmen, um eingehenden Datenverkehr für SSH- (Port 22), HTTP- (Port 80) und HTTPS- (Port 443) Verbindungen zuzulassen.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Aktivieren Sie die Firewall und setzen Sie diese Regeln in Kraft.

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Geben Sie y ein und drücken Sie die Eingabetaste.

Firewall is active and enabled on system startup

Installieren Sie Webserver, Datenbank und PHP

Installieren Sie den Apache-Webserver, das MariaDB-Datenbanksystem und die PHP-Skriptsprache.

sudo apt -y install apache2 mariadb-server php

Installieren Sie die von Nextcloud benötigten PHP-Module.

sudo apt -y install php-curl php-gd php-mbstring php-zip php-xml php-mysql 
                    php-intl php-bz2 php-imagick

Konfigurieren Sie MariaDB

Bereiten Sie den MariaDB-Server vor und konfigurieren Sie sein Root-Konto.

sudo mysql_secure_installation
Enter current password for root (enter for none):  (press Enter)
Change the root password? [Y/n]                    (press Enter)
New password:                       (type a password, press Enter)
Re-enter new password:              (type it again, press Enter)
Remove anonymous users? [Y/n]                 (press Enter)
Disallow root login remotely? [Y/n]           (press Enter)
Remove test database and access to it? [Y/n]  (press Enter)
Reload privilege tables now? [Y/n]            (press Enter)

Öffnen Sie den MariaDB-Client.

sudo mysql

Führen Sie die folgenden Befehle an der MariaDB-Eingabeaufforderung aus.

use mysql
update user set plugin='mysql_native_password' where user="root";
flush privileges;
q

Apache konfigurieren

Aktivieren Sie die von Nextcloud benötigten Apache-Module.

sudo a2enmod rewrite headers env dir mime

Legen Sie die globale ServerName-Direktive fest

Öffnen Sie die globale Apache-Konfigurationsdatei zum Bearbeiten.

sudo nano /etc/apache2/apache2.conf

Fügen Sie oben in der Datei die folgende Zeile ein und verwenden Sie Ihren Domänennamen anstelle von example.com.

ServerName example.com

Legen Sie die ServerName-Direktive fest

Drücken Sie Strg+O, Enter, um die Datei zu speichern. Drücken Sie zum Beenden Strg+X.

Erstellen Sie eine Konfigurationsdatei für den virtuellen Apache-Host für Nextcloud

Erstellen Sie eine neue Webserver-Konfigurationsdatei für Nextcloud. Die Datei ist leer, wenn Sie sie öffnen.

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

Fügen Sie diesen Text in die Datei ein.

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www/nextcloud/
  Alias / "/var/www/nextcloud/"
  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

Drücken Sie Strg+O, Enter, um die Datei zu speichern. Drücken Sie Strg+X, um die Datei zu schließen.

Laden Sie Nextcloud herunter und installieren Sie es

Wechseln Sie mit dem cd-Befehl in Ihr Home-Verzeichnis (abgekürzt als ~).

cd ~

Erstellen Sie mit dem Befehl mkdir ein Verzeichnis „Downloads“ und wechseln Sie dann in dieses Verzeichnis.

mkdir Downloads
cd Downloads

Verwenden Sie das Dienstprogramm wget, um die neueste Version von Nextcloud und den SHA512-Hash herunterzuladen. Der Hash ist eine kleine Textdatei, die eine mathematische Signatur enthält, die hilft, die Authentizität des Nextcloud-Archivs zu überprüfen.

wget https://download.nextcloud.com/server/releases/latest.tar.bz2{,.sha512}

Verwenden Sie das Dienstprogramm sha512sum, um zu überprüfen, ob der SHA512-Hash des Nextcloud-Archivs mit dem Inhalt der Textdatei übereinstimmt.

sha512sum -c latest.tar.bz2.sha512
latest.tar.bz2: OK

Verwenden Sie das Dienstprogramm tar, um den Inhalt des Archivs zu extrahieren.

tar xjvf latest.tar.bz2

Kopieren Sie das extrahierte nextcloud-Verzeichnis in das Verzeichnis /var/www/.

sudo cp -R nextcloud /var/www/

Verwenden Sie das Dienstprogramm chown, um den Besitzerbenutzer und die Gruppe des Verzeichnisses /var/www/nextcloud (und aller seiner Dateien und Unterverzeichnisse) in den speziellen Websitebenutzer/die Gruppe www-data zu ändern.

sudo chown -R www-data:www-data /var/www/nextcloud/

Installieren Sie nextcloud mit dem folgenden Befehl. Ersetzen Sie in diesem Befehl die folgenden Werte durch Ihre eigenen.

  • dbpass – das MariaDB-Root-Passwort, das Sie oben unter MariaDB konfigurieren angegeben haben.

  • ncuser – ein Benutzername für den Nextcloud-Administratorbenutzer. Dieser Wert muss nicht mit Ihrem VPS-Benutzernamen übereinstimmen. Sie können beispielsweise admin oder alice usw. auswählen. Dieser Benutzer hat Administratorrechte in der Nextcloud-Anwendung.

  • ncpass – ein Passwort für Ihren Nextcloud-Administratorbenutzer.

sudo -u www-data php /var/www/nextcloud/occ maintenance:install 
--database "mysql" --database-name "nextcloud" --database-user "root" 
--database-pass "dbpass" --admin-user "ncuser" --admin-pass "ncpass"

Wenn alles richtig funktioniert hat, wird nach einigen Augenblicken eine Bestätigungsmeldung angezeigt.

Nextcloud was successfully installed

Als bewährte Methode sollten Sie den Befehlsverlauf löschen, nachdem Sie Klartextkennwörter in der Befehlszeile eingegeben haben.

history -c

Fügen Sie Ihren Domänennamen zu den vertrauenswürdigen Domänen von Nextcloud hinzu.

sudo -u www-data php /var/www/nextcloud/occ config:system:set 
trusted_domains 1 --value=example.com
System config value trusted_domains => 1 set to string example.com

Aktivieren Sie die Konfiguration des Nextcloud-Webservers.

sudo a2ensite nextcloud.conf

Deaktivieren Sie die standardmäßige Apache-Platzhalter-Website.

sudo a2dissite 000-default.conf

Laden Sie die Apache-Konfiguration neu.

sudo systemctl reload apache2

Aktivieren Sie HTTPS

Ihre Nextcloud-Anwendung ist derzeit nur über HTTP zugänglich. Der nächste Schritt besteht darin, HTTPS zu aktivieren, um sicherzustellen, dass Daten zwischen Ihren Nextcloud-Geräten und dem Server vollständig verschlüsselt werden.

Diese Anweisungen verwenden das Dienstprogramm certbot, um automatisch ein kostenloses TLS-Zertifikat für Ihre Domäne von Let’s Encrypt zu erwerben. Certbot konfiguriert Apache auch so, dass Ihr Nextcloud-Datenverkehr mit TLS verschlüsselt wird.

Aktivieren Sie das Apache SSL-Modul und starten Sie Apache neu.

sudo a2enmod ssl
sudo systemctl restart apache2

Installieren und führen Sie certbot aus.

sudo apt install -y python-certbot-apache
sudo certbot --apache

Certbot fordert Sie zur Eingabe von Informationen auf. Antworten Sie wie folgt.

  1. Geben Sie Ihre E-Mail-Adresse ein (erforderlich).
  2. Geben Sie A ein und drücken Sie die Eingabetaste, um den Nutzungsbedingungen von Let’s Encrypt zuzustimmen.
  3. Geben Sie Y ein, um Ihre E-Mail-Adresse mit dem EFF zu teilen, oder N, um abzulehnen, und drücken Sie die Eingabetaste.
  4. Ihre Apache-Domains werden aufgelistet. Geben Sie die Nummer der Domäne ein, deren Datenverkehr Sie verschlüsseln möchten. Wenn dies Ihre einzige Website auf dem Server ist, geben Sie 1 ein und drücken Sie die Eingabetaste.
  5. Geben Sie 2 ein, um HTTP-Anforderungen an HTTPS umzuleiten (dringend empfohlen). Drücken Sie Enter.

Certbot lädt Ihre Apache-Konfiguration automatisch neu und Ihr Website-Verkehr wird jetzt über HTTPS verschlüsselt. Certbot konfiguriert Cron auch so, dass Ihr Zertifikat automatisch erneuert wird, bevor es abläuft.

Aktivieren Sie “hübsche” URLs

Standardmäßig enthalten Ihre Nextcloud-URLs „index.php“ als Teil der Webadresse. Sie können Nextcloud so konfigurieren, dass dieser Teil der URL ausgeblendet wird, wodurch sie beim Teilen schöner aussehen, beispielsweise beim Erstellen von Links zum Teilen von Dateien.

Tipp

Das Kürzen der URLs ist nur eine kosmetische Änderung und hat keinen Einfluss auf die Funktionalität von Nextcloud.

Um index.php aus Ihren Nextcloud-URLs wegzulassen, bearbeiten Sie die Datei /var/www/nextcloud/config/config.php.

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

Nehmen Sie die folgenden beiden Änderungen vor. Suchen Sie zuerst die Zeile mit:

'overwrite.cli.url' => 'http://localhost'

Ändern Sie in dieser Zeile http://localhost in https://yourdomain, sodass es so aussieht:

'overwrite.cli.url' => 'https://example.com',

Fügen Sie dann eine neue Zeile hinzu, die diesen Text enthält:

'htaccess.RewriteBase' => "https://www.computerhope.com/",

Bearbeiten Sie die config.php

Speichern Sie die Datei und verlassen Sie den Editor. (Drücken Sie in Nano Strg+O, Eingabetaste, Strg+X.)

Führen Sie schließlich diesen Befehl aus, um die .htaccess-Datei Ihrer Nextcloud mit der neuen Konfiguration zu aktualisieren.

sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess

Die Änderung wird sofort wirksam, ohne dass Dienste neu gestartet werden müssen. Alte URLs mit “index.php” funktionieren noch normal, aber neue Anfragen verwenden das “schönere” URL-Format.

Hübsche URL

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here