GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Installieren Sie NextCloud auf Ubuntu 20.04 mit Nginx (LEMP Stack)

Dieses Tutorial zeigt Ihnen, wie Sie NextCloud auf Ubuntu 20.04 LTS mit Nginx-Webserver installieren.

Was ist NextCloud?

NextCloud ist eine kostenlose, selbst gehostete Open-Source-Cloud-Speicherlösung. Es ist funktional ähnlich wie Dropbox. Proprietäre Cloud-Speicherlösungen (Dropbox, Google Drive usw.) sind praktisch, haben aber ihren Preis:Sie können zum Sammeln persönlicher Daten verwendet werden, da Ihre Dateien auf ihren Computern gespeichert werden. Wenn Sie sich Sorgen um die Privatsphäre machen, können Sie auf NextCloud umsteigen, das Sie auf Ihrem privaten Heimserver oder auf einem virtuellen privaten Server (VPS) installieren können. Sie können Ihre Dateien über NextCloud auf Ihren Server hochladen und diese Dateien dann mit Ihrem Desktop-Computer, Laptop oder Smartphone synchronisieren. So haben Sie die volle Kontrolle über Ihre Daten.

NextCloud-Funktionen

  • Kostenlos und Open-Source
  • Ende-zu-Ende-Verschlüsselung, d. h. Dateien können auf Client-Geräten verschlüsselt werden, bevor sie auf den Server hochgeladen werden. Selbst wenn jemand Ihren Server stiehlt, kann er Ihre Dateien nicht lesen.
  • Kann in eine Online-Office-Suite (Collobora Online, OnlyOffice) integriert werden, sodass Sie Ihre doc-, ppt- und xls-Dateien direkt von NextCloud aus erstellen und bearbeiten können.
  • Der App Store enthält Hunderte von Apps zur Erweiterung der Funktionalität (wie Kalender-App, Kontakte-App, Notizen-App, Videokonferenz-App usw.).
  • Der Sync-Client ist für Linux, macOS, Windows, iOS und Android verfügbar.

Voraussetzungen

NextCloud ist in der Programmiersprache PHP geschrieben. Um diesem Tutorial zu folgen, müssen Sie zuerst den LEMP-Stack auf Ubuntu 20.04 installieren . Wenn Sie dies noch nicht getan haben, sehen Sie sich bitte das folgende Tutorial an.

  • So installieren Sie LEMP Stack (Nginx, MariaDB, PHP7.4-FPM) auf Ubuntu 20.04

Sie können NextCloud auf Ihrem Heimserver oder einem VPS (Virtual Private Server) installieren. Sie benötigen auch einen Domänennamen, damit Sie später HTTPS aktivieren können, um den HTTP-Verkehr zu verschlüsseln. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und Whois-Datenschutz lebenslang kostenlos ist. Nextcloud kann ohne Domainnamen installiert werden, aber es macht wirklich keinen Sinn, wenn Sie die HTTP-Verbindung nicht verschlüsseln, um Schnüffeln vorzubeugen. Ich empfehle den Kauf eines Domainnamens, wenn Sie wirklich an Serversoftware basteln und sie voll ausschöpfen möchten.

Lassen Sie uns jetzt NextCloud installieren.

Schritt 1:Laden Sie NextCloud auf Ubuntu 20.04 herunter

Melden Sie sich bei Ihrem Ubuntu 20.04-Server an. Laden Sie dann das NextCloud-Zip-Archiv auf Ihren Server herunter. Die neueste stabile Version ist zum Zeitpunkt des Schreibens dieses Artikels 21.0.1. Möglicherweise müssen Sie die Versionsnummer ändern. Gehen Sie zu https://nextcloud.com/install und klicken Sie auf download for server Schaltfläche, um die neueste Version anzuzeigen.

Sie können den folgenden Befehl ausführen, um es auf Ihren Server herunterzuladen.

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip

Sie können immer das obige URL-Format verwenden, um NextCloud herunterzuladen. Wenn eine neue Version herauskommt, ersetzen Sie einfach 21.0.1 mit der neuen Versionsnummer.

