Nextcloud 19 mit nur einem Skript installieren

Nextcloud 19 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:
* Debian 10.4+ AMD64, Ubuntu 20.04+ AMD64
* ein Benutzer mit sudo-Berechtigungen

Letzte Aktualisierung: Sa., 27. Juni 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.4.x: Net ISO Installation - Standardsystemwerkzeuge u. SSH werden vorausgesetzt (s. Bild zuvor)
su -
apt install -y sudo
usermod -aG sudo <aktueller benutzer>
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 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/kX56nntHoWWoPps/download -O install.zip

und entpacken dort das Skript:

apt install unzip -y && unzip install.zip

Markieren Sie das Skript als „ausführbar“

chmod +x install.sh

und führen es dann zur Installation aus:

./install.sh

(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 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/ssl.conf
sed -i s/\#\ssl/\ssl/g /etc/nginx/ssl.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

Carsten Rieger

Carsten Rieger ist ein angestellter Senior IT-Systemengineer und zudem auch als Kleinunternehmer (Freelancer) aktiv. Er arbeitet seit mehr als 15 Jahren im Linux- und Microsoftumfeld, ist ein Open Source Enthusiast und hoch motiviert, Linux Installationen und Troubleshooting durchzuführen. Dabei arbeitet er vorrangig mit Debian und Ubuntu Linux, Nginx und Apache Webservern, MariaDB/MySQL/PostgreSQL, PHP, Cloud Infrastrukturen (bspw. Nextcloud) und auch vielen anderen Open Source Projekten (bspw. Roundcube). Zudem engagiert er sich ehrenamtlich für die Dr. Michael & Angela Jacobi Stiftung - und das schon seit mehr als 7 Jahren.