Nextcloud 21 mit nur einem Skript installieren v. 3.0

Nextcloud 21 und PHP 8.0
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.9+ AMD64 oder ein frisches/neues Ubuntu 20.04.2+ AMD64 System
* ein Benutzer mit sudo-Berechtigungen

Letzte Aktualisierung: Samstag, 10. April 2021
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.9.x: Net ISO Installation - Standardsystemwerkzeuge u. SSH werden vorausgesetzt (s. Bild zuvor)

Nur Debian Server:

su -
apt install -y sudo
usermod -aG sudo <IhrAktuellerBenutzer>
exit
exit

Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:

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 -y bzip2 wget
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 -y unzip && unzip install.zip

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. Sie werden im Lauf der Installation nach folgenden Daten gefragt:

MariaDB:
- Enter current password for root (enter for none): |ENTER|
- Switch to unix_socket authentication [Y/n]: <Y> + |ENTER|
- Change the root password? [Y/n]: <Y> + |ENTER|
- New password: <Ihr MariaDB-Root Passwort> + |ENTER|
- Re-enter new password: <Ihr MariaDB-Root Passwort> + |ENTER|
- Remove anonymous users? [Y/n]: <Y> + |ENTER|
- Disallow root login remotely? [Y/n]: <Y> + |ENTER|
- Remove test database and access to it? [Y/n]: <Y> + |ENTER|
- Reload privilege tables now? [Y/n]: <Y> + |ENTER|
Nextcloud:
- Enter your Nextcloud Administrator: <Name des Nextcloud Administrator> + |ENTER|
- Enter your Nextcloud Administrator password: <Passwort des Nextcloud Administrator> + |ENTER|
- Enter your absolute Nextcloud datapath (/your/path): </absoluter Pfad/zum/Datenverzeichnis> + |ENTER|
SSH:
- Command may disrupt existing ssh connections. Proceed with operation (y|n)? <Y> + |ENTER|

bevor die Installation beendet und 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 die Let’s Encrypt – Zertifikatserstellung wechseln Sie in die Shell des technischen Benutzers acmeuser

su - acmeuser

und beantragen dann die SSL-Zertifikate. Ersetzen Sie dabei ihre.domain.de mit Ihrer „echten“ Domain :

acme.sh --issue -d ihre.domain.de --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 --reloadcmd "sudo /bin/systemctl reload nginx.service"
acme.sh --issue -d ihre.domain.de --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 --reloadcmd "sudo /bin/systemctl reload nginx.service"

Verlassen Sie die Shell des neuen Benutzers

exit

und und fügen die neue Domain in Ihrer Nextcloud hinzu. Ersetzen Sie ihre.domain.de mit Ihrer Domain:

sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=ihre.domain.de

Setzen Sie Ihre Domain als overwrite.cli.url. Ersetzen Sie dabei ihre.domain.de mit Ihrer Domain:

sudo -u www-data php /var/www/nextcloud/occ config:system:set overwrite.cli.url --value=https://ihre.domain.de

Legen Sie 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 – passen Sie ggf. das Datenverzeichnis im Skript an, sofern Sie nicht das exemplarische /daten Verzeichnis während der Skriptinstallation verwendet haben.

#!/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 /daten
chmod 0644 /var/www/nextcloud/.htaccess
chmod 0644 /var/www/nextcloud/.user.ini
exit 0

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

Über einen automatisch angelegten Cronjob

crontab -l -u acmeuser

werden Ihre SSL-Zertifikate fortan regelmäßig und vollautomatisch erneuert. Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers. Ziel sollte mind. folgendes „A+“-Ergebnis:

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

© Carsten Rieger IT-Services