Entpacken Sie das Archiv nach dem Herunterladen mit unzip .

sudo apt install unzipsudo unzip nextcloud-21.0.1.zip -d /usr/share/nginx/

Das -d Option gibt das Zielverzeichnis an. NextCloud-Webdateien werden nach /usr/share/nginx/nextcloud/ extrahiert . Dann müssen wir den Eigentümer dieses Verzeichnisses auf www-data ändern damit der Webserver (Nginx) in dieses Verzeichnis schreiben kann.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

Schritt 2:Erstellen Sie eine Datenbank und einen Benutzer für Nextcloud im MariaDB-Datenbankserver

Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket verwendet Plugin für die Benutzeranmeldung zur Authentifizierung müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql voranstellen Befehl mit sudo .

sudo mysql

Erstellen Sie dann eine Datenbank für Nextcloud. Dieses Tutorial nennt die Datenbank nextcloud. Sie können einen beliebigen Namen verwenden.

Datenbank nextcloud erstellen;

Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password mit Ihrem bevorzugten Passwort.

Erstellen Sie den Benutzer nextclouduser@localhost, der durch „Ihr Passwort“ identifiziert wird;

Gewähren Sie diesem Benutzer alle Berechtigungen auf der nextcloud Datenbank.

gewähre nextclouduser@localhost, identifiziert durch „dein-passwort“, alle Privilegien auf nextcloud.*

Berechtigungen leeren und beenden.

Privilegien leeren;exit;

Schritt 3:Erstellen Sie eine Nginx-Konfigurationsdatei für Nextcloud

Erstellen Sie eine nextcloud.conf Datei in /etc/nginx/conf.d/ Verzeichnis, mit einem Befehlszeilen-Texteditor wie Nano.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Kopieren Sie den folgenden Text und fügen Sie ihn in die Datei ein. Ersetzen Sie nextcloud.example.com mit Ihrer eigenen bevorzugten Subdomain. Vergessen Sie nicht, in Ihrem DNS-Zonen-Editor einen DNS-A-Eintrag für diese Subdomain zu erstellen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.

