Nextcloud ist eine Open-Source-Plattform für die Dateisynchronisierung und -freigabe sowie für die Zusammenarbeit. Sie ermöglicht Benutzern das Speichern, Synchronisieren und Teilen von Dateien, Kalendern, Kontakten und mehr über verschiedene Geräte hinweg. Nextcloud bietet zudem erweiterbare Funktionen wie Online-Office-Anwendungen, Integration von Drittanbieter-Apps und eine sichere Datenverwaltung auf eigenen Servern oder Cloud-Diensten.
Grundlagen |
Installation |
Konfiguration |
Cloudsoftware | Installation Apache / MySQL | Konfiguration Apache Webserver |
Installation Nextcloud | Konfiguration Nextcloud (config.php) | |
Installation PHP Cache | Konfiguration Nextcloud (.htaccess) | |
Terminal Befehle | Installation der SSL Software Certbot | Konfiguration PHP Cache |
Tipps und Tricks | OnlyOffice ( Office Suite ) | Konfiguration Datenbank |
———————————————- | ———————————————- | ———————————————- |
Cloudsoftware
Nextcloud ist eine Open-Source-Plattform, die Cloud-Speicher- und Kollaborationsdienste bereitstellt. Sie ermöglicht Benutzern, ihre Dateien, Kalender, Kontakte und mehr in der Cloud zu speichern und von verschiedenen Geräten aus darauf zuzugreifen. Im Gegensatz zu kommerziellen Cloud-Diensten erlaubt Nextcloud die Installation auf eigenen Servern, wodurch Nutzer die Kontrolle über ihre Daten behalten können. Es bietet außerdem Funktionen wie Online-Office-Anwendungen, Ende-zu-Ende-Verschlüsselung und die Möglichkeit zur Integration von Drittanbieter-Apps für erweiterte Funktionalität.
Installation Apache / MySQL
Mit dem folgenden Befehl wird der Apache und MySQL Server sowie einige von Nextcloud benötigte Pakete installiert:
1 |
sudo apt install -y mariadb-server mariadb-client apache2 apache2-utils php-bcmath php-curl php-cli php-common php-mbstring libmemcached-tools php-gd php-gmp php-imagick php-intl php-mbstring php-bz2 php-xml php-mysql php-zip php-dev php-curl php-fpm php-dompdf redis-server php-redis php-ldap wget curl unzip |
MySQL Datenbank Setupscript für Mariadatenbanken ausführen (obsolet) :
1 |
sudo mysql_secure_installation |
Ausgabe des Setupscripts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we’ll need the current password for the root user. If you’ve just installed MariaDB, and you haven’t set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on… Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y … Success! Normally, root should only be allowed to connect from ‚localhost‘. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y … Success! By default, MariaDB comes with a database named ‚test‘ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y – Dropping test database… … Success! – Removing privileges on test database… … Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y … Success! Cleaning up… All done! If you’ve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! |
Nextcloud benötigt einige Apache Module sowie das php-fpm Modul. Diese werden wie folgt aktiviert:
1 |
a2enmod proxy_fcgi setenvif mpm_event rewrite headers env dir mime ssl http2 |
und danach das PHP-FPM Modul:
1 |
a2enconf php8.2-fpm |
Installation Nextcloud
Die Nextcloudsoftware (v27) kann von der Nextcloud Webseite heruntergeladen werden und wird anschließend in das Webserververzeichnis entpackt und der Zugriff für den Webserver (www-data) gesetzt:
1 2 3 4 |
cd /var/www/ sudo wget https://download.nextcloud.com/server/releases/latest.zip sudo unzip latest.zip sudo chown -R www-data.www-data nextcloud |
Installation PHP Cache
Caching-Technologien wie OPCache, APCu, Memcache und Redis tragen dazu bei, die Geschwindigkeit, Skalierbarkeit und Reaktionsfähigkeit von Webanwendungen wie z.B. Nextcloud und ähnlichen Anwendungen zu verbessern. Der APCu ist für die Userdaten zuständig, die ansonsten auf der langsameren Disk gespeichert werden müssten. OPCache fungiert als schneller Zwischenspeicher für die PHP-Skripte.
-
- OPCache speichert PHP-Code/Skripte im Arb50eitsspeicher, um die Ausführungszeit zu verkürzen.
- APCu (Alternative PHP Cache userland) ist für die Userdaten zuständig.
- Memcache und Redis sind In-Memory-Datenbanken, die häufig verwendete Daten und Sitzungsinformationen speichern, um den Zugriff auf Datenbanken zu minimieren.
OPCache | APCu | MemCache | |
Verwendungszweck | OPCache (Opcode Cache) ist ein PHP-interner Cache, der den kompilierten PHP-Code im Arbeitsspeicher speichert. Er zielt darauf ab, die Ausführungszeit von PHP-Skripten zu verkürzen, indem er den Bedarf an erneuter Kompilierung reduziert. | APCu: APCu ist ein PHP-interner Cache, der speziell für das Zwischenspeichern von PHP-Code und Daten innerhalb einer Anwendung entwickelt wurde. Er ist für Anwendungen gedacht, die auf einem einzigen Server laufen. | Memcache ist ein verteilter Cache-Speicher, der über das Netzwerk auf mehrere Server verteilt werden kann. Er wird oft verwendet, um häufig verwendete Daten wie Sitzungen oder Datenbankabfragen zwischen verschiedenen Servern zu teilen. |
Datenverwaltung | Speichert den kompilierten PHP-Code, was die Geschwindigkeit der Ausführung von PHP-Skripten erhöht. | APCu speichert Daten im Arbeitsspeicher des Servers, wodurch der Zugriff schneller wird. Es ist gut für den schnellen Zugriff auf Daten innerhalb derselben Anwendung geeignet. | Memcache ist für die schnelle Verteilung von Daten zwischen verschiedenen Servern optimiert. Er bietet eine größere Skalierbarkeit und eignet sich gut für Anwendungen mit mehreren Servern. |
Anwendungsbereiche | Wird verwendet, um die Ausführung von PHP-Code zu beschleunigen, indem der bereits kompilierte Code im Arbeitsspeicher gespeichert wird. | Geeignet für Anwendungen, die auf einem einzelnen Server laufen und den PHP-Code und spezifische Anwendungsdaten zwischenspeichern möchten. | Geeignet für Anwendungen mit hoher Last und/oder mehreren Servern, die Daten über das Netzwerk verteilen müssen. |
Integration | Ist ein Teil des PHP-Kerns und wird standardmäßig in modernen PHP-Versionen aktiviert. | Ist eine PHP-interne Cache-Erweiterung und erfordert keine separate Cache-Server-Installation. Es ist spezifisch für PHP-Anwendungen. | Ist ein eigenständiger Cache-Server und erfordert eine separate Installation und Konfiguration. Er kann von verschiedenen Anwendungen und Programmiersprachen genutzt werden. |
Installation | sudo apt install php-opcache | sudo apt install php-ACPu | sudo apt install php-memcache |
Danach wird der Apache Webserver und PHP-fpm neu gestartet:
1 |
sudo systemctl restart apache2 php8.2-fpm |
Installation der SSL Software Certbot
Die Verwaltung von SSL Zertifikaten übernimmt der LetsEncrypt Certbot mit Hilfe des Apache Plugins.
1 |
sudo apt install python3-certbot-apache certbot |
Konfiguration Apache Webserver
Die grundlegende Apache Konfiguration wird in der Datei /etc/apache2/apache2.conf
vorgenommen. Um alle .htaccess Datein im Verzeichnis /var/www/ zu berücksichtigen, muss folgender Eintrag geändert oder ergänzt werden:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> |
=> |
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> |
ACHTUNG! Diese Konfiguration erteilt sämtlichen Verzeichnisssen innerhalb des Webserver DCROOT /var/www/… alle Rechte
Aus diesem Grund sollte die Konfiguration der entsprechen Webseite direkt in der Apachekonfiguration (/etc/apache/apache.conf) oder in der entsprechen Websitekonfiguration (etc/apache2/sites-available/<websitename>.conf) eingrtagen werden:
<Directory /var/www/nextcloud/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> |
Damit die Nextcloud Dateien (/var/www/nextcloud) mit dem Apache Webserver verarbeitet werden können, muss hierzu eine Apache Konfigurationsdatei erstellt werden. Die Konfigurationsdateien für Webseiten befinden sich im Verzeichnis /etc/apache/sites-available. Innerhalb dieses Verzeichnisses wird dann die Nextcloud Webseiten Konfiguration (/etc/apache2/sites-available/nextcloud.conf) mit folgendem Inhalt erstellt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Alias /nextcloud "/var/www/nextcloud/" <Directory /var/www/nextcloud/> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000;$" </IfModule> </Directory> ## use php 8.2 // not used for debian 12 - default is php8.2 #<FilesMatch \.php$> ## For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server #SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost" #</FilesMatch> |
Um HTTP/2 zu aktivieren, muss die /etc/apache2/apache2.conf
Datei um folgende Zeile ergänzt werden:
1 |
Protocols h2 h2c http/1.1 |
Damit ist die Apache Konfiguration abgeschlossen.
Konfiguration Nextcloud (config.php)
Die Konfiguration von Nextcloud selbst wird über die Datei /var/www/nextcloud/config/config.php festgelegt. Ist die Datei nicht vorhanden (Neuinstallation) kann mittels Kopieren der vorkonfigurieten config.sample.php (/var/www/nextcloud/config/config.sample.php) die config.php erstellt werden. Folgende Änderungen sollten an der vorkonfigurieten config.php vorgenommen werden
-
- Datenbankkonfiguration
123'dbname' => '<Datenbankname>','dbuser' => '<Datenbank Benutzer>','dbpassword' => '<Datenbank PAsswort>', - Zugriff konfigurieren
12345'trusted_domains' =>array (0 => '<IP Nummer>',1 => '<Nextcloud/Server URL>',), - Cache aktivieren ( APCu )
1'memcache.local' => '\OC\Memcache\APCu',
12Options +FollowSymlinksAllowOverride All
- Datenbankkonfiguration
Konfiguration Nextcloud (.htaccess)
Ergänzende Konfigurationsparameter von Nextcloud für den Apache Webserver werden in der .htaccess-Datei festgelegt (/var/www/nextcloud/.htaccess). Die meisten dieser Konfigurationsparameter sind auch über die oben genannten Apache-Konfigurationen (/etc/apache2/apache2.conf oder /etc/apache2/sites-available/<websitedir>) realisierbar. Allerdings befinden sich in der .htaccess teils installationsspezifische Parameter, die nur für die Nextcloud-Installation relevant sind und daher nicht allgemein in die Apache-Konfiguration integriert werden sollten. Die .htaccess Datei einer Nextcloudinstallation (29.0.7) im DCROOT des Webservers (/var/www/nextcloud) sieht wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
<IfModule mod_headers.c> <IfModule mod_setenvif.c> <IfModule mod_fcgid.c> SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1 RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION </IfModule> <IfModule mod_proxy_fcgi.c> SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1 </IfModule> <IfModule mod_lsapi.c> SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1 RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION </IfModule> </IfModule> <IfModule mod_env.c> # Add security and privacy related headers # Avoid doubled headers by unsetting headers in "onsuccess" table, # then add headers to "always" table: https://github.com/nextcloud/server/pull/19002 Header onsuccess unset Referrer-Policy Header always set Referrer-Policy "no-referrer" Header onsuccess unset X-Content-Type-Options Header always set X-Content-Type-Options "nosniff" Header onsuccess unset X-Frame-Options Header always set X-Frame-Options "SAMEORIGIN" Header onsuccess unset X-Permitted-Cross-Domain-Policies Header always set X-Permitted-Cross-Domain-Policies "none" Header onsuccess unset X-Robots-Tag Header always set X-Robots-Tag "noindex, nofollow" Header onsuccess unset X-XSS-Protection Header always set X-XSS-Protection "1; mode=block" SetEnv modHeadersAvailable true </IfModule> # Add cache control for static resources <FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite)$"> <If "%{QUERY_STRING} =~ /(^|&)v=/"> Header set Cache-Control "max-age=15778463, immutable" </If> <Else> Header set Cache-Control "max-age=15778463" </Else> </FilesMatch> # Let browsers cache WOFF files for a week <FilesMatch "\.woff2?$"> Header set Cache-Control "max-age=604800" </FilesMatch> </IfModule> <IfModule mod_php.c> php_value mbstring.func_overload 0 php_value default_charset 'UTF-8' php_value output_buffering 0 <IfModule mod_env.c> SetEnv htaccessWorking true </IfModule> </IfModule> <IfModule mod_mime.c> AddType image/svg+xml svg svgz AddType application/wasm wasm AddEncoding gzip svgz # Serve ESM javascript files (.mjs) with correct mime type AddType text/javascript js mjs </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php index.html </IfModule> <IfModule pagespeed_module> ModPagespeed Off </IfModule> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} DavClnt RewriteRule ^$ /remote.php/webdav/ [L,R=302] RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L] RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L] RewriteRule ^remote/(.*) remote.php [QSA,L] RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L] RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L] RewriteRule ^ocm-provider/?$ index.php [QSA,L] RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L] </IfModule> # Clients like xDavv5 on Android, or Cyberduck, use chunked requests. # When FastCGI or FPM is used with apache, requests arrive to Nextcloud without any content. # This leads to the creation of empty files. # The following directive will force the problematic requests to be buffered before being forwarded to Nextcloud. # This way, the "Transfer-Encoding" header is removed, the "Content-Length" header is set, and the request content is proxied to Nextcloud. # Here are more information about the issue: # - https://docs.cyberduck.io/mountainduck/issues/fastcgi/ # - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav <IfModule mod_setenvif.c> SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1 </IfModule> AddDefaultCharset utf-8 Options -Indexes #### DO NOT CHANGE ANYTHING ABOVE THIS LINE #### ErrorDocument 403 /mycloud/index.php/error/403 ErrorDocument 404 /mycloud/index.php/error/404 |
Der Codeblock „<IfModule mod_rewrite.c>“ ist dabei relevant für Umleitungen von CardDav, WebDav, WebFinger u.a. auf den korrekten Endpunkt bei Installationen außerhalb des Webserver Dcroot.
Konfiguration für DCROOT Installation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} DavClnt RewriteRule ^$ /remote.php/webdav/ [L,R=302] RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # DCROOT installation /var/www/ RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L] RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L] RewriteRule ^remote/(.*) remote.php [QSA,L] RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L] RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L] RewriteRule ^ocm-provider/?$ index.php [QSA,L] RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L] </IfModule> |
Konfiguration für Installation in Unterverzeichnis DCROOT/nextcloud:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} DavClnt RewriteRule ^$ /remote.php/webdav/ [L,R=302] RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Subfolder installation /var/www/nextcloud RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L] RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L] RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L] RewriteRule ^remote/(.*) /nextcloud/remote.php [QSA,L] RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L] RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L] RewriteRule ^ocm-provider/?$ index.php [QSA,L] RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L] </IfModule> |
Konfiguration PHP Cache
Der Einsatz von Cache Systemen, wie beispielsweise ACPu oder MemCache, beschleunigt den Zugriff und die Leistung von Anwendungen. Im Gegensatz zu MemCache beschleunigt APCu auch Skriptausführungszeiten und bereits kompilirten PHP Code. Dies ermöglicht beispielsweise die Nutzung von APCu zur Steigerung der Ausführungsleistung, während gleichzeitig MemCache für die Zwischenspeicherung verwendet wird. ACPu ist auf lokale Ausführungen beschränkt, wodurch ACPu schneller ist als MemCache, aber dafür weniger skalierbar. Im Gegensatz zu MemCache geht bei einem System- oder Dienstneustart von ACPu der Cacheinhalt verloren.
https://speefak.spdns.de/oss_lifestyle/nextcloud-23-installation-auf-debian-11-server/Die PHP (v8.2) Konfiguration ist in der Datei /etc/php/8.2/fpm/php.ini
enthalten. Welche PHP Konfigurationsdatei aktuell geladen wurde, kann mit folgendem Befehl angezeigt werden:
1 |
php -i | grep "Loaded Configuration File" |
Auflistung aktivierter PHP Optionen:
1 |
cat $(php -i | grep "Loaded Configuration File" | cut -d">" -f2) | grep -v "^;\|^$" | sed 's/^\[/\n\[/g' |
PHP Caching für PHP 8.2 aktivieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
UsedPHPConfig=$(php -i | grep "Loaded Configuration File" | cut -d">" -f2) echo "write php config to => $UsedPHPConfig cat << EOF >> $UsedPHPConfig ; custom configuration ; PHP internal functions opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 ; PHP external functions max_execution_time = 300 max_input_time = 600 memory_limit = 512M upload_max_filesize = 10240M EOF |
APCu Cache aktivieren
1 2 3 4 5 6 7 8 9 |
UsedPHPConfig=$(php -i | grep "Loaded Configuration File" | cut -d">" -f2) echo "write php config to => $UsedPHPConfig cat << EOF >> $UsedPHPConfig ; PHP Cache aktivieren apc.enabled=1 EOF |
Danach wird der Apache Webserver und PHP-fpm neu gestartet:
1 2 3 4 5 |
sudo systemctl restart apache2 php8.2-fpm<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride <span style="color: #ff0000;">None</span> Require all granted </Directory> |
Infosource : docs.nextcloud.com | bobcares.com | addictedtocode.de
Konfiguration Datenbank
Nextcloud benötigt eine SQL Datenbank. Dazu wird ein Datenbenutzer ( nextcloud_user ) mit dem dazugehörigen Passwort ( password ) sowie die Datenbank ( nextcloud_db1 ) mit folgendem Befehl erstellt:
1 |
sudo mysql -e " create database nextcloud_db1; create user nextcloud_user1@localhost identified by 'password'; grant all privileges on nextcloud_db1.* to nextcloud_user1@localhost; flush privileges;" |
Wenn das Passwort Sonderzeichen enthält kann dies unter Umständen zu Fehlern führen: ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
Die Datenbank samt Benutzer und Passwort kann alternativ mit einem grafischen Werkzeug wie beispielsweise phpmyadmin erstellt werden.
Somit ist alles für die abschließende Einrichtung der Nextcloud Software eingerichtet und die finale Konfiguration kann nun über den Browser erfolgen. Ein Aufruf ( http://<URL/ServerIP>/nextcloud) der Server URL/IP gefolgt von dem in der Datei /etc/apache2/sites-available/nextcloud.conf definierten Apache Alias ( Alias /nextcloud „/var/www/nextcloud/“) verweist nun auf das Nextcloud Installations Interface/Webseite. Hier wird das Nextcloud Administrator Konto erstellt sowie der Datenbankzugriff konfiguriert und die Datenbank mit den Nextcloud spezifischen Daten erstellt.
Terminal Befehle
Nextcloud erfordert unter Umständen, wie z.B. dem Ausfall des Webinterfaces einige Terminaleingaben. Die wichtigsten sind im Folgenden gelistet:
- Installierte Nextcloud Version anzeigen:
1sudo -u www-data php /var/www/nextcloud/console.php config:system:get version - Datenverzeichnis aller oder eines User neu einlesen:
1sudo -u www-data php /var/www/nextcloud/console.php files:scan --all
1sudo -u www-data php /var/www/nextcloud/console.php files:scan Nutzername - Nextcloud update via Terminal:
1sudo -u www-data php /var/www/nextcloud/updater/updater.phar
1sudo -u www-data php /var/www/nextcloud/occ upgrade - .htaccess Datei aktualisieren / generieren
1sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess - Maintenance Modus / Nextcloud-Online-Updater zurücksetzen
123sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on &&sudo -u www-data php /var/www/nextcloud/occ maintenance:repair &&sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Tipps und Tricks
-
- Systemfehlermeldung
12[ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').[ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
Lösung :
12ALTER TABLE mysql.column_stats MODIFY histogram longblob;ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'); - Zugriff auf das Hostdateisystem
Mit der „External storage support“ Erweiterung ist der Zugriff auf lokale oder entfernte Dateisysteme möglich. Für den lokalen Zugriff müssen jedoch die Rechte der entsprechenden Verzeichnisse korrekt gesetzt sein. Soll beispielsweise der Lese sowie Schreibzugriff auf das Verzeichnis /home/user/Archiv über das Nextcloud Webinterface gewährt werden, müssen Lese- und Schreibrechte auf das Verzeichniss für den Webserverbenutzer (www-data) ermöglicht werden:
1sudo chown -R www-data.www-data /home/user/Archiv
Um dem Benutzer <user> ebenfalls vollen Zugriff auf das Verzeichnis /home/user/Archiv zu gewähren, muss dieser der Gruppe www-data hinzugefügt werden
1sudo adduser user www-data
und Lese-, sowie Schreibrechte sämtlicher Verzeichnisse und Dateien innhalb von /home/user/Archiv für den Besitzer (www-data) und die Gruppe (www-data) gewährt werden
12sudo chmod -R 775 /home/user/Archiv # für Verzeichnisse und Dateiensudo chmod -R 664 /home/user/Archiv # für nicht auszuführende Dateien, sicherer als 775
ACHTUNG ! Vollzugriff des Webserverbenutzers auf Verzeichnisstrukuren außerhalb des Verzeichnisses /var/www können ein Sicherheitsrikio darstellen
- Nextcloud-Online-Updater zurücksetzenMit unter kann es passieren, dass ein Nextcloud Update nicht korrekt durchläuft und bei einem Schritt (step) hängen bleibt. Es gibt zwei Möglichkeiten den Updateprozesse zurückzusezten:
- Systemfehlermeldung
-
-
- 1. Shellbefehl: sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
- 2. den Ordner /var/www/nextcloud/updater-<various string> komplett löschen
- Kontakte im Adressbuch sind Schreibgeschützt: https://help.nextcloud.com/t/einen-kontakt-loschen-der-schreibgeschutzt-ist/102435/8
-
Fehlermeldungen
- Für deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können.
1sudo -u www-data php /var/www/nextcloud/occ config:system:set default_phone_region --value="DE" - Der Server hat keine konfigurierte Startzeit für das Wartungsfenster. Das bedeutet, dass ressourcenintensive tägliche Hintergrundaufgaben auch während deiner Hauptnutzungszeit ausgeführt werden. Wir empfehlen, das Wartungsfenster auf eine Zeit mit geringer Nutzung festzulegen, damit Benutzer weniger von der Belastung durch diese umfangreichen Aufgaben beeinträchtigt werden. Weitere Informationen findest du in der Dokumentation .
1sudo -u www-data php /var/www/nextcloud/occ config:system:set maintenance_window_start --type=integer --value=1 - Deine Remote-Adresse wurde als „77.181.221.9“ erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist. Weitere Informationen findest du in der Dokumentation.
123456789101112131415161718192021222324sudo mysql -u root -e "USE nextcloud; SELECT * FROM oc_bruteforce_attempts;"sudo mysql -u root -e "USE nextcloud; DELETE FROM oc_bruteforce_attempts WHERE ip = '77.181.221.9';"# Alternativmysql -u root -pMariaDB [(none)]> USE nextcloudMariaDB [nextcloud]> SELECT * FROM oc_bruteforce_attempts;+----+------------------------+------------+--------------+-----------------+----------+| id | action | occurred | ip | subnet | metadata |+----+------------------------+------------+--------------+-----------------+----------+| 3 | changePersonalPassword | 1729417930 | 77.181.221.9 | 77.181.221.9/32 | [] || 4 | changePersonalPassword | 1729417946 | 77.181.221.9 | 77.181.221.9/32 | [] || 5 | changePersonalPassword | 1729417948 | 77.181.221.9 | 77.181.221.9/32 | [] || 6 | changePersonalPassword | 1729417949 | 77.181.221.9 | 77.181.221.9/32 | [] || 7 | changePersonalPassword | 1729417949 | 77.181.221.9 | 77.181.221.9/32 | [] || 8 | changePersonalPassword | 1729417951 | 77.181.221.9 | 77.181.221.9/32 | [] || 9 | changePersonalPassword | 1729417952 | 77.181.221.9 | 77.181.221.9/32 | [] || 10 | changePersonalPassword | 1729418005 | 77.181.221.9 | 77.181.221.9/32 | [] |+----+------------------------+------------+--------------+-----------------+----------+8 rows in set (0,000 sec)MariaDB [nextcloud]> DELETE FROM oc_bruteforce_attempts WHERE ip = '77.181.221.9';MariaDB [nextcloud]> SELECT * FROM oc_bruteforce_attempts;MariaDB [nextcloud]> exit - …
Sonstiges
-
-
- Nextcloud Installations Skript: https://www.c-rieger.de/nextcloud-installation-mit-nur-einem-skript-zero-sh/
- Externe Datenverzeichnisse in nextcloud automatisch einlesen: https://decatec.de/home-server/nextcloud-direkter-zugriff-auf-dateien-ueber-das-dateisystem/
- Nextcloud v21 PHP8 nachrüsten: https://www.c-rieger.de/nextcloud-21-mit-php-8-0-nachruesten/
- Nextcloud v21 installieren und updaten: https://www.c-rieger.de/manuelles-nextcloud-upgrade/
-
PHP Version für nextcloud festlegen
Um Nextcloud mit einer abweichenden PHP Version als der auf dem Server voreingestellen Version zu nutzen, kann die PHP Version in der entsprechenden Apache Konfiguration ( z.b /etc/apache2/sites-available/website.conf ) festgelegt werden. Dazu wird folgender Absatz für die Nutzung von PHP 8.2 in Apachekonfigurationsdatei ( etc/apache2/sites-available/nextcloud.conf ) hinzugefügt:
1 2 3 4 |
<FilesMatch \.php$> # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost" </FilesMatch> |
by Speefak | www.markus-blog.de | docs.nextcloud.com | www.c-rieger.de | www.digitalocean.com | www.howtoforge.de | PHP-FPM Calculator