NextcloudVPS

Installation Nextcloud 12 auf Ubuntu 16.04 LTS

Heute installieren wir Nextcloud auf einem vorhandenen Ubuntu-Server 16.04.

Vorbereitung Server

Sollten wir noch keine LAMP Installation durchgeführt haben, können wir das ziemlich schnell mit dem folgenden Befehl auf der Shell nachholen:

sudo apt-get install lamp-server^

Bevor wir loslegen aktualisieren wir den Server noch einmal auf den aktuellsten Stand:

sudo apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade

und sichern die mysql-Installation ab:

sudo mysql_secure_installation

Nun installieren wir noch ein paar Pakete, die später benötigt werden.

sudo apt-get -y install libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip php-dompdf php-apcu redis-server php-redis unzip nano

Danach laden wir uns die aktuellste 12er-Version von Nextcloud herunter:

wget https://download.nextcloud.com/server/releases/latest-12.zip

und entpacken diese:

unzip latest-12.zip

Im Anschluß verschieben wir den entpackten Ordner an die richtige Stelle. Wenn wir nur Nextcloud auf diesem Server bereitstellen wollen, können wir die Daten in den Ordner /var/www/html/ verschieben und die Berechtigungen anpassen.

sudo mv nextcloud/* /var/www/html/
sudo chown -R www-data:www-data /var/www/html/

Um uns die Option weiterer Webseiten offen zu halten, verschieben wir den gesammten Ordner in den Pfad /var/www/html/

sudo mv nextcloud/ /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud

 

Datenbank anlegen

sudo mysql -u root -p
create database nextcloud;
create user nextcloud@localhost identified by 'DEIN_PASSWORT';
grant all privileges on nextcloud.* to nextcloud@localhost;
flush privileges;
exit;

 

Webserver vorbereiten

Wir müssen einige Module im Apache aktivieren und den Webserver neu starten:

sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2

und müssen einen Apache-vhost anlegen, dazu kopieren wir die default-vhost Konfiguration in eine neue Datei und bearbeiten diese:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-nextcloud.conf
sudo nano /etc/apache2/sites-available/001-nextcloud.conf

Ergebnis:

danach aktivieren wir die Site:

sudo a2ensite 001-nextcloud.conf
sudo systemctl restart apache2

Da wir die Site natürlich über https erreichen wollen, erstellen wir uns ein LetEncrypt-Zertifikat. Am einfachsten funktioniert das mit Certbot:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache
sudo certbot --apache

 

Sollte Euch die folgende Fehlermeldung präsentiert werden:

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA

Dann startet den Zertifikats-Prozess mit:

sudo certbot --authenticator standalone --installer apache -d nextcloud.deine-domain.tld --pre-hook "service apache2 stop" --post-hook "service apache2 start"

Bei der letzten Abfrage bestätigen wir mit „2“, dass ein redirect erfolgen soll.
Certbot legt dann eine zweite vhost-Konfigurationsdatei an, die wir dann noch einmal bearbeiten:

sudo nano /etc/apache2/sites-available/001-nextcloud-le-ssl.conf

und fügen dort die folgenden Zeilen ein:

Header always set Strict-Transport-Security "max-age=15768000; preload; includeSubDomains"

dann starten wir den Webserver neu:

sudo systemctl restart apache2

 

Installation Nextcloud

Nun rufen wir unsere Domain im Browser auf:

und tragen die entsprechenden Daten ein.

Nacharbeiten

 

Unter Verwaltung werden jetzt ein paar Warnungen angezeigt.

Um diese wegzubekommen müssen wir noch etwas tun.

Als erstes bearbeiten wir die php.ini:

sudo nano /etc/php/7.0/apache2/php.ini

und fügen den folgenden Code ein:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

danach nehmen wir uns die config.php von Nextcloud vor, um den Cache zu konfigurieren und das Datenverzeichnis anzupassen:

sudo nano /var/www/html/nextcloud/config/config.php

den folgenden Code einfügen:

'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),

für den ersten Fehler bearbeiten wir die apache2.conf:

sudo nano /etc/apache2/apache2.conf

und ändern den folgenden Code:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

zu

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Die Hintergrund-Aufgaben ändern wir noch auf cron:

und konfigurieren den Cron-Job des Users www-data:

sudo crontab -u www-data -e

dort die Zeile einfügen:

*/15 * * * * php -f /var/www/html/nextcloud/cron.php

Zum Schluß noch ein:

sudo systemctl restart apache2

Jetzt ist alles abgeschlossen und wir können unsere Nextcloud sicher nutzen! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.