server {listen 80; hör zu [::]:80; server_name nextcloud.example.com; # Header hinzufügen, um sicherheitsrelevante Header bereitzustellen add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag keine; add_header X-Download-Optionen noopen; add_header X-Permitted-Cross-Domain-Policies keine; add_header Referrer-Richtlinie no-referrer; #Ich habe festgestellt, dass dieser Header unter Ubuntu benötigt wird, aber nicht unter Arch Linux. add_header X-Frame-Optionen "SAMEORIGIN"; # Pfad zum Stammverzeichnis Ihres Installationsstammverzeichnisses /usr/share/nginx/nextcloud/; access_log /var/log/nginx/nextcloud.access; error_log /var/log/nginx/nextcloud.error; location =/robots.txt {alle zulassen; log_not_found aus; access_log off; } # Die folgenden 2 Regeln werden nur für die App user_webfinger benötigt. # Entkommentieren Sie es, wenn Sie vorhaben, diese App zu verwenden. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # last; location =/.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location =/.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge {alle zulassen; } # maximale Upload-Größe festlegen client_max_body_size 512M; fastcgi_buffers 64 4K; # gzip deaktivieren, um das Entfernen des ETag-Headers zu vermeiden gzip off; # Entkommentieren Sie, wenn Ihr Server mit dem ngx_pagespeed-Modul gebaut wurde # Dieses Modul wird derzeit nicht unterstützt. #pagespeed aus; Fehlerseite 403 /core/templates/403.php; error_page 404 /core/templates/404.php; Ort / { umschreiben ^ /index.php; } location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {alle verweigern; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {alle verweigern; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34 ])\.php(?:$|/) {include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Vermeiden Sie das zweimalige Senden der Sicherheitsheader fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering aus; } location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; indexindex.php; } # Cache-Control-Header für js- und CSS-Dateien hinzufügen # Stellen Sie sicher, dass er sich UNTERHALB des PHP-Blockspeicherorts befindet ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; # Header hinzufügen, um sicherheitsrelevante Header bereitzustellen (Es ist beabsichtigt, dass diese mit den oben genannten dupliziert werden) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag keine; add_header X-Download-Optionen noopen; add_header X-Permitted-Cross-Domain-Policies keine; add_header Referrer-Richtlinie no-referrer; # Optional:Zugriff auf Assets nicht protokollieren access_log off; } Ort ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Optional:Zugriff auf andere Assets nicht protokollieren access_log off; }}

Speichern und schließen Sie die Datei. (Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O , und drücken Sie dann Enter bestätigen. Drücken Sie zum Beenden Ctrl+X .)

Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Schritt 4:PHP-Module installieren und aktivieren

Führen Sie die folgenden Befehle aus, um PHP-Module zu installieren, die von NextCloud benötigt oder empfohlen werden.

sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

Schritt 5:HTTPS aktivieren

Jetzt können Sie in Ihrem Webbrowser auf den Nextcloud-Webinstallationsassistenten zugreifen, indem Sie den Domänennamen für Ihre Nextcloud-Installation eingeben.

nächstecloud.example.com

Wenn die Webseite nicht geladen werden kann, müssen Sie wahrscheinlich Port 80 in der Firewall öffnen.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Und auch Port 443.

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Bevor wir sensible Informationen eingeben, sollten wir eine sichere HTTPS-Verbindung auf Nextcloud aktivieren. Wir können ein kostenloses TLS-Zertifikat von Let’s Encrypt erhalten. Installieren Sie den Let’s Encrypt-Client (certbot) aus dem Ubuntu 20.04-Repository.

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx ist das Nginx-Plugin. Führen Sie als Nächstes den folgenden Befehl aus, um ein kostenloses TLS-Zertifikat mit dem Nginx-Plugin zu erhalten.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.example.com

Wo:

  • –nginx :Verwenden Sie den Nginx-Authentifikator und das Installationsprogramm
  • –stimme zu :Nutzungsbedingungen von Let’s Encrypt akzeptieren
  • –Weiterleitung :Erzwingen Sie HTTPS, indem Sie eine 301-Weiterleitung hinzufügen.
  • –hsts :HTTP Strict Transport Security aktivieren. Dies schützt vor SSL/TLS-Stripping-Angriffen.
  • –staple-ocsp :OCSP-Heften aktivieren.
  • –E-Mail :E-Mail, die für die Registrierung und den Wiederherstellungskontakt verwendet wird.
  • -d Flag folgt eine durch Kommas getrennte Liste von Domänennamen. Sie können bis zu 100 Domainnamen hinzufügen.

Sie werden gefragt, ob Sie E-Mails von EFF (Electronic Frontier Foundation) erhalten möchten. Nachdem Sie J oder N ausgewählt haben, wird Ihr TLS-Zertifikat automatisch bezogen und für Sie konfiguriert, was durch die folgende Meldung angezeigt wird.

Ich habe festgestellt, dass Certbot möglicherweise keinen HSTS-Header in der Nginx-Konfigurationsdatei für Nextcloud hinzufügen kann. Wenn Sie HSTS (HTTP Strict Transport Security) aktivieren möchten, bearbeiten Sie die Datei.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Wir können dann die folgende Zeile im SSL-Serverblock hinzufügen, um den HSTS-Header zu aktivieren. (Wenn es bereits vorhanden ist, ist Ihre Konfiguration in Ordnung.)

add_header Strict-Transport-Security "max-age=31536000" immer;

Außerdem können Sie das HTTP2-Protokoll aktivieren, indem Sie die Option http2 hinzufügen , wodurch das Laden von Webseiten beschleunigt wird.

listen 443 ssl http2; # verwaltet von Certbot

Wie unten.

Speichern und schließen Sie die Datei. Senden Sie dann eine SMS mit Nginx-Konfigurationen.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderung wirksam wird.

sudo systemctl reload nginx

Die obige Konfiguration erhält beim SSL-Test eine A+-Punktzahl.

Schritt 6:Beenden Sie die Installation in Ihrem Webbrowser

Jetzt können Sie über eine HTTPS-Verbindung auf den Nextcloud-Webinstallationsassistenten zugreifen.

https://nextcloud.example.com

Um die Installation abzuschließen, müssen Sie ein Administratorkonto erstellen, den Pfad des Nextcloud-Datenordners eingeben und die Datenbankdetails eingeben, die Sie in Schritt 2 erstellt haben. Sie können den Standard localhost verwenden als Host-Adresse, oder Sie können localhost:3306 eingeben , da MariaDB auf Port 3306 lauscht.

Im Datenordner werden die Dateien der Benutzer gespeichert. Aus Sicherheitsgründen ist es am besten, das Datenverzeichnis außerhalb des Nextcloud-Webroot-Verzeichnisses zu platzieren. Anstatt also Benutzerdateien unter /usr/share/nginx/nextcloud/data/ zu speichern , können wir es in /usr/share/nginx/nextcloud-data ändern . die mit folgendem Befehl erstellt werden kann:

sudo mkdir /usr/share/nginx/nextcloud-data

Stellen Sie dann sicher, dass der Nginx-Benutzer (www-data ) hat Schreibrechte für das Datenverzeichnis.

sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R

Klicken Sie auf Finish Setup klicken, sehen Sie die Weboberfläche von Nextcloud. Herzlichen Glückwunsch! Sie können es als Ihren privaten Cloud-Speicher verwenden.

So richten Sie die NextCloud-E-Mail-Benachrichtigung ein

Wenn Ihre NextCloud-Instanz von mehr als einer Person verwendet wird, ist es wichtig, dass Ihr NextCloud-Server Transaktions-E-Mails senden kann, z. B. E-Mails zum Zurücksetzen des Passworts. Zunächst sollten Sie eine E-Mail-Adresse für Ihr eigenes Konto festlegen. Gehen Sie zu Settings -> Personal Info und legen Sie eine E-Mail-Adresse für Ihr Konto fest.

Gehen Sie dann zu Einstellungen -> Grundeinstellungen . Sie finden die E-Mail-Server-Einstellungen. Es gibt zwei Sendemodi:sendmail und smtp . Sie können den sendmail wählen -Modus, wenn auf Ihrem NextCloud-Host ein SMTP-Server ausgeführt wird.

Wenn Sie einen SMTP-Server verwenden möchten, der auf einem anderen Host läuft, wählen Sie smtp Modus und geben Sie die Adresse des SMTP-Servers und die Anmeldedaten wie unten ein. Wählen Sie STARTTLS für die Verschlüsselung.

Wie Sie einen E-Mail-Server einrichten, erfahren Sie im folgenden Tutorial. Hinweis dass ich dringend empfehle, den iRedMail-Mailserver auf einem frischen, sauberen Betriebssystem auszuführen. Die Installation von iRedMail auf einem Betriebssystem mit anderen Webanwendungen kann fehlschlagen und wahrscheinlich vorhandene Anwendungen beschädigen.

  • So richten Sie mit iRedMail ganz einfach einen voll funktionsfähigen Mailserver unter Ubuntu 20.04 ein

So setzen Sie das Nextcloud-Benutzerpasswort über die Befehlszeile zurück

Wenn Sie das Passwort Ihres Administratorkontos verloren und keine E-Mail-Zustellung in Nextcloud eingerichtet haben, müssen Sie das Passwort zurücksetzen, indem Sie den folgenden Befehl auf Ihrem Server ausführen. Ersetzen Sie nextcloud_username mit Ihrem echten Benutzernamen.

sudo -u www-data php /usr/share/nginx/nextcloud/occ user:resetpassword nextcloud_username 

Es gibt auch andere Befehle, die Sie möglicherweise nützlich finden. Verfügbare Befehle auflisten mit:

sudo -u www-data php /usr/share/nginx/nextcloud/occ

oder

sudo -u www-data php /usr/share/nginx/nextcloud/console.php

So verschieben Sie das Datenverzeichnis

Falls Sie das NextCloud-Datenverzeichnis verschieben müssen, gibt es 4 Schritte, um dies zu erreichen. Zuerst müssen Sie den cp verwenden Befehl, um das Datenverzeichnis in das neue Verzeichnis zu kopieren. Der Einhängepunkt meiner externen Festplatte ist beispielsweise /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731 . Ich erstelle das neue Datenverzeichnis auf der externen Festplatte.

sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Dann kopiere ich das ursprüngliche Datenverzeichnis in das neue Datenverzeichnis. -R Flag bedeutet, dass der Kopiervorgang rekursiv ist.

sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Sie müssen auch die .ocdata kopieren Datei.

sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Als nächstes müssen Sie www-data festlegen (Nginx-Benutzer) als Besitzer.

sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Zuletzt müssen Sie die config.php bearbeiten Datei.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Suchen Sie die folgende Zeile und ändern Sie den Wert von datadirectory .

'datadirectory' => '/usr/share/nginx/nextcloud-data',

Speichern und schließen Sie die Datei. Laden Sie die NextCloud-Webseite neu und Sie sind fertig.

Schritt 7:Erhöhen Sie das PHP-Speicherlimit

Das standardmäßige PHP-Speicherlimit beträgt 128 MB. NextCloud empfiehlt 512 MB für eine bessere Leistung. Um das PHP-Speicherlimit zu ändern, bearbeiten Sie die php.ini Datei.

sudo nano /etc/php/7.4/fpm/php.ini

Finden Sie die folgende Zeile. (Zeile 409)

memory_limit =128M

Ändern Sie den Wert.

Speicherlimit =512 MB

Speichern und schließen Sie die Datei. Alternativ können Sie den folgenden Befehl ausführen, um den Wert zu ändern, ohne die Datei manuell zu öffnen.

sudo sed -i 's/memory_limit =128M/memory_limit =512M/g' /etc/php/7.4/fpm/php.ini

Laden Sie dann PHP-FPM neu Dienst, damit die Änderungen wirksam werden.

sudo systemctl reload php7.4-fpm

Schritt 8:Richten Sie PHP so ein, dass Systemumgebungsvariablen richtig abgefragt werden

Bearbeiten Sie die www.conf Datei.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

Suchen Sie die folgende Zeile (Zeile 396).

;clear_env =nein

Entfernen Sie das Semikolon, um diese Zeile zu entkommentieren.

clear_env =nein

Speichern und schließen Sie die Datei. Alternativ können Sie den folgenden Befehl ausführen, um diese Zeile zu entkommentieren, ohne die Datei manuell zu öffnen.

sudo sed -i 's/;clear_env =no/clear_env =no/g' /etc/php/7.4/fpm/pool.d/www.conf

Laden Sie dann PHP-FPM neu Dienst, damit die Änderungen wirksam werden.

sudo systemctl reload php7.4-fpm

Schritt 9:Erhöhen Sie die Größenbeschränkung für Upload-Dateien

Die von Nginx festgelegte standardmäßige maximale Upload-Dateigröße beträgt 1 MB. Um das Hochladen großer Dateien auf Ihren NextCloud-Server zu ermöglichen, bearbeiten Sie die Nginx-Konfigurationsdatei für NextCloud.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Wir haben in dieser Datei bereits die maximale Dateigröße festgelegt, wie durch

angegeben
client_max_body_size 512M;

Sie können es ändern, wenn Sie möchten, z. B. 1G.

client_max_body_size 1024M;

Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

PHP legt auch eine Begrenzung der Upload-Dateigröße fest. Die standardmäßige maximale Dateigröße zum Hochladen beträgt 2 MB. Um die Upload-Größenbeschränkung zu erhöhen, bearbeiten Sie die PHP-Konfigurationsdatei.

sudo nano /etc/php/7.4/fpm/php.ini

Suchen Sie die folgende Zeile (Zeile 846).

upload_max_filesize =2M

Ändern Sie den Wert wie folgt:

upload_max_filesize =1024M

Speichern und schließen Sie die Datei. Alternativ können Sie den folgenden Befehl ausführen, um den Wert zu ändern, ohne die Datei manuell zu öffnen.

sudo sed -i 's/upload_max_filesize =2M/upload_max_filesize =1024M/g' /etc/php/7.4/fpm/php.ini

Starten Sie dann PHP-FPM neu.

sudo systemctl restart php7.4-fpm

Schritt 10:Redis Cache für NextCloud konfigurieren

Wenn Sie zu Ihren NextCloud-Einstellungen gehen -> Übersicht Seite wird möglicherweise die folgende Warnung angezeigt:

Es wurde kein Speicher-Cache konfiguriert. Um Ihre Leistung zu verbessern, konfigurieren Sie bitte einen Memcache, falls verfügbar.

Wir werden das Speicher-Caching für nextCloud mithilfe von Redis aktivieren. Führen Sie den folgenden Befehl aus, um den Redis-Server aus dem Ubuntu-Repository zu installieren.

sudo apt install redis-server

Sie können die Version überprüfen mit:

redis-server -v

Beispielausgabe:

Redis-Server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923

Jetzt können wir prüfen, ob der Redis-Server läuft.

systemctl status redis

Hinweis:Wenn der obige Befehl nicht sofort beendet wurde, können Sie die Q-Taste drücken, um die Kontrolle über das Terminal zurückzugewinnen.

Aus dem obigen Screenshot können wir sehen, dass es läuft und der Autostart aktiviert ist. Wenn es aus irgendeinem Grund nicht läuft, führen Sie den folgenden Befehl aus:

sudo systemctl start redis-server

Und wenn der automatische Start beim Booten nicht aktiviert ist, können Sie ihn mit dem folgenden Befehl aktivieren:

sudo systemctl enable redis-server

Um Redis als Cache für nextCloud zu konfigurieren, müssen wir die PHP-Erweiterung für die Schnittstelle zu Redis installieren.

sudo apt install php-redis

Überprüfen Sie, ob die Erweiterung aktiviert ist.

php --ri redis

Wir können sehen, dass die Redis-Erweiterung aktiviert ist. Wenn es nicht aktiviert ist, führen Sie den folgenden Befehl aus:

sudo phpenmod redis

Bearbeiten Sie als Nächstes die nextCloud-Konfigurationsdatei.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Fügen Sie die folgenden Zeilen über der Endung ); hinzu Linie.

