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.
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.
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]
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.
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.
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
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.
- Geben Sie Ihre E-Mail-Adresse ein (erforderlich).
- Geben Sie A ein und drücken Sie die Eingabetaste, um den Nutzungsbedingungen von Let’s Encrypt zuzustimmen.
- Geben Sie Y ein, um Ihre E-Mail-Adresse mit dem EFF zu teilen, oder N, um abzulehnen, und drücken Sie die Eingabetaste.
- 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.
- 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.
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/",
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.