aufgaben:nextcloud_2:02-installation
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| aufgaben:nextcloud_2:02-installation [2025/07/25 15:14] – [Übersicht der Installation] Branislav Zeljak | aufgaben:nextcloud_2:02-installation [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== 02 - Installation der Komponenten ====== | ||
| - | |||
| - | ===== Lernziele ===== | ||
| - | |||
| - | Nach dieser Lektion haben Sie: | ||
| - | * Apache Webserver installiert und konfiguriert | ||
| - | * MariaDB Datenbank eingerichtet | ||
| - | * PHP mit allen erforderlichen Modulen installiert | ||
| - | * Nextcloud heruntergeladen und entpackt | ||
| - | |||
| - | ===== Übersicht der Installation ===== | ||
| - | |||
| - | **Installationsreihenfolge: | ||
| - | - **System-Updates** | ||
| - | - **Apache Webserver** | ||
| - | - **MariaDB Datenbank** | ||
| - | - **PHP und Module** | ||
| - | - **Nextcloud Software** | ||
| - | - **Erste Konfiguration** | ||
| - | |||
| - | ===== 1. System aktualisieren ===== | ||
| - | |||
| - | **Paketlisten und System aktualisieren: | ||
| - | < | ||
| - | sudo apt update && sudo apt upgrade -y | ||
| - | </ | ||
| - | |||
| - | **System nach Updates neu starten (empfohlen): | ||
| - | < | ||
| - | sudo reboot | ||
| - | </ | ||
| - | |||
| - | ===== 2. Basis-Pakete installieren ===== | ||
| - | |||
| - | **Erforderliche Grundpakete: | ||
| - | < | ||
| - | sudo apt install -y wget curl unzip zip software-properties-common apt-transport-https ca-certificates | ||
| - | </ | ||
| - | |||
| - | ^ Paket ^ Funktion ^ | ||
| - | | **wget** | Dateien aus dem Internet herunterladen | | ||
| - | | **curl** | Datenübertragung und API-Aufrufe | | ||
| - | | **unzip/ | ||
| - | | **software-properties-common** | Repository-Management | | ||
| - | | **apt-transport-https** | HTTPS-Support für apt | | ||
| - | | **ca-certificates** | SSL-Zertifikate für sichere Verbindungen | | ||
| - | |||
| - | ===== 3. Apache Webserver installieren ===== | ||
| - | |||
| - | **Apache installieren: | ||
| - | < | ||
| - | sudo apt install -y apache2 | ||
| - | </ | ||
| - | |||
| - | **Apache-Status prüfen:** | ||
| - | < | ||
| - | sudo systemctl status apache2 | ||
| - | </ | ||
| - | |||
| - | **Apache automatisch starten:** | ||
| - | < | ||
| - | sudo systemctl enable apache2 | ||
| - | </ | ||
| - | |||
| - | **Webserver testen:** | ||
| - | < | ||
| - | # Lokaler Test | ||
| - | curl http:// | ||
| - | |||
| - | # Von anderem Rechner (IP anpassen): | ||
| - | # curl http:// | ||
| - | </ | ||
| - | |||
| - | **Erforderliche Apache-Module aktivieren: | ||
| - | < | ||
| - | sudo a2enmod rewrite headers env dir mime setenvif ssl | ||
| - | </ | ||
| - | |||
| - | ===== 4. MariaDB Datenbank installieren ===== | ||
| - | |||
| - | **MariaDB installieren: | ||
| - | < | ||
| - | sudo apt install -y mariadb-server mariadb-client | ||
| - | </ | ||
| - | |||
| - | **MariaDB-Status prüfen:** | ||
| - | < | ||
| - | sudo systemctl status mariadb | ||
| - | </ | ||
| - | |||
| - | **MariaDB automatisch starten:** | ||
| - | < | ||
| - | sudo systemctl enable mariadb | ||
| - | </ | ||
| - | |||
| - | **MariaDB absichern: | ||
| - | < | ||
| - | sudo mysql_secure_installation | ||
| - | </ | ||
| - | |||
| - | **Wichtige Antworten für den Schulungskontext: | ||
| - | < | ||
| - | Switch to unix_socket authentication [Y/n] → Y | ||
| - | Change the root password? [Y/n] → Y | ||
| - | New password: Start1234 | ||
| - | Re-enter new password: Start1234 | ||
| - | 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 | ||
| - | </ | ||
| - | |||
| - | <WRAP center round info 70%> | ||
| - | **💡 Schulungshinweis: | ||
| - | |||
| - | Das Passwort `Start1234` ist bewusst einfach gewählt. In Produktionsumgebungen verwenden Sie starke, einzigartige Passwörter! | ||
| - | </ | ||
| - | |||
| - | ===== 5. Nextcloud-Datenbank einrichten ===== | ||
| - | |||
| - | **MariaDB-Root-Zugang testen:** | ||
| - | < | ||
| - | sudo mysql -u root -p | ||
| - | # Passwort: Start1234 | ||
| - | </ | ||
| - | |||
| - | **Nextcloud-Datenbank und Benutzer erstellen: | ||
| - | < | ||
| - | -- In der MariaDB-Konsole: | ||
| - | CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | ||
| - | |||
| - | CREATE USER ' | ||
| - | |||
| - | GRANT ALL PRIVILEGES ON nextcloud.* TO ' | ||
| - | |||
| - | FLUSH PRIVILEGES; | ||
| - | |||
| - | -- Datenbanken anzeigen: | ||
| - | SHOW DATABASES; | ||
| - | |||
| - | -- MariaDB verlassen: | ||
| - | EXIT; | ||
| - | </ | ||
| - | |||
| - | **Datenbank-Zugang testen:** | ||
| - | < | ||
| - | mysql -u nc_user -p | ||
| - | # Passwort: nc_pass | ||
| - | |||
| - | # In der MariaDB-Konsole: | ||
| - | SHOW DATABASES; | ||
| - | USE nextcloud; | ||
| - | SHOW TABLES; | ||
| - | EXIT; | ||
| - | </ | ||
| - | |||
| - | ===== 6. PHP installieren ===== | ||
| - | |||
| - | **PHP und grundlegende Module installieren: | ||
| - | < | ||
| - | sudo apt install -y php php-cli php-fpm php-mysql php-xml php-gd php-curl php-mbstring php-intl php-bcmath php-gmp php-zip | ||
| - | </ | ||
| - | |||
| - | **Apache PHP-Modul installieren: | ||
| - | < | ||
| - | sudo apt install -y libapache2-mod-php | ||
| - | </ | ||
| - | |||
| - | **PHP-Version prüfen:** | ||
| - | < | ||
| - | php --version | ||
| - | </ | ||
| - | |||
| - | **PHP-Module prüfen:** | ||
| - | < | ||
| - | php -m | grep -E " | ||
| - | </ | ||
| - | |||
| - | **Erwartete Ausgabe:** | ||
| - | < | ||
| - | bcmath | ||
| - | curl | ||
| - | gd | ||
| - | intl | ||
| - | mbstring | ||
| - | mysql | ||
| - | xml | ||
| - | zip | ||
| - | gmp | ||
| - | </ | ||
| - | |||
| - | ===== 7. Zusätzliche Performance-Module ===== | ||
| - | |||
| - | **Caching und Performance-Module: | ||
| - | < | ||
| - | sudo apt install -y php-apcu php-redis redis-server php-imagick | ||
| - | </ | ||
| - | |||
| - | **ImageMagick-Erweiterungen für bessere Bildbearbeitung: | ||
| - | < | ||
| - | sudo apt install -y libmagickcore-6.q16-6-extra | ||
| - | </ | ||
| - | |||
| - | **Redis-Server starten und aktivieren: | ||
| - | < | ||
| - | sudo systemctl start redis-server | ||
| - | sudo systemctl enable redis-server | ||
| - | </ | ||
| - | |||
| - | **Redis-Status prüfen:** | ||
| - | < | ||
| - | sudo systemctl status redis-server | ||
| - | redis-cli ping # Sollte " | ||
| - | </ | ||
| - | |||
| - | ===== 8. PHP konfigurieren ===== | ||
| - | |||
| - | **PHP-Konfigurationsdatei bearbeiten: | ||
| - | < | ||
| - | sudo nano / | ||
| - | </ | ||
| - | |||
| - | **Wichtige Einstellungen anpassen:** | ||
| - | < | ||
| - | # Speicherlimit erhöhen (Zeile ~409) | ||
| - | memory_limit = 1024M | ||
| - | |||
| - | # Upload-Größe erhöhen (Zeile ~845) | ||
| - | upload_max_filesize = 1G | ||
| - | post_max_size = 1G | ||
| - | |||
| - | # Zeitlimits erhöhen (Zeile ~369) | ||
| - | max_execution_time = 300 | ||
| - | max_input_time = 300 | ||
| - | |||
| - | # Output Buffering deaktivieren (Zeile ~226) | ||
| - | output_buffering = Off | ||
| - | |||
| - | # OPcache optimieren (Ende der Datei hinzufügen) | ||
| - | opcache.enable=1 | ||
| - | opcache.interned_strings_buffer=16 | ||
| - | opcache.max_accelerated_files=10000 | ||
| - | opcache.memory_consumption=128 | ||
| - | opcache.save_comments=1 | ||
| - | opcache.revalidate_freq=1 | ||
| - | </ | ||
| - | |||
| - | **APCu konfigurieren: | ||
| - | < | ||
| - | sudo nano / | ||
| - | </ | ||
| - | |||
| - | **APCu-Inhalt: | ||
| - | < | ||
| - | extension=apcu.so | ||
| - | apc.enable_cli=1 | ||
| - | apc.shm_size=32M | ||
| - | apc.num_files_hint=7000 | ||
| - | apc.user_entries_hint=4096 | ||
| - | apc.ttl=7200 | ||
| - | apc.user_ttl=7200 | ||
| - | apc.gc_ttl=3600 | ||
| - | </ | ||
| - | |||
| - | ===== 9. Apache für Nextcloud konfigurieren ===== | ||
| - | |||
| - | **Apache-Hauptkonfiguration anpassen:** | ||
| - | < | ||
| - | sudo nano / | ||
| - | </ | ||
| - | |||
| - | **Komplette Konfiguration ersetzen:** | ||
| - | < | ||
| - | < | ||
| - | ServerAdmin webmaster@localhost | ||
| - | DocumentRoot / | ||
| - | | ||
| - | ErrorLog ${APACHE_LOG_DIR}/ | ||
| - | CustomLog ${APACHE_LOG_DIR}/ | ||
| - | | ||
| - | # Nextcloud-spezifische Verzeichnis-Konfiguration | ||
| - | < | ||
| - | Options Indexes FollowSymLinks | ||
| - | AllowOverride All | ||
| - | Require all granted | ||
| - | </ | ||
| - | | ||
| - | # .well-known URLs für Nextcloud-Dienste | ||
| - | < | ||
| - | Header always set Strict-Transport-Security " | ||
| - | Redirect 301 / | ||
| - | Redirect 301 / | ||
| - | Redirect 301 / | ||
| - | Redirect 301 / | ||
| - | </ | ||
| - | | ||
| - | # Security Headers | ||
| - | < | ||
| - | Header always set X-Content-Type-Options nosniff | ||
| - | Header always set X-Frame-Options DENY | ||
| - | Header always set X-XSS-Protection "1; mode=block" | ||
| - | Header always set Referrer-Policy " | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | **Erforderliche Apache-Module aktivieren: | ||
| - | < | ||
| - | sudo a2enmod headers rewrite env dir mime setenvif | ||
| - | </ | ||
| - | |||
| - | ===== 10. Nextcloud herunterladen ===== | ||
| - | |||
| - | **Ins Webserver-Verzeichnis wechseln:** | ||
| - | < | ||
| - | cd / | ||
| - | </ | ||
| - | |||
| - | **Aktuelle Nextcloud-Version herunterladen: | ||
| - | < | ||
| - | sudo wget https:// | ||
| - | </ | ||
| - | |||
| - | **Alternative - spezifische Version (empfohlen für Schulung): | ||
| - | < | ||
| - | sudo wget https:// | ||
| - | sudo mv nextcloud-30.0.2.zip latest.zip | ||
| - | </ | ||
| - | |||
| - | **Nextcloud entpacken: | ||
| - | < | ||
| - | sudo unzip latest.zip | ||
| - | </ | ||
| - | |||
| - | **Berechtigungen setzen:** | ||
| - | < | ||
| - | sudo chown -R www-data: | ||
| - | sudo chmod -R 755 / | ||
| - | </ | ||
| - | |||
| - | **Download-Datei entfernen: | ||
| - | < | ||
| - | sudo rm latest.zip | ||
| - | </ | ||
| - | |||
| - | ===== 11. Services neustarten ===== | ||
| - | |||
| - | **Alle Dienste neustarten: | ||
| - | < | ||
| - | sudo systemctl restart apache2 | ||
| - | sudo systemctl restart mariadb | ||
| - | sudo systemctl restart redis-server | ||
| - | </ | ||
| - | |||
| - | **Service-Status prüfen:** | ||
| - | < | ||
| - | sudo systemctl status apache2 | ||
| - | sudo systemctl status mariadb | ||
| - | sudo systemctl status redis-server | ||
| - | </ | ||
| - | |||
| - | ===== 12. Installation testen ===== | ||
| - | |||
| - | **Webserver-Zugriff testen:** | ||
| - | < | ||
| - | curl -I http:// | ||
| - | </ | ||
| - | |||
| - | **Erwartete Antwort:** | ||
| - | < | ||
| - | HTTP/1.1 200 OK | ||
| - | Server: Apache/ | ||
| - | Content-Type: | ||
| - | </ | ||
| - | |||
| - | **Nextcloud-Verzeichnisstruktur prüfen:** | ||
| - | < | ||
| - | ls -la / | ||
| - | </ | ||
| - | |||
| - | **Wichtige Verzeichnisse sollten vorhanden sein:** | ||
| - | < | ||
| - | drwxr-xr-x | ||
| - | drwxr-xr-x | ||
| - | drwxr-xr-x | ||
| - | -rw-r--r-- | ||
| - | drwxr-xr-x | ||
| - | -rw-r--r-- | ||
| - | drwxr-xr-x | ||
| - | drwxr-xr-x | ||
| - | drwxr-xr-x | ||
| - | </ | ||
| - | |||
| - | ===== Troubleshooting ===== | ||
| - | |||
| - | **Häufige Probleme und Lösungen: | ||
| - | |||
| - | **Problem: Apache startet nicht** | ||
| - | < | ||
| - | # Konfiguration testen: | ||
| - | sudo apache2ctl configtest | ||
| - | |||
| - | # Logs prüfen: | ||
| - | sudo tail -f / | ||
| - | </ | ||
| - | |||
| - | **Problem: MariaDB Zugriff verweigert** | ||
| - | < | ||
| - | # Root-Passwort zurücksetzen: | ||
| - | sudo systemctl stop mariadb | ||
| - | sudo mysqld_safe --skip-grant-tables & | ||
| - | mysql -u root | ||
| - | # In MySQL: UPDATE mysql.user SET password=PASSWORD(' | ||
| - | # FLUSH PRIVILEGES; EXIT; | ||
| - | sudo systemctl restart mariadb | ||
| - | </ | ||
| - | |||
| - | **Problem: PHP-Module fehlen** | ||
| - | < | ||
| - | # Installierte Module prüfen: | ||
| - | php -m | ||
| - | |||
| - | # Fehlende Module nachinstallieren: | ||
| - | sudo apt install php-[modulname] | ||
| - | sudo systemctl restart apache2 | ||
| - | </ | ||
| - | |||
| - | **Problem: Nextcloud nicht erreichbar** | ||
| - | < | ||
| - | # Berechtigungen prüfen: | ||
| - | ls -la / | ||
| - | |||
| - | # Falls nötig korrigieren: | ||
| - | sudo chown -R www-data: | ||
| - | </ | ||
| - | |||
| - | ===== Checkliste Installation ===== | ||
| - | |||
| - | **Vor dem nächsten Schritt prüfen:** | ||
| - | |||
| - | * ☐ Apache läuft (`sudo systemctl status apache2`) | ||
| - | * ☐ MariaDB läuft (`sudo systemctl status mariadb`) | ||
| - | * ☐ Redis läuft (`sudo systemctl status redis-server`) | ||
| - | * ☐ PHP funktioniert (`php --version`) | ||
| - | * ☐ Nextcloud-Dateien sind entpackt (`ls / | ||
| - | * ☐ Berechtigungen sind korrekt (`ls -la / | ||
| - | * ☐ Datenbank `nextcloud` existiert | ||
| - | * ☐ Benutzer `nc_user` kann auf Datenbank zugreifen | ||
| - | * ☐ Webserver antwortet (`curl http:// | ||
| - | |||
| - | ===== Weiter zur Konfiguration ===== | ||
| - | |||
| - | **🎉 Installation erfolgreich!** | ||
| - | |||
| - | Die technischen Komponenten sind jetzt installiert. Im nächsten Schritt konfigurieren wir Nextcloud über die Web-Oberfläche. | ||
| - | |||
| - | 👉 **[[aufgaben: | ||
| - | |||
| - | **In der nächsten Lektion werden wir:** | ||
| - | * Nextcloud über den Browser einrichten | ||
| - | * Administrator-Account erstellen | ||
| - | * Datenbank-Verbindung konfigurieren | ||
| - | * Erste Sicherheitseinstellungen vornehmen | ||
| - | |||
| - | ===== Zusätzliche Informationen ===== | ||
| - | |||
| - | **Installierte Software-Versionen prüfen:** | ||
| - | < | ||
| - | apache2 -v | ||
| - | mysql --version | ||
| - | php --version | ||
| - | redis-server --version | ||
| - | </ | ||
| - | |||
| - | **Speicherverbrauch prüfen:** | ||
| - | < | ||
| - | free -h | ||
| - | df -h | ||
| - | </ | ||
| - | |||
| - | **Log-Dateien für Monitoring: | ||
| - | < | ||
| - | # Apache | ||
| - | sudo tail -f / | ||
| - | sudo tail -f / | ||
| - | |||
| - | # MariaDB | ||
| - | sudo tail -f / | ||
| - | |||
| - | # System | ||
| - | sudo journalctl -f | ||
| - | </ | ||