'memcache.distributed' => '\OC\Memcache\Redis','memcache.local' => '\OC\Memcache\Redis','memcache.locking' => '\OC\Memcache\Redis' ,'redis' => array( 'host' => 'localhost', 'port' => 6379, ),

Speichern und schließen Sie die Datei. Starten Sie dann Nginx und PHP-FPM neu.

sudo systemctl restart nginx php7.4-fpm

Gehen Sie nun zu den NextCloud-Einstellungen -> Übersicht Seite erneut aufrufen und die Webseite aktualisieren, sollte die Warnung zum Zwischenspeichern des Speichers verschwunden sein.

Fehlende Indizes hinzufügen

Wenn Sie die folgende Meldung in den NextCloud-Einstellungen sehen -> Übersicht Seite,

Der Datenbank fehlen einige Indizes. Da das Hinzufügen von Indizes bei großen Tabellen einige Zeit in Anspruch nehmen konnte, wurden sie nicht automatisch hinzugefügt.

Dann müssen Sie diese Indizes manuell hinzufügen. Wechseln Sie in das Nextcloud-Webroot-Verzeichnis.

cd /usr/share/nginx/nextcloud/

Führen Sie den folgenden Befehl aus, um Indizes zur Nextcloud-Datenbank hinzuzufügen.

