Nextcloud ist eine leistungsstarke Open-Source-Plattform für die Dateisynchronisation und -freigabe sowie für die Zusammenarbeit und den Zugriff auf Dateien über das Internet. Mit Nextcloud kannst du deine eigenen privaten Cloud-Services auf einem eigenen Server oder einer Cloud-Infrastruktur betreiben. Es ermöglicht dir, Dateien zu speichern, zu organisieren und von überall auf der Welt darauf zuzugreifen.
Nextcloud bietet eine Vielzahl von Funktionen, die es zu einer flexiblen Lösung für die Dateiverwaltung machen. Du kannst Dateien und Ordner freigeben, Kalender und Kontakte verwalten, Dokumente bearbeiten, Notizen erstellen und vieles mehr. Es verfügt auch über eine benutzerfreundliche Web-Oberfläche und unterstützt eine breite Palette von Desktop- und mobilen Geräten.
Eine der großen Vorteile von Nextcloud ist die hohe Sicherheit und Datenschutz. Du behältst die volle Kontrolle über deine Daten, da sie auf deinem eigenen Server oder der von dir gewählten Infrastruktur gespeichert werden. Du kannst auch zusätzliche Sicherheitsmaßnahmen wie die Zwei-Faktor-Authentifizierung und die Verschlüsselung deiner Daten implementieren.
Die Installation von Nextcloud auf einem Ubuntu Server ist vergleichsweise einfach und ermöglicht es dir, die Vorteile dieser leistungsstarken Plattform zu nutzen. In diesem Blogbeitrag zeige ich dir wie man Nextcloud auf einem Ubuntu 22.02 installiert. Für die Installation ist es wichtig, dass du root-Rechte auf dem Ubuntu-System besitzt.
Überprüfe vor der Installation die Hardwarevoraussetzungen von NextCloud:
Hardwarevoraussetzungen prüfen
Aktualisierung des Systems
Wir starten auf unserem Linux Ubuntu 22.04. Die Aktualisierung deines Ubuntu 22.04-Systems ist ein wichtiger erster Schritt vor der Installation von Nextcloud. Durch das Aktualisieren der Paketlisten und das Durchführen des Upgrades stellst du sicher, dass du die neuesten Softwareversionen und Sicherheitsverbesserungen erhältst. Dies ist entscheidend, um eine stabile und sichere Nextcloud-Umgebung zu gewährleisten.
Ubuntu aktualisieren und upgraden: So geht’s einfach und schnell
Installation der erforderlichen Pakete
Nachdem wir unser Ubuntu 22.04 aktualisiert haben, können wir nun mit der eigentlichen Installation von Nextcloud fortfahren. Die Installation der erforderlichen Pakete ist der nächste Schritt. Befolge die nachstehenden Anweisungen, um fortzufahren:
Installation Apache2
Öffne ein Terminalfenster und führe den folgenden Befehl aus, um den Apache-Webserver zu installieren
sudo apt install apache2
Der Apache-Webserver ist eine bewährte und leistungsstarke Lösung für den Hosting von Websites und Webanwendungen. Nextcloud benötigt den Apache-Webserver, um Dateien über das Internet bereitzustellen und den Zugriff auf die Cloud-Plattform zu ermöglichen.
Installation & Konfiguration MariaDB
Installiere die Datenbankkomponente MySQL/MariaDB, die von Nextcloud zur Speicherung von Benutzerdaten, Einstellungen und Metadaten verwendet wird. Führe dazu den folgenden Befehl aus:
sudo apt install mariadb-server
Nach der Installation solltest du den MariaDB-Dienst starten und sicherstellen, dass er beim Systemstart automatisch gestartet wird. Führe die folgenden Befehle aus:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Nachdem der Dienst gestartet wurde, führe die Grundkonfiguration der MariaDB aus. Gebe Hierfür folgenden Befehl ein:
sudo mysql_secure_installation
Der Assistent führt dich durch verschiedene Schritte zur Verbesserung der Sicherheit deines MySQL Servers.
MySQL Installationsassistent Cheat Sheat:
Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication: N
Change the root password? [Y/n]: Y
New Password: Gebe dein neues Root Passwort ein
Re-enter new Password: Bestätige dein neues Root Passwort ein
Remove anonymous users? [Y/n]: Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Nach der Grundkonfiguration von MySQL wurde nun das MySQL Root Passwort gesetzt und alle Sicherheitseinstellungen in der Grundkonfiguration getroffen. Da nun MySQL Genutzt werden kann, muss die Datenbank und der Benutzer für NextCloud angelegt werden. Öffne dafür das MariaDB-Shell-Tool, indem du den folgenden Befehl ausführst:
sudo mysql -u root -p
Gib dein Root-Passwort ein, um Zugriff auf die Datenbankkonsole zu erhalten.
Erstelle dann eine neue Datenbank für Nextcloud:
CREATE DATABASE nextcloud;
Erstelle daraufhin einen neuen Benutzer und weise ihm Berechtigungen für die Nextcloud-Datenbank zu:
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'dein sicheres Passwort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
Ersetze 'dein sicheres Passwort'
durch ein starkes Passwort für den Nextcloud-Benutzer.
Nachdem die Datenbank und der Benutzer angelegt wurde, kannst du das MariaDB-Shell-Tool verlassen.
Gebe hierzu folgende Befehle ein:
EXIT;
Installation & Konfiguration von PHP
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
PHP ist eine serverseitige Skriptsprache, die von Nextcloud benötigt wird, um dynamische Inhalte zu erzeugen und mit der Datenbank zu kommunizieren. Die unten genannten PHP-Erweiterungen stellen sicher, dass Nextcloud reibungslos funktioniert und alle erforderlichen Funktionen bereitstellt.
apt install php8.1 php8.1-curl php-pear php8.1-bcmath php8.1-xml php-dompdf php8.1-mbstring libmagickcore-6.q16-6-extra php8.1-zip php8.1-imagick php8.1-zip php8.1-intl php8.1-gd php8.1-redis php8.1-cli php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-apcu php8.1-gmp php8.1-gd libapache2-mod-php8.1
Überprüfe, ob die Installation erfolgreich war, indem du die Versionen von Apache, MySQL/MariaDB und PHP überprüfst. Du solltest die Versionsnummern der installierten Komponenten sehen, um sicherzustellen, dass alles korrekt installiert wurde.
apache2 -v
mysql --version
php -v
Um PHP zu optimieren, muss die PHP.ini angepasst werden. Gebe hierzu folgenden Befehl ein:
nano /etc/php/8.1/apache2/php.ini
Suche nun nach folgenden Begriffen (Shortcut STRG + W) und ändere die Werte nach folgender Tabelle ab. Sobald du fertig bist kannst du die Datei abspeichern (Shortcut STRG + O) und schließen (Shortcut STRG + X)
SUCHBEGRIFF WERT:
memory_limit 1024M
upload_max_filesize 16G
post_max_size 16G
date.timezone Europe/Berlin
output_buffering Off
Konfiguration Apache2
Um sicherzustellen, dass der Apache-Webserver ordnungsgemäß mit Nextcloud funktioniert, müssen bestimmte Module aktiviert werden. Darüber hinaus ist es empfehlenswert, eine separate Konfigurationsdatei für Nextcloud zu erstellen, um die spezifischen Einstellungen zu verwalten.
Öffne ein Terminalfenster und führe den folgenden Befehl aus, um die erforderlichen Apache-Module zu aktivieren:
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
Dieser Befehl aktiviert die Module „rewrite“, „headers“, „env“, „dir“ und „mime“, die von Nextcloud benötigt werden, um die Anforderungen ordnungsgemäß zu verarbeiten. Diese Module ermöglichen das Umschreiben von URLs, die Verarbeitung von HTTP-Headern, das Setzen von Umgebungsvariablen, die Behandlung von Verzeichnissen und die Verarbeitung von MIME-Typen.
Erstelle eine neue Konfigurationsdatei für Nextcloud. Führe den folgenden Befehl aus, um eine neue Konfigurationsdatei für Nextcloud zu erstellen:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Dieser Befehl öffnet den Nano-Texteditor und erstellt eine neue Datei mit dem Namen „nextcloud.conf“ im Verzeichnis „/etc/apache2/sites-available/“. Füge den folgenden Inhalt in die „nextcloud.conf“-Datei ein:
<VirtualHost *:80>
ServerAdmin postmaster@DOMAIN.de
DocumentRoot /var/www/nextcloud/
ServerName SUBDOMAIN.DOMAIN.DE
<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>
Dieser Konfigurationsblock definiert einen virtuellen Host für Nextcloud, der den richtigen Serveradmin, das Dokumentenverzeichnis, den Alias und die Verzeichniseinstellungen festlegt. Stelle sicher, dass du die E-Mail-Adresse des Serveradministrators und die Domain entsprechend änderst.
Speichere die Datei und schließe den Nano-Editor:
Drücke die Tastenkombination „Ctrl + O„, um die Datei zu speichern, und dann „Ctrl + X„, um den Nano-Editor zu schließen.
Aktiviere die Nextcloud-Konfigurationsdatei. Führe den folgenden Befehl aus, um die Nextcloud-Konfigurationsdatei zu aktivieren:
sudo a2ensite nextcloud.conf
Dieser Befehl erstellt einen symbolischen Link zur Konfigurationsdatei im Verzeichnis „/etc/apache2/sites-enabled/“, um sie zu aktivieren.
Starte den Apache-Webserver neu. Um die Änderungen zu übernehmen, musst du den Apache-Webserver neu starten. Führe den folgenden Befehl aus:
sudo systemctl restart apache2
Damit werden die Aktivierung der Module und die Nextcloud-Konfiguration wirksam.
Installation NextCloud
Nachdem du die erforderlichen Vorbereitungen getroffen hast, ist es an der Zeit, Nextcloud selbst zu installieren. Befolge die folgenden Schritte, um Nextcloud auf deinem Ubuntu 22.04-Server zu installieren.Lade das Nextcloud-Installationspaket herunter. Öffne ein Terminalfenster und wechsle in das Verzeichnis „/tmp“, um temporäre Dateien abzulegen:
cd /tmp
Lade das Nextcloud-Installationspaket mit dem folgenden Befehl herunter (überprüfe die offizielle Nextcloud-Website, um die neueste Version zu finden):
wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo mv nextcloud /var/www/
Weise die richtigen Berechtigungen dem Nextcloud-Verzeichnis zu. Setze die Berechtigungen für den Nextcloud-Ordner mit dem folgenden Befehl. Damit wird der Benutzer und die Gruppe „www-data“ (die vom Apache-Webserver verwendet wird) als Eigentümer des Nextcloud-Ordners festgelegt.
sudo chown -R www-data:www-data /var/www/nextcloud
NextCloud Dateiverzeichnis vorbereiten
Erstelle ein Verzeichnis außerhalb des Webserver-Dokumentenverzeichnisses, in dem die Nextcloud-Daten gespeichert werden sollen. Du kannst den folgenden Befehl verwenden, um ein neues Verzeichnis mit dem Namen „nextcloud-data“ im Homeverzeichnis zu erstellen:
sudo mkdir /home/nextcloud-data
Setze die Berechtigungen für das Nextcloud-Datenverzeichnis mit dem folgenden Befehl:
sudo chown -R www-data:www-data /home/nextcloud-data
Abschließende Konfiguration über den Webbrowser:
Öffne einen Webbrowser und navigiere zu deinem Server, gefolgt von „/nextcloud“ (z. B. http://SERVER-IP/nextcloud). Du solltest die Nextcloud-Installationsseite sehen.
Folge den Anweisungen auf dem Bildschirm, um die erforderlichen Informationen einzugeben, wie die Datenbankdetails (Datenbanktyp, Datenbankbenutzername, Datenbankpasswort) und das Verzeichnis für die Nextcloud-Daten (z. B. „/home/nextcloud-data“). Wähle außerdem einen Administratorbenutzernamen und ein Passwort für den Nextcloud-Administratorzugriff.
Nachdem du alle Informationen eingegeben hast, klicke auf „Installieren„, um den Installationsvorgang abzuschließen.
TLDR
# Install Packages
sudo apt install apache2
sudo apt install mariadb-server
# MariaDB Service Start
sudo systemctl start mariadb
sudo systemctl enable mariadb
# MariaDB Install
sudo mysql_secure_installation
# MySQL Installationsassistent Cheat Sheat
Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication: N
Change the root password? [Y/n]: Y
New Password: Gebe dein neues Root Passwort ein
Re-enter new Password: Bestätige dein neues Root Passwort ein
Remove anonymous users? [Y/n]: Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
# Configuring MariaDB
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'dein sicheres Passwort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
# Install PHP
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php8.1 php8.1-curl php-pear php8.1-bcmath php8.1-xml php-dompdf php8.1-mbstring libmagickcore-6.q16-6-extra php8.1-zip php8.1-imagick php8.1-zip php8.1-intl php8.1-gd php8.1-redis php8.1-cli php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-apcu php8.1-gmp php8.1-gd libapache2-mod-php8.1
# Configuring php.ini
nano /etc/php/8.1/apache2/php.ini
SUCHBEGRIFF WERT:
memory_limit 1024M
upload_max_filesize 16G
post_max_size 16G
date.timezone Europe/Berlin
output_buffering Off
# Configuring Apache2
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo nano /etc/apache2/sites-available/nextcloud.conf
# Inhalt nextcloud.conf
<VirtualHost *:80>
ServerAdmin postmaster@DOMAIN.de
DocumentRoot /var/www/nextcloud/
ServerName SUBDOMAIN.DOMAIN.DE
<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>
# Enable NextCloud Site
sudo a2ensite nextcloud.conf
sudo systemctl restart apache2
# Install NextCloud
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo mv nextcloud /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud
# NextCloud Datenverzeichnis
sudo mkdir /home/nextcloud-data
sudo chown -R www-data:www-data /home/nextcloud-data
3 Antworten
Prima Beschreibung!
Aber ein paar Sachen mussten bei mir noch angepasst werden:
– Checken der Versionsnummern von MySQL mit „mysql -–version“ statt „mysql -version“.
– In der „/etc/apache2/sites-available/000-default.conf“ musste ich noch den „DocumentRoot“ von „/var/www/html“ auf „/var/www“ umstellen, sonst geht keine Webseite auf zum Installieren auf der Nextcloud-Seite
Vielen Dank für deinen Kommentar.
Die Zeile der MySQL Version war tatsächlich ein Formatierungsfehler.
Code Zeilen sind nun als „Inline-Code“ formatiert. Jetzt sollten alle Sonderzeichen richtig dargestellt werden.
Super Beschreibung, danke !! Fast reibungslos 😉
Ein paar Kleinigkeiten sind zusätzlich zu beachten, wenn der Apache bereits eine existierende Website bedient (im wesentlichen Verzeichnisse und Berechtigungen).
Z.B. hat bei mir
sudo chown -R www-data:www-data /var/www/html/nextcloud.de nicht funktioniert
(Installationsroutine von nextcloud konnte nicht auf das Konfigurations-Verzeichnis zugreifen)
sondern nur:
sudo chown -R $USER:$USER /var/www/html/nextcloud.de
zusätzlich noch
sudo chmod -R 755 /var/www/html/nextcloud.de