Am 25.04 wurde das langersehnte Release von Nextcloud 16 veröffentlicht.
Da ich kein Update machen wollte, entschloß ich mich zu einer frischen Neuinstallation. Als Grundlage dient mir eine VM auf der QNAP TS-253B. Die Maschine hat 1 Kern, 1024MB RAM sowie 100GB Festplatte zugewiesen bekommen. Als OS kommt das bei mir beliebte Debian in Version 9.8 Stretch mit PHP 7.3 zum Einsatz.
Zuerst sollten wir die VM auf den neuesten Stand bringen. Zusätzlich den Webserver Apache2 sowie MariaDB für die Datenbank installieren und die Paketquellen für PHP 7.3 aufnehmen:
- apt update && apt dist-upgrade
- apt install ca-certificates apt-transport-https
- wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add –
- echo “deb https://packages.sury.org/php/ stretch main” | tee /etc/apt/sources.list.d/php.list
- apt install apache2 mariadb-server
- apt update && apt dist-upgrade
Benötigte Dienste aktivieren, einschalten, elementare Pakete und deren Abhängigkeiten installieren:
- systemctl start apache2
- systemctl enable apache2
- systemctl start mysql
- systemctl enable mariadb
- apt-get install php7.3 libapache2-mod-php php7.3-cgi php7.3-gd php7.3-zip wget unzip php7.3-cli php7.3-common php7.3-curl php7.3-mbstring php7.3-mysql php7.3-xml php-intl php7.3-apcu -y
Nach der ganzen Vorarbeit können wir uns nun Nextcloud zuwenden. Wir laden dazu Nextcloud herunter, entpacken es, verschieben die Dateien in das Verzeichnis des Webservers, und vergeben Rechte dafür.
- mysql -u root -p
- create database nextcloud;
- create user ‘nextcloud’@’localhost’ identified by ‘mypassword’;
- grant all privileges on nextcloud.* to ‘nextcloud’@’localhost’;
- flush privileges;
- \q
Eine Datenbank im Internet bietet immer eine Angriffsfläche, die – soweit es möglich ist – minimiert werden sollte. Dazu gehören eine ordentliche Konfiguration, starke Passwörter sowie regelmässige Updates. Für eine erste Grundkonfiguration liefert MySQL den Befehl mysql_secure_installation welcher leider in den wenigsten Anleitungen erwähnt wird. Die Anwendung ist einfach und sorgt dafür dass unnötige Testzugänge und zu lockere Rechte abgestellt werden. Diesen Befehl ausführen und im Idealfalle alles mit “y” beantworten. Als nächstes müssen wir eine Datenbank anlegen. Dazu melden wir uns an MySQL an, erstellen eine DB für Nextcloud und gewähren die notwendigen Rechte dafür.
- wget https://download.nextcloud.com/server/releases/nextcloud-16.0.0.zip
- unzip nextcloud-16.0.0.zip
- mv nextcloud /var/www/html/
- chown -R www-data:www-data /var/www/html/nextcloud
Zum Abschluß noch eine Konfigurationdatei erstellen, die Default-Seite deaktiveren, Webserver neu starten und fertig.
- nano /etc/apache2/sites-available/nextcloud.conf
In die Datei kommt der Inhalt:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot "/var/www/html/nextcloud"
ServerName 10.1.1.41
<Directory "/var/www/html/nextcloud/">
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>
- a2dissite 000-default
- a2ensite nextcloud
- systemctl restart apache2
Die IP der VM im Browser aufrufen, Anmeldedaten festlegen, Datenbankuser sowie Passwort eintippen.
Das Thema Bereinigen der Einrichtungswarnungen hat Karsten in seinem Blog bereits behandelt. Siehe http://www.kussaw.de/2019/04/nextcloud-16-gelandet/ und http://www.kussaw.de/2019/04/nextcloud-15-0-7-und-fehlermeldungen/. Auch ich habe bereits darüber geschrieben. Siehe Artikel https://gander.in/update-zu-nextcloud/