sudo -u www-data php occ db:add-missing-indices

Wenn Sie jetzt die NextCloud-Einstellungen aktualisieren -> Übersicht Seite sollte die Warnung vor fehlenden Indexen verschwunden sein.

Umwandlung in Big Int

Wenn Sie die folgende Meldung in den NextCloud-Einstellungen sehen -> Übersicht Seite,

Bei einigen Spalten in der Datenbank fehlt die Konvertierung in big int. Da das Ändern von Spaltentypen bei großen Tabellen einige Zeit in Anspruch nehmen kann, wurden sie nicht automatisch geändert.

Dann müssen Sie den Spaltentyp manuell ändern. Wechseln Sie in das Nextcloud-Webroot-Verzeichnis.

cd /usr/share/nginx/nextcloud/

Versetzen Sie Ihre Nextcloud in den Wartungsmodus, um Benutzer daran zu hindern, sich anzumelden und Änderungen vorzunehmen.

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

Führen Sie dann den folgenden Befehl aus, um den Spaltentyp zu ändern.

sudo -u www-data php occ db:convert-filecache-bigint

Wenn dies erledigt ist, schalten Sie den Wartungsmodus aus.

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

Wenn Sie jetzt die NextCloud-Einstellungen aktualisieren -> Übersicht Seite sollte die Warnung vor Big Int verschwunden sein.

So installieren Sie den NextCloud-Client auf Ubuntu 20.04 Desktop

Führen Sie die folgenden Befehle auf dem Ubuntu 20.04-Desktop aus, um den Client aus dem Standard-Repository zu installieren.

sudo apt install nextcloud-client

NextCloud-Client auf Ubuntu 20.04

Client-Software für macOS, Windows, Android und iOS finden Sie auf der Download-Seite von Nextcloud.

So aktivieren Sie OnlyOffice/Collabora Online

Standardmäßig wird Nextcloud mit Unterstützung für OnlyOffice geliefert, einer Online-Office-Suite, mit der Sie Ihre doc-, ppt- und xls-Dateien direkt von NextCloud aus bearbeiten können. Wir müssen nur eine App installieren, um diese Funktion zu nutzen. Gehen Sie zu Nextcloud Apps -> Office & Text . Suchen und aktivieren Sie den community document server App.

Wenn Sie jetzt in Nextcloud auf die Schaltfläche „Hinzufügen“ (+) klicken, können Sie Word-, Tabellenkalkulations- und Präsentationsdokumente direkt von Ihrem Nextcloud-Server aus erstellen.

Ich fand jedoch, dass diese App nicht sehr zuverlässig ist. Und die Community-Edition erlaubt höchstens 20 Benutzer. Sie müssen eine Enterprise Edition erwerben, wenn Sie mehr als 20 Benutzer haben. Es gibt eine andere auf LibreOffice basierende Open-Source-Online-Office-Suite namens Collabora Online, die die gleiche Funktionalität hat, aber ohne die Begrenzung der Anzahl der Benutzer. Sie können den folgenden Artikel lesen, um es mit Nextcloud zu integrieren.

  • Integrieren Sie Collabora Online mit Nextcloud auf Ubuntu mit Docker

Lokalen DNS-Eintrag hinzufügen

Es wird empfohlen, die Datei /etc/hosts zu bearbeiten Datei auf Ihrem Nextcloud-Server und fügen Sie den folgenden Eintrag hinzu, damit Nextcloud selbst nicht das öffentliche DNS abfragen muss, was die Gesamtstabilität verbessern kann. Wenn Ihr Nextcloud-Server die Datei nextcloud.example.com nicht auflösen kann hostname, dann kann es zu einem 504-Gateway-Timeout kommen Fehler.

127.0.0.1 lokaler Host nextcloud.example.com

Eine IP-Adresse in /etc/hosts Datei kann mehrere Hostnamen haben, wenn Sie also andere Anwendungen auf derselben Box installiert haben, können Sie auch andere Hostnamen oder Subdomains in derselben Zeile wie folgt hinzufügen:

127.0.0.1 localhost focus ubuntu nextcloud.example.com collabora.example.com

Verwenden von Cron zum Ausführen von Hintergrundjobs

Standardmäßig verwendet Nextcloud AJAX, um bei jedem Laden einer Seite eine Aufgabe auszuführen. Sie können den effizienteren Cron-Dienst des Systems verwenden, um Hintergrundjobs auszuführen. Gehen Sie zu den Nextcloud-Einstellungen -> Grundeinstellungen und wählen Sie Cron .

Als nächstes bearbeiten Sie die www-data Crontab-Datei des Benutzers.

sudo -u www-data crontab -e

Fügen Sie dieser Datei die folgende Zeile hinzu, damit der Cron-Job alle 5 Minuten ausgeführt wird.

*/5 * * * * php7.4 -f /usr/share/nginx/nextcloud/cron.php

Speichern und schließen Sie die Datei.

(Optional) Böswillige Anmeldeversuche verhindern

Wenn Ihr Computer über eine statische öffentliche IP-Adresse verfügt, können Sie in der Nginx-Konfigurationsdatei eine IP-Whitelist erstellen.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Fügen Sie die folgenden Zeilen im SSL-Serverblock hinzu, um den Zugriff auf /login einzuschränken URL, sodass nur Ihre IP-Adresse auf diese URL zugreifen kann. Ersetzen Sie 78.56.34.12 durch Ihre eigene IP-Adresse.

location ~* ^/login{ try_files $uri /index.php; schließen Sie fastcgi_params ein; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; #Vermeiden Sie das zweimalige Senden der Sicherheitsheader fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; fastcgi_request_buffering aus; 78.56.34.12 zulassen; alle ablehnen;}

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Wenn Sie in Ihrem Heimnetzwerk keine statische IP-Adresse haben, können Sie einen VPN-Server in einem Rechenzentrum einrichten.

Tipps zur Fehlerbehebung

Wenn Fehler auftreten, können Sie eine der folgenden Protokolldateien überprüfen, um herauszufinden, was falsch ist.

  • Nginx-Fehlerprotokoll:/var/log/nginx/error.log
  • Nginx-Fehlerprotokoll für den virtuellen Nextcloud-Host:/var/log/nginx/nextcloud.error
  • Nextcloud-Anwendungsprotokoll:/usr/share/nginx/nextcloud/data/nextcloud.log

Zum Beispiel hatte ich einmal einen „Internal Server Error ” auf meiner Nextcloud-Instanz und die /var/log/nginx/nextcloud.error Datei hat mir das gesagt

FastCGI sendete in stderr:"PHP message:PHP Fatal error:Uncaught OC\HintException:[0]:Memcache \OC\Memcache\Redis not available for local cache (Ist das passende PHP-Modul installiert und aktiviert?) 

Da ich das ppa:ondrej/php-PPA auf meinem Ubuntu-Server verwendet habe, stellte sich heraus, dass ich auch php7.4-redis installieren muss zusätzlich zu php-redis Paket.

Upgrade von Nextcloud

Es ist wichtig, Ihren Nextcloud-Server mit den neuesten Sicherheits- und Fehlerbehebungen auf dem neuesten Stand zu halten. Lesen Sie das folgende Tutorial, um zu erfahren, wie Sie Nextcloud aktualisieren.

  • 2 Möglichkeiten zum Upgrade von Nextcloud [Befehlszeile und GUI]

Ubuntu
  1. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  2. So installieren Sie WordPress mit LEMP Stack auf CentOS 8

  3. So installieren Sie LEMP unter Ubuntu 16.04

  4. So installieren Sie WordPress mit einem LEMP-Stack auf Ubuntu 18.04

  5. Installieren Sie phpMyAdmin auf Ubuntu 20.04 mit Nginx

Installieren Sie NextCloud auf Ubuntu 18.04 mit Nginx (LEMP Stack)

Installieren Sie NextCloud auf Ubuntu 20.04 mit Apache (LAMP Stack)

So installieren Sie Nextcloud 13 auf Ubuntu 16.04 mit Nginx

So installieren Sie LEMP Stack (Nginx, MariaDB, PHP7.2) auf Ubuntu 18.04 LTS

So installieren Sie den LEMP-Stack auf Ubuntu 20.04 Server/Desktop

So installieren Sie den LEMP-Stack mit PhpMyAdmin in Ubuntu 20.04