Nextcloud 20 mit nur einem Skript installieren v. 2.1

Nextcloud 20 und PHP 7.4
mit nur einem Skript installieren

Mit nur einem Skript installieren Sie auch als „Newbie“ Ihre eigene Nextcloud!
Die Mindestvoraussetzungen für diese Skripte sind minimal:
* Ein frisches/neues Debian 10.5+ AMD64 oder ein frisches/neues Ubuntu 20.04.x+ AMD64 System
* ein Benutzer mit sudo-Berechtigungen

Letzte Aktualisierung: Mittwoch, 11. November 2020
Die ausführliche Aktualisierungshistorie finden Sie hier.

Die Installationsmedien für den zugrundeliegenden Linux-Server erhalten Sie hier:

Ubuntu 20.04.x LTS:
Server-Installation - SSH wird vorausgesetzt (s. Bild zuvor)
Debian 10.5.x: Net ISO Installation - Standardsystemwerkzeuge u. SSH werden vorausgesetzt (s. Bild zuvor)
su -
apt install -y sudo
usermod -aG sudo <aktueller benutzer>
exit
exit

Wechseln Sie mittels sudo zu Ihrem privilegierten Benutzer:

sudo -s

Laden Sie das Installationsskript nach /usr/local/src herunter:

cd /usr/local/src && apt install bzip2 wget -y
Debian:
wget https://it-services.c-rieger.de/s/QCzDbdip4qM388P/download -O install.zip
Ubuntu:
wget https://it-services.c-rieger.de/s/G26kaw2bSdqjQeg/download -O install.zip

und entpacken dort das Skript:

apt install unzip -y && unzip install.zip

HINWEIS:
Es darf kein Apache2- oder NGINX-Webserver, MariaDB-/MySQL-Server und kein PHP installiert sein.

Für das Skript gehe ich von einem neu installierten System aus, auf dem die aktuellen OS-Patches aber keine weitere Software installiert wurde.

Markieren Sie das Skript als „ausführbar“

chmod +x install.sh

und führen es dann zur Installation aus:

./install.sh

Das Logfile finden Sie unter /usr/local/src/install.log.

(1) Sie werden nach
– einem Nextcloud-Administratornamen (Your Nextcloud Administrator),
– dem dazugehörigen Passwort (Your Nextcloud Administrator password) und
– dem Datenpfad (Your Nextcloud datapath)
gefragt, bevor die Installation beendet und

(2) Ihnen eine Zusammenfassung dargestellt wird:


Optional: Einrichtung von SSL über Let’s Encrypt

Bitte stellen Sie zuerst sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.

Für das Zertifikatshandling erstellen wir dann einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu:

adduser --disabled-login acmeuser
usermod -a -G www-data acmeuser

Wechseln Sie in die Shell des neuen Benutzers um die Zertifikatssoftware zu installieren und verlassen diese Shell danach wieder:

su - acmeuser
curl https://get.acme.sh | sh
exit

Legen Sie drei Verzeichnisse mit den entsprechenden Berechtigungen an, um die neuen Zertifikate darin speichern zu können:

mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs
chmod -R 775 /var/www/letsencrypt /etc/letsencrypt && chown -R www-data:www-data /var/www/ /etc/letsencrypt

Wechseln Sie erneut in die Shell des neuen Benutzers

su - acmeuser

und requestieren (beantragen) die SSL-Zertifikate. Ersetzen Sie dabei your.dedyn.io mit Ihrer Domain :

acme.sh --issue -d your.dedyn.io --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem
acme.sh --issue -d your.dedyn.io --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem

Verlassen Sie die Shell des neuen Benutzers

exit

und legen sich dann ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert (permissions.sh):

nano /root/permissions.sh

Kopieren Sie alle Zeilen in die Datei:

#!/bin/bash
find /var/www/ -type f -print0 | xargs -0 chmod 0640
find /var/www/ -type d -print0 | xargs -0 chmod 0750
chmod -R 775 /var/www/letsencrypt /etc/letsencrypt 
chown -R www-data:www-data /var/www /etc/letsencrypt
chown -R www-data:www-data /var/nc_data
chmod 0644 /var/www/nextcloud/.htaccess
chmod 0644 /var/www/nextcloud/.user.ini
exit 0

Hinweis:
Bitte passen Sie ggf. das Datenverzeichnis im Skript an, sofern Sie nicht /var/nc_data verwendet haben.

Markieren Sie das Skript als ausführbar und führen es dann direkt aus:

chmod +x /root/permissions.sh
/root/permissions.sh

Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt:

sed -i '/ssl-cert-snakeoil/d' /etc/nginx/conf.d/nextcloud.conf
sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/nextcloud.conf
service nginx restart

Um die SSL-Zertifikatserneuerung vollständig zu automaisieren können Sie wie hier beschrieben vorgehen.

Glückwunsch, das war es schon! Über eine Spende würden sich meine Frau, meine Zwillinge und ich sehr freuen!

© Carsten Rieger IT-Services