So installierst du ownCloud unter Debian 12
ownCloud ist eine Softwarelösung zur Erstellung von Filehosting-Diensten wie Google Drive und DropBox. Es ist eine kostenlose und quelloffene Filehosting-Software, mit der du ein selbstgehostetes Filehosting auf deinem eigenen Server einrichten kannst. ownCloud bietet die Serveranwendung (die Hauptkomponente der ownCloud-Software) und Client-Anwendungen, die auf verschiedenen Betriebssystemen wie Linux, Windows, macOS, Android und iOS installiert werden können.
ownCloud ist hauptsächlich in PHP, JavaScript und Go geschrieben. Mit ownCloud kannst du ganz einfach Kalenderereignisse synchronisieren und Archive, Bilder und Dateien speichern. Außerdem kannst du mit ownCloud Aufgaben, Adressbücher usw. organisieren. ownCloud ist eine erweiterbare Anwendung, die es dir ermöglicht, eine zusätzliche Anwendung darauf zu installieren.
In dieser Anleitung erfährst du Schritt für Schritt, wie du ownCloud auf Debian 12 installierst. Erfahre, wie du ownCloud über die Kommandozeile auf dem LAMP-Stack installierst und ownCloud mit SSL/TLS-Zertifikaten von Letsencrypt sicherst.
Voraussetzungen
Um mit dem Prozess zu beginnen, musst du sicherstellen, dass du Folgendes hast:
- Einen Debian 12 Server.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
- Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.
Installieren der Abhängigkeiten
Im folgenden Abschnitt installierst du die Paketabhängigkeiten, die ownCloud benötigt. Im Folgenden findest du einige Pakete, die du installieren wirst:
- Apache2 Webserver.
- MariaDB-Datenbankserver.
PHP 7.4 – Die aktuelle PHP-Version 8.x wird von ownCloud noch nicht unterstützt, daher wirst du PHP 7.4 über ein Repository eines Drittanbieters installieren. - Redis-Server.
- Zusätzliche Pakete wie ImageMagick, Certbot, Pear und PHP-Erweiterungen.
Führe zunächst den folgenden Befehl aus, um einige Abhängigkeiten auf deinem System zu installieren.
sudo apt install lsb-release ca-certificates curl -y
Führe nun den folgenden Befehl aus, um den PHP-GPG-Schlüssel und das Repository zu deinem Debian-System hinzuzufügen. Leider unterstützt die ownCloud immer noch nicht PHP 8.x und du musst PHP 7.4 über ein Drittanbieter-Repository auf deinem Debian-Rechner installieren.
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Als Nächstes führst du den folgenden Befehl aus, um dein Debian-Repository zu aktualisieren und aufzufrischen.
sudo apt update
Installiere dann die Abhängigkeiten für ownCloud, indem du den folgenden apt install-Befehl ausführst. Damit installierst du den LAMP-Stack (Apache2, MariaDB und PHP 7.4), Certbot, Redis, zusätzliche PHP-Erweiterungen und ImageMagick.
sudo apt install apache2 mariadb-server imagemagick certbot python3-certbot-apache smbclient redis-server unzip rsync libapache2-mod-php7.4 php7.4 php7.4-intl php7.4-mysql php7.4-mbstring php7.4-imagick php7.4-igbinary php7.4-gmp php7.4-bcmath php7.4-curl php7.4-gd php7.4-zip php7.4-imap php7.4-ldap php7.4-bz2 php7.4-ssh2 php7.4-common php7.4-json php7.4-xml php7.4-dev php7.4-apcu php7.4-redis libsmbclient-dev php-pear php-phpseclib
Gib y ein, um mit der Installation fortzufahren.
Sobald die Abhängigkeiten installiert sind, überprüfe jede einzelne mit dem folgenden Befehl.
Führe den folgenden Befehl aus, um den apache2-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
Die folgende Ausgabe zeigt dir, dass apache2 aktiviert ist und läuft.
Überprüfe den mariadb-Dienst mit dem folgenden Befehl.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
Die Ausgabe sollte ähnlich sein: Die Ausgabe enabled bestätigt, dass mariadb aktiviert ist, und die Ausgabe active (running) bestätigt, dass mariadb läuft.
Überprüfe nun Redis mit dem folgenden Befehl.
sudo systemctl is-enabled redis sudo systemctl status redis
Der Redis-Server sollte laufen und wie folgt aktiviert sein:
Als Nächstes führst du den folgenden Befehl aus, um die Standard-PHP-Version auf deinem Debian-Rechner zu konfigurieren.
sudo update-alternatives --config php
Wähle als Standard-PHP-Version PHP 7.2.
Führe den folgenden Befehl aus, um zusätzliche PHP-Tools so zu konfigurieren, dass sie PHP 7.4 verwenden.
sudo update-alternatives --set phar /usr/bin/phar7.4 sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.4 sudo update-alternatives --set phpize /usr/bin/phpize7.4 sudo update-alternatives --set php-config /usr/bin/php-config7.4
Überprüfe anschließend die Standard-PHP-Version und einige aktivierte Erweiterungen mit folgendem Befehl.
php -v php -m
Die folgende Ausgabe bestätigt, dass PHP 7.2 installiert und zur Standard-PHP-Version auf deinem Debian-Rechner geworden ist.
Überprüfe abschließend den Binärpfad von Certbot und seine Version mit dem folgenden Befehl.
which certbot certbot --version
Du solltest sehen, dass Certbot 2.1.0 unter /usr/bin/certbot installiert ist.
PHP Pear upgraden
Nachdem du die Abhängigkeiten installiert hast, musst du als Nächstes das Pear-Paket auf die neueste Version aktualisieren, was über die Pear-Befehlszeile möglich ist.
Führe den folgenden Befehl aus, um ein neues temporäres Verzeichnis /tmp/pear/cache zu erstellen und die Pear-Version auf 1.10.13 zu aktualisieren.
sudo mkdir -p /tmp/pear/cache sudo pear upgrade --force --alldeps http://pear.php.net/get/PEAR-1.10.13
Während der Installation solltest du eine Ausgabe wie die folgende erhalten:
Als Nächstes führst du die folgenden pear-Befehle aus, um den Cache zu leeren, die Kanäle zu aktualisieren und alle Pakete zu aktualisieren.
sudo pear clear-cache sudo pear update-channels sudo pear upgrade --force sudo pear upgrade-all
Wenn du fertig bist, überprüfe die PEAR-Version mit dem folgenden Befehl.
pear version
Du solltest sehen, dass Pears auf v1.10.13 aktualisiert wurde.
MariaDB Server konfigurieren
Im folgenden Abschnitt wirst du deine MariaDB Server-Installation mit dem Dienstprogramm mariadb-secure-installation erstellen und sichern. Anschließend erstellst du eine neue Datenbank und einen neuen Benutzer, die von ownCloud verwendet werden.
Um den MariaDB Server zu sichern, führst du den folgenden Befehl in deinem Terminal aus.
sudo mariadb-secure-installation
Während des Vorgangs wirst du nach einigen Konfigurationen von MariaDB gefragt. Gib Y ein, um die Konfiguration zu akzeptieren oder n, um sie abzulehnen. Im Folgenden findest du einige der MariaDB-Konfigurationen, nach denen du gefragt wirst:
- Zur unix_socket-Authentifizierung wechseln? Gib n ein und drücke ENTER. Der Standard-MariaDB-Root-Benutzer ist bereits geschützt. Optional kannst du ihn auch aktivieren, indem du y für yes eingibst.
- Ändere das Root-Passwort? Gib y ein, um zu bestätigen und dein neues MariaDB Root-Passwort einzurichten.
- Anonymen Benutzer entfernen? Gib y ein, um zu bestätigen.
- Root-Login aus der Ferne verbieten? Gib zur Bestätigung y ein. Wenn du den MariaDB Root-Benutzer verwendest, wird nur eine lokale Verbindung zugelassen.
- Testdatenbank und Zugriff auf sie entfernen? Bestätige mit y und entferne die Standarddatenbank „test“.
- Gib abschließend erneut y ein, um alle Tabellenrechte auf deinem MariaDB-Server neu zu laden und die neuen Änderungen anzuwenden.
Nachdem du MariaDB gesichert hast, erstellst du eine neue Datenbank und einen neuen Benutzer, der von ownCloud verwendet wird. Dazu musst du dich über den mariadb-Client am MariaDB-Server anmelden.
Führe den folgenden Befehl aus, um dich beim MariaDB Server anzumelden. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.
sudo mariadb -u root -p
Führe nun die folgenden MariaDB-Abfragen aus, um eine neue Datenbank und einen neuen Benutzer für ownCloud zu erstellen. In diesem Beispiel erstellst du eine neue Datenbank owncloud, einen Benutzer owncloud und das Passwort password.
CREATE DATABASE owncloud; CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
Überprüfe abschließend die Rechte des Benutzers owncloud, indem du die folgende Abfrage ausführst.
SHOW GRANTS FOR 'owncloud'@'localhost';
Du solltest sehen, dass der Benutzer owncloud auf die Datenbank owncloud zugreifen kann, die für deine ownCloud-Installation verwendet wird.
Gib nun quit ein, um den MariaDB Server zu verlassen.
Herunterladen des ownCloud-Quellcodes
Nachdem du den MariaDB-Server konfiguriert hast, lädst du den ownCloud-Quellcode herunter und konfigurierst das DocumentRoot-Verzeichnis für deine ownCloud-Installation mit den richtigen Berechtigungen und Eigentümern.
Wechsle zunächst dein Arbeitsverzeichnis zu /var/www.
cd /var/www
Dann führst du die folgenden wget-Befehle aus, um den ownCloud-Quellcode und die dazugehörige Prüfsummendatei auf dein System herunterzuladen.
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
Führe nun den folgenden Befehl aus, um die Integrität deines ownCloud-Quellcodes zu überprüfen. Wenn er erfolgreich war, solltest du die Ausgabe„owncloud-complete-latest.tar.bz2: OK“ erhalten.
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
Als Nächstes führst du den folgenden Befehl aus, um den ownCloud-Quellcode zu extrahieren. Der ownCloud-Quellcode wird in das Verzeichnis /var/www/owncloud extrahiert, das als DocumentRoot-Verzeichnis verwendet wird.
tar -xf owncloud-complete-latest.tar.bz2
Zum Schluss führst du den folgenden Befehl aus, um den Eigentümer des Verzeichnisses /var/www/owncloud auf den Benutzer www-data zu ändern.
sudo chown -R www-data:www-data /var/www/owncloud
Virtuellen Apache2-Host konfigurieren
In diesem Abschnitt erstellst du eine neue virtuelle Hostkonfiguration, die für den Betrieb von ownCloud verwendet wird. Außerdem wirst du SSL/TLS-Zertifikate von Letsencrypt über Certbot generieren. Bevor du beginnst, musst du sicherstellen, dass der Domainname auf die IP-Adresse deines Servers zeigt.
Führe zunächst den folgenden Befehl aus, um einige Apache2-Module zu aktivieren, die von ownCloud verwendet werden.
sudo a2enmod rewrite env dir mime unique_id headers ssl
Erstelle nun eine neue virtuelle Hostdatei /etc/apache2/sites-available/owncloud.conf mit dem folgenden nano-Editor-Befehl.
sudo nano /etc/apache2/sites-available/owncloud.conf
Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen im Parameter ServerName änderst.
<VirtualHost *:80> ServerName hwdomain.io ServerAlias www.hwdomain.io
DocumentRoot /var/www/owncloud
ErrorLog ${APACHE_LOG_DIR}/hwdomain.io-error.log
CustomLog ${APACHE_LOG_DIR}/hwdomain.io-access.log combined
Alias /owncloud „/var/www/owncloud/“
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
Speichere die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes führst du den Befehl a2ensite aus, um die virtuelle Hostdatei owncloud.conf zu aktivieren und überprüfst die Apache2-Syntax mit dem Befehl apachectl. Wenn du die richtige Syntax hast, solltest du die Ausgabe„Syntax OK“ erhalten.
sudo a2ensite owncloud.conf sudo apachectl configtest
Führe nun den Befehl systemctl aus, um den Apache2-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen.
sudo systemctl restart apache2
Zum Schluss führst du den Befehl certbot aus, um SSL/TLS-Zertifikate für deine ownCloud-Domain zu erstellen. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse im folgenden Befehl mit deinen Daten änderst.
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email admin@hwdomain.io -d hwdomain.io
Sobald der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/hwdomain.io verfügbar. Außerdem wird deine virtuelle Hostdatei owncloud.conf automatisch mit HTTPS konfiguriert.
Installation von ownCloud über die Kommandozeile
Jetzt hast du alle Abhängigkeiten, die für ownCloud erforderlich sind, installiert und konfiguriert. Du kannst den Installationsschritt über einen Webbrowser oder die Kommandozeile starten. In diesem Beispiel wirst du ownCloud über die Kommandozeile installieren.
Verschiebe dein Arbeitsverzeichnis nach /var/www/owncloud.
cd /var/www/owncloud
Führe den folgenden Befehl aus, um ownCloud über die Befehlszeile zu installieren. Achte darauf, dass du die Details der MariaDB-Datenbank sowie den neuen Admin-Benutzer und das Passwort für ownCloud änderst.
sudo -u www-data /var/www/owncloud/occ maintenance:install \ --database "mysql" \ --database-name "owncloud" \ --database-user "owncloud"\ --database-pass "password" \ --admin-user "admin" \ --admin-pass "adminpassowncloud"
Sobald die Installation abgeschlossen ist, solltest du die folgende Ausgabe erhalten.
Als Nächstes öffnest du das Skript ownCloud config.php mit dem folgenden Befehl im nano-Editor.
sudo nano /var/www/owncloud/config/config.php
Füge den Namen deiner ownCloud-Domain wie folgt zu den trusted_domains hinzu.
'trusted_domains' => array ( 0 => 'localhost', 1 => 'hwdomain.io', ),
Speichere und schließe die Datei, wenn du fertig bist.
Öffne nun deinen Webbrowser und rufe deinen ownCloud-Domainnamen auf, z. B. http://hwdoamin.io/. Du wirst auf eine sichere HTTPS-Verbindung umgeleitet und erhältst die ownCloud-Anmeldeseite.
Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf Login.
Wenn alles klappt, solltest du dein ownCloud-Dashboard wie folgt sehen.
Performace Tuning für ownCloud
Nachdem du ownCloud installiert hast, wirst du im letzten Abschnitt eine neue Konfiguration hinzufügen, um deine ownCloud-Installation zu verbessern. Du wirst eine neue crontab für ownCloud erstellen und Redis in deine ownCloud-Installation integrieren.
Erstelle eine neue crontab für ownCloud, indem du den folgenden Befehl ausführst.
sudo crontab -u www-data -e
Wähle deinen bevorzugten Texteditor und gib die folgende Konfiguration ein. Damit wirst du den Befehl„/usr/bin/php -f /var/www/owncloud/occ system:cron“ alle 15 Minuten ausführen.
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
Speichere und schließe die Datei, wenn du fertig bist.
Als nächstes öffnest du die Datei ownCloud config.php erneut mit dem Befehl nano editor.
sudo nano /var/www/owncloud/config/config.php
Füge deinen Redis-Server als memcache.locking wie folgt hinzu:
<?php> .... .... 'filelocking.enabled' => true, 'memcache.local' => '\OC\Memcache\APCu', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ], .... .... );
Speichere und beende die Datei, wenn du fertig bist.
Gehe nun zurück zum ownCloud Dashboard, klicke auf das Benutzersymbol und wähle Einstellungen.
Klicke auf das Menü Allgemein und überprüfe den Abschnitt Sicherheits- und Einrichtungswarnungen, um detaillierte Empfehlungen für deine ownCloud-Installation zu erhalten.
Fazit
Herzlichen Glückwunsch! Du hast die Installation von ownCloud auf dem Debian 12 Server Schritt für Schritt abgeschlossen. Du hast ownCloud mit dem LAMP-Stack (Apache2, MariaDB und PHP) installiert, ownCloud mit SSL/TLS-Zertifikaten von Letsencrypt gesichert und den Redis-Server in deine ownCloud-Installation integriert.