Vorab: Das Tutorial setzt auf eine sehr abgesicherte Cloudlösung. Wer bestimmte Sicherheiteinstellungen so nicht übernehmen möchte oder es anders implementieren möchte, sollte sich im klaren sein, dass seine Daten eventuell öffentlich zugänglich in der Cloud liegen.
Als Grundlage hierfür gehe ich von einem Apache2 Webserver mit php7.2, einer Mysql/MariaDB Datenbank und dem passenden mysql Connector aus. Wenn noch nicht vorhanden, dann den Server auf den aktuellen Stand bringen und wie folgt installieren:
apt update
apt upgrade
apt install apache2 libapache2-mod-php7.2 mysql-server php7.2-mysql
Nun richten wir für unsere Cloud ein Verzeichnis auf dem Server ein, laden uns die neuste Version der Nextcloud und sichern diese mit den passenden Rechten ab. Ich verwende hier gerne den /srv Pfad:
cd /srv
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.zip #Bitte nach aktuellem Pfad suchen https://nextcloud.com/install/
unzip nextcloud-15.0.0.zip
rm nextcloud-15.0.0.zip
chown -R www-data:www-data ./nextcloud
chmod -R 770 ./nextcloud
Nun geht es daran, dem Apache mitzuteilen, dass dieser auch auf /srv oder wer will nur auf /srv/nextcloud zugreifen darf.
Hierzu wird die Datei /etc/apache2/apache2.conf bearbeitet. Standardmäßig gibt es bereits den benötigten Eintrag in dieser Datei und muss daher nur noch einkommentiert und leicht angepasst werden:
<Directory /srv/nextcloud>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Nun müssen wir Apache nur noch mitteilen, was zutun ist, wenn jemand auf unsere Cloud zugreifen will.
Hierzu gibt es zwei unterscheidungen. Daher nur bei einem der Punkt weitermachen. Was ich als zwingen notwendig erachte ist, dass die Cloud nur verschlüsselt erreichbar ist. Daher wird nur das gezeigt.
1. Keine Domäne vorhanden
Da keine Domäne vorhanden ist, können wir nicht per Subdomäne die Cloud zur Verfügung stellen. Daher wird nur die Seite zur Verfügung gestellt. Man könnte aber über andere Ports mehrere Seiten zur Verfügung stellen. Hierzu muss aber der entsprechende Port noch in der Apache Konfiguration bekannt gemacht werden. Ich gehe aber davon aus, dass der Apache sonst nichts eingertichtet ist und bisher keine Anpassungen gemacht wurden!
Als erstes muss ein selbstausgestelltes Zertifikat ausgestellt werden: Zum Tutorial
Nun leeren wir die Datei /etc/apache2/sites-available/000-default.conf und fügen folgenden Inhalt ein:
<VirtualHost *:80>
DocumentRoot "/srv/nextcloud"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/srv/nextcloud"
SSLEngine on
SSLCertificateFile <path>/server.crt
SSLCertificateChainFile <path>/server.csr
SSLCertificateKeyFile <path>/server.key
</VirtualHost>
</IfModule>
2. Eine Domäne ist vorhanden
Zuerst erstellen wir für unsere Cloud eine neue Konfigurationsdatei für den Apache Server z.B. /etc/apache2/sites-available/nextcloud.conf und fügen dort folgenden einfachen Inhalt ein:
<VirtualHost *:80>
ServerName nextcloud.domainname.de
DocumentRoot "/srv/nextcloud"
</VirtualHost>
Nun erstellen wir uns für unsere Domäne und der gewünschten Subdomäne bei Let’s Encrypt ein Zertifikat und lassen den Apache automatisch konfigurieren: Tutorial folgt noch
Hier geht es dann wieder für alle weiter
Nun aktivieren wir noch die benötigent Module wie folgt und aktivieren die neue Konfiguration:
a2enmod ssl rewrite
service apache2 restart
Bevor es nun auf der Website selber weiter geht muss noch kurz eine neue Datenbank angelegt werden und am Besten noch ein seperater Benutzer der nur auf diese Datenbank zugreifen darf. Tutorial folgt vielleicht
Die restliche Konfiguration wird nun auf der Website durchgeführt. Die benötigten Angaben sind selbstsprechend. Hierzu wird meiner Meinung nach kein Tutorial benötigt.