So installierst du Nextcloud mit Apache 2 und Let’s Encrypt SSL unter Ubuntu 22.04 LTS
Nextcloud ist eine kostenlose und quelloffene Lösung zum Teilen und Synchronisieren von Dateien, die dir hilft, deine persönlichen Dokumente, Dateien, Fotos und anderes an einem zentralen Ort zu speichern. Sie ist anderen Cloud-Speicherlösungen wie Dropbox, Google Drive, iCloud usw. sehr ähnlich. Du solltest zu NextCloud wechseln, wenn du dir Sorgen um deine Privatsphäre machst, denn du kannst Nextcloud auf deinem eigenen Server installieren. Du kannst Dateien und andere Dokumente auf deinen Nextcloud-Server hochladen und sie dann mit deinem Desktop-PC, Laptop oder Smartphone synchronisieren.
In diesem Tutorial zeigen wir dir, wie du Nextcloud auf einem Ubuntu 22.04 Server installierst.
Voraussetzungen
- Ein Server, auf dem Ubuntu 22.04 läuft.
- Ein gültiger Domainname, der auf die Server-IP zeigt.
- Ein Root-Passwort ist auf deinem Server konfiguriert.
Installiere Apache, PHP und MariaDB
Bevor du beginnst, muss der LAMP-Stack auf deinem Server installiert sein. Wenn er nicht installiert ist, kannst du ihn mit dem folgenden Befehl installieren:
apt install apache2 mariadb-server php php-cli php-fpm php-json php-intl php-imagick php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath apache2 libapache2-mod-php -y
Nachdem du alle Pakete installiert hast, bearbeite die PHP-Konfigurationsdatei und ändere einige Standardeinstellungen:
nano /etc/php/8.1/apache2/php.ini
Ändere die folgenden Zeilen:
date.timezone = UTC memory_limit = 512M upload_max_filesize = 500M post_max_size = 500M max_execution_time = 300
Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Erstelle eine Datenbank für Nextcloud
Nextcloud verwendet eine MariaDB-Datenbank als Datenbank-Backend. Daher musst du eine Datenbank und einen Benutzer in MariaDB anlegen.
Verbinde dich zunächst mit der MariaDB-Shell mit dem folgenden Befehl:
mysql
Sobald du mit MariaDB verbunden bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:
CREATE DATABASE nextcloud; CREATE USER 'nextcloud'@'localhost' identified by 'password';
Als Nächstes erteilst du der Nextcloud-Datenbank mit folgendem Befehl alle Berechtigungen:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
Lösche die Berechtigungen und verlasse MariaDB mit folgendem Befehl:
FLUSH PRIVILEGES; QUIT;
Nextcloud herunterladen
Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste Version von Nextcloud 24.0.1. Du kannst sie mit dem folgenden Befehl herunterladen:
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.1.zip
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
unzip nextcloud-24.0.1.zip
Als Nächstes verschiebst du das entpackte Verzeichnis mit folgendem Befehl in das Apache-Web-Root:
mv nextcloud /var/www/html/
Ändere als Nächstes mit folgendem Befehl die Eigentums- und Zugriffsrechte für das Nextcloud-Verzeichnis:
chown -R www-data:www-data /var/www/html/nextcloud chmod -R 775 /var/www/html/nextcloud
Erstellen eines virtuellen Apache-Hosts für Nextcloud
Als Nächstes musst du eine Konfigurationsdatei für einen virtuellen Apache-Host für Nextcloud erstellen. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/apache2/sites-available/next.conf
Füge die folgenden Zeilen hinzu:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/nextcloud ServerName next.example.com ErrorLog /var/log/apache2/nextcloud-error.log CustomLog /var/log/apache2/nextcloud-access.log combined <Directory /var/www/html/nextcloud> Options +FollowSymlinks AllowOverride All Require all granted SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud <IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost>
Speichere und schließe die Datei und aktiviere dann den virtuellen Apache-Host und andere benötigte Apache-Module mit dem folgenden Befehl:
a2ensite next a2enmod rewrite dir mime env headers
Starte anschließend den Apache-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Du kannst den Status des Apache auch mit dem folgenden Befehl überprüfen:
systemctl status apache2
Du erhältst den Apache-Status in der folgenden Ausgabe:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-06-17 15:04:27 UTC; 4s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 16746 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 16750 (apache2) Tasks: 6 (limit: 2292) Memory: 14.7M CPU: 98ms CGroup: /system.slice/apache2.service ??16750 /usr/sbin/apache2 -k start ??16751 /usr/sbin/apache2 -k start ??16752 /usr/sbin/apache2 -k start ??16753 /usr/sbin/apache2 -k start ??16754 /usr/sbin/apache2 -k start ??16755 /usr/sbin/apache2 -k start Jun 17 15:04:27 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Zugriff auf das Nextcloud Web Interface
Öffne nun deinen Webbrowser und rufe die Nextcloud-Web-Oberfläche über die URL http://next.example.com auf. Du solltest den folgenden Bildschirm sehen:
Gib deinen Admin-Benutzernamen, das Passwort und die Datenbank ein und klicke auf die Schaltfläche Installieren. Sobald Nextcloud installiert ist, solltest du den folgenden Bildschirm sehen:
Klicke auf die Schaltfläche Empfohlene Anwendungen installieren, um alle erforderlichen Anwendungen zu installieren. Du solltest den folgenden Bildschirm sehen:
Klicke auf die Schaltfläche Alle Dateien. Auf dem folgenden Bildschirm sollte der Nextcloud-Speichermanager zu sehen sein:
Klicke auf Deine Fotos. Auf dem folgenden Bildschirm sollte der Nextcloud-Fotomanager angezeigt werden:
Aktiviere SSL auf Nextcloud
Es wird auch empfohlen, SSL auf der Nextcloud-Domäne zu aktivieren, um eine sichere Kommunikation zu gewährleisten. Installiere zunächst das Certbot-Paket mit dem folgenden Befehl:
apt-get install python3-certbot-apache -y
Nach der Installation führst du den folgenden Befehl aus, um deine Website mit Let’s Encrypt SSL zu sichern:
certbot --apache -d next.example.com
Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): hitjethva@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for next.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/next-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/next-le-ssl.conf Enabling available site: /etc/apache2/sites-available/next-le-ssl.conf
Als Nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Gib 2 ein und drücke die Eingabetaste, um Let’s Encrypt SSL für deine Website zu installieren:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/next.conf to ssl vhost in /etc/apache2/sites-available/next-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://next.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=next.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/next.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/next.example.com/privkey.pem Your cert will expire on 2022-09-21. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Fazit
Herzlichen Glückwunsch! Du hast Nextcloud mit Apache und Let’s Encrypt SSL erfolgreich auf Ubuntu 22.04 installiert. Du kannst jetzt deine Dateien, Dokumente und Fotos hochladen und sie mit deinem Computer, Laptop und deinen mobilen Geräten synchronisieren.