Nextcloud Hub II (v24) installieren - only CloudPanel v1
-
- CloudPanel v1
-
Foxly -
15. März 2024 um 09:45 -
0 Kommentare -
9.335 Mal gelesen
- Was ist Nextcloud?
- Installation
Was ist Nextcloud?
Nextcloud ist eine freie Software für das Speichern von Daten (Filehosting) auf einem eigenen Server. Bei Einsatz eines Clients wird der Server automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern, aber auch über eine Weboberfläche, auf einen konsistenten Datenbestand zugegriffen werden. Im Gegensatz zu kommerziellen Speicherdiensten wie Dropbox oder OneDrive kann Nextcloud auf einem privaten Server oder Webspace ohne Zusatzkosten installiert werden. Dadurch behält man die vollständige Kontrolle über seine Daten und die Bedenken gegenüber einem Datenmissbrauch werden minimiert.
Update 06.07.2021 - Major Release Nextcloud 22
Update 16.09.2021 - Fehler in der vHost korrigiert.
Update 01.12.2021 - Major Release Nextcloud 23
Update 05.05.2022 - Major Release Nextcloud 24
Installation
Subdomain erstellen & Vorbereitungen treffen
In CloudPanel unter Domains -> Domain hinzufügen, erstellen Sie eine Subdomain (cloud.example.com).
Damit die Subddomain auch erreichbar ist, denken Sie bitte an die korrekten DNS-Records.
Webinstaller / Archiv hochladen
Jetzt laden Sie die Datei setup-nextcloud.php via FTP/SFTP in das Root Verzeichnis der Domain hoch. Diese erhalten Sie entweder auf der Herstellerseite oder hier in der Download Sektion.
[box='82','none']Nextcloud Downloads[/box]
Datenbank erstellen
Erstellen Sie im Reiter Datenbanken mit der Auswahl Datenbank hinzufügen eine Datenbank. Im darauffolgenden Fenster geben Sie einen Datenbanknamen sowie Benutzer und ein Passwort für die Datenbank ein.
PHP-Einstellungen
In den PHP-Einstellungen der Subdomain müssen noch einige Einstellungen getätigt werden, damit ein Fehlerfreier Betrieb stattfinden kann. Dazu rufen Sie die Subdomain auf und gehen zu den PHP-Einstellungen.
Nextcloud benötigt min. 128MB Arbeitsspeicher, empfohlen wird 512MB. Deshalb passen Sie das memory_limit entsprechend an.
PHP-FPM Pools
Um die PHP-FPM Pools anzupassen, können wir der Dokumentation von CloudPanel.io folgen: Domains | CloudPanel CE | Documentation
Ausrechnen der pm.max_children (Durchschnittswert):
ps --no-headers -o "rss,cmd" -C php-fpm7.4 | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'
Formel:
max_children = freier Arbeitsspeicher VPS / Arbeitsspeicher pro Prozess
Beispiel:
VPS mit 48 GB (49152 MB) Arbeitsspeicher | Durchschnittswert = 50 MB
max_children = 49152 / 50 = 983.04 (~983)
Somit wäre der optimale wert für diesen Server 983. Aber bitte, übernehmen Sie diesen Wert nicht Blind. Testen Sie Ihre Konfiguration!
Eine Alternative wäre auch diesen Rechner dafür zu nehmen: PHP-FPM Process Caluculator
Als Zusätzliche Konfigurationsanweisung fügen wir folgenden Code hinzu:
[php-fpm-pool-settings]
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
env[PATH] herausfinden:
- über die CLI können Sie mit dem Befehl env oder printenv herausfinden welcher Pfad der richtige ist.
Vhost Einstellung
In der Übersicht der Subdomain, gehen Sie in die Vhost Einstellungen. Kopieren Sie die komplette Konfiguration, die Sie hier darunter sehen und ersetzten Sie Ihre Vhost.
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
{{server_name}}
{{root}}
{{nginx_access_log}}
{{nginx_error_log}}
if ($bad_bot = 1) {
return 403;
}
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
location ^~ /.well-known {
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
return 301 /index.php$request_uri;
}
# App Client-Push
# location /push/ {
# proxy_pass http://localhost:7867/;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection "Upgrade";
# proxy_set_header Host $host;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }
{{basic_auth}}
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location / {
rewrite ^ /index.php;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
try_files $uri $uri/ /index.php?$args;
index index.php index.html;
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param front_controller_active true;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_param HTTPS $fastcgi_https;
{{php_fpm_listener}}
{{php_settings}}
}
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;
# Optional: Don't log access to other assets
access_log off;
}
if (-f $request_filename) {
break;
}
}
Alles anzeigen
Lesen Sie sich die auskommentierten Felder durch ggf. ergänzen Sie die Einstellungen.
Webinstaller ausführen & Nextcloud installieren
Nun können Sie die Datei setup-nextcloud.php mit Ihrem Browser öffnen, indem Sie Ihre zuvor erstellte Subdomain aufrufen. z. B. https://nextcloud.domain.tld/setup-nextcloud.php
Haben Sie die Adresse aufgerufen, folgen Sie dem Assistenten und halten Sie die Zugangsdaten der Datenbank bereit.
Nun muss die config.php von Nextcloud angepasst werden. Hierfür öffnen Sie in Ihrem FTP/SFTP oder via SSH die config/config.php und ergänzen Sie die Eintragung mit:
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
),
Nun nutzt die Nextcloud Instanz, Redis als Memory cache.
Um die Standardtelefonregion hinzuzufügen, muss ein extra Eintrag in der config.php hinzugefügt werden
'default_phone_region' => 'DE',
In der Verwaltungsübersicht sollten alle Überprüfungen bestanden sein.
Cronjob anlegen & Nextcloud Einstellungen anpassen.
In der Dashboard Übersicht können Sie unter dem Reiter Cron Jobs einen Cron hinzufügen. Fügen Sie einen neuen Cron Job hinzu und geben als Adresse ihre Nextcloud Instanz mit dem zusatz zur Cron.php an. Im Bild sehen Sie ein Beispiel hierfür.
Anschließend wird alle fünf Minuten der Cronjob ausgeführt. Kehren Sie in die Nextcloud Verwaltung zurück und gehen Sie auf Grundeinstellungen hier wählen Sie als Hintergrund-Aufgabe Cron aus.
Nun ist Ihre Cloud fertig eingerichtet.
Dokumentationen:
Server tuning — Nextcloud latest Administration Manual latest documentation
Installation on Linux — Nextcloud latest Administration Manual latest documentation
Nginx configuration — Nextcloud latest Administration Manual latest documentation
- Nextcloud
- Nextcloud Hub
- How to install
- installieren
- Nginx
- Nextcloud 22
- CloudPanel.io
- PHP 8
- Nextcloud 23
Über den Autor
Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.
Kommentare
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.