Kategorien
Linux Nextcloud Raspberry Pi Server

Nextcloud Installation auf Ubuntu 20.04

In dieser Anleitung erhältst du die komplette Befehl Abfolge zur Installation einer Nextcloud in Verbindung mit MariaDB und Apache Virtual Host auf Ubuntu 20.04.

## Dauerhafte Admin rechte als su(super user)
su

## Pakete aktualisieren
apt-get update

## Updates installieren
apt-get upgrade

## Installation Apache Webserver
apt install apache2

## Directory listing deaktivieren
sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

## Apache Dienst starten
systemctl start apache2.service

## Installation von MariaDB Server und Client
apt install mariadb-server mariadb-client

# Konfiguration des MariaDB Servers
mysql_secure_installation

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter <Hier kommt dein Passwort hin>
Re-enter new password: <Hier kommt dein Passwort hin>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

## MariaDB Server Dienst neustarten
systemctl restart mariadb.service

## Installation von PHP und Modulen
installing PHP 7.1

## Download Repository für PHP Module hinzufügen
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php

## Paketlisten updaten
apt update

## Finale Installation von PHP und dessen Modulen
apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

# PHP.ini config-file anpassen
nano /etc/php/7.2/apache2/php.ini

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 80M
date.timezone = Europe/Berlin

## Konfiguration SQL Datenbank


## Verbindung zur SQL Datenbank herstellen
mysql -u root -p

## Nextcloud Datenbank erstellen
CREATE DATABASE nextcloud;

## Datenbank Benutzer erstellen
CREATE USER 'ncusr'@'localhost' IDENTIFIED BY '<Hier kommt dein Passwort rein>';

## Datenbank Berechtigungen für den grade angelegten User anpassen
GRANT ALL ON nextcloud.* TO 'ncusr'@'localhost' IDENTIFIED BY '<Hier kommt dein Passwort rein>' WITH GRANT OPTION;

## Änderungen abspeichern und MariaDB Konsole verlassen
FLUSH PRIVILEGES;
EXIT;

## unzip installieren
apt-get install unzip

## Neuste Version von Nextcloud herunterladen
cd /tmp && wget 
<Neuster Nextcloud download link>
unzip nextcloud
mv nextcloud /var/www/nextcloud/

## Apache Virtual Host konfigurieren

## Konfigurationsdatei erstellen
nano /etc/apache2/sites-available/nextcloud.conf

## Inhalt der Datei habe ich euch unten angehangen.

## Nextcloud Website und Apache Module aktivieren und zu Schluss neu starten

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

systemctl restart apache2.service

## Datenspeicherort in das Homeverzeichnis verlagern und Rechte vergeben

cd /home
mkdir /home/data/
chown -R www-data:www-data /home/data/
chown -R www-data:www-data /var/www/nextcloud/
chmod -R 755 /var/www/nextcloud/


## IP Adresse oder Domain die im Virtual Host hinterlegt ist und auf den Server zeigt an surfen.

Auf der Website kannst du zuerst den Nutzernamen des Administrators bestimmen. Ich würde „admin“ empfehlen und über den Benutzer die Cloud administrieren und keinem User (Auch nicht dir selbst) Admin rechte geben. Dann kannst du dir ein Passwort für den Benutzer ausdenken. Beim Datenverzeichnis müssen wir den von uns im Home Verzeichnis erstellten Ordner „data“ hinterlegen. Also füllst du in das Feld: „/home/data/“. Bei den Datenbank Einstellungen musst du den Datenbank Namen, Benutzer Namen, Benutzer Passwort und die Datenbank location angegeben werden. Wenn du diese nach dieser Anleitung eingerichtet hast ist der Datenbank Name „nextcloud“, der Benutzername „ncusr“, Passwort musst du selber wissen und bei der Datenbank location kannst du localhost stehen lassen da sich die Datenbank auf den gleichen Server befindet. Nun kannst du die Konfiguration abschließen und es sollte alles laufen.

## Vorlage zur VirtualHost Konfiguration
## E-mail, ServerName und Server Alias müssen angepasst werden (entweder wird hier die Ip-Adresse oder die Domain eingetragen)

<VirtualHost *:80>
     ServerAdmin master@domain.com
     DocumentRoot /var/www/nextcloud/
     ServerName demo.domain.com
     ServerAlias www.demo.domain.com
 
     Alias /nextcloud "/var/www/nextcloud/"
 
     <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>
 
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>