Nextcloud mit Apache2, MariaDB, PhpMyAdmin und Letsencrypt

  • Letzter Stand 01.02.2024

    27.02.2023 (PHP 8.1 hinzugefügt)

    03.03.2023 (Aktivierung von ssl (HTTPS) für den Zugriff aus dem Heimnetz (IP-Adresse/Hostname) hinzugefügt)

    11.10.2023 (PHP 8.2 für Bookworm hinzugefügt)

    01.02.2024 (Getestet auf einem Pi5)

    Meine Tutorials

    Forumsperlen


    Vorwort

    Alle Inhalte in diesem Tutorial habe ich nach bestem Wissen erstellt. Dennoch kann es passieren, dass sich irgendwo Tippfehler… eingeschlichen haben.

    Aus diesem Grund selbstverständlich alles ohne Gewähr.

    Empfehlungen von mir:

    Erstellt vor Beginn ein Backup eurer SD-Karte. (Kein Backup → kein Mitleid)

    Bei allen erforderlichen Änderungen an (bestehenden) Systemdateien diese zuvor einmal sichern.

    Beispiel: sudo cp /Verzeichnispfad/datei.conf /Verzeichnispfad/datei.conf.bak

    Somit seid ihr jederzeit in der Lage, das Original wieder zurückzusichern.

    Achtet unbedingt auf Fehlermeldungen bei der Eingabe und macht bei einer Fehlermeldung nicht einfach weiter.


    Inhalt

    1.0.0 Was wird für die Installation von Nextcloud benötigt

    1.1.0 Installation Webserver und PHP

    1.2.0 Installation eines Datenbankservers (MariaDB)

    1.2.1 Secure Install MariaDB

    1.2.2 User und Passwort für Datenbakserver erstellen.

    1.3.0 Installation PhpMyAdmin (Optional)

    1.3.1.1 „Ab sofort muss ein geheimes Passwort zur Verschlüsselung in der Konfigurationsdatei gesetzt werden“

    1.3.1.2 „PhpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam.“

    1.4.0 Nextcloud (download, unzip, …)

    1.4.1 Pfad für Datenverzeichnis festlegen

    1.4.2 Datenbank mit User und Passwort erstellen

    1.4.3 Nextcloud installieren und erster Start

    1.4.4 Beseitigung von Fehlermeldungen (Optimierungsempfehlungen) in Nextcloud

    1.4.4.1 Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB. Der PHP-OPcache ist nicht richtig konfiguriert.

    1.4.4.2 Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein MemoryCache konfiguriert werden.

    1.4.4.3 Der Strickt Transport-Security http-Header ist nicht auf mindestens 15552000 Sekunden eingestellt……

    1.4.4.4 Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/caldav" aufzulösen...............

    1.5.0 Installation Letsencrypt


    1.0.0 Was wird für die Installation benötigt

    • Voraussetzung für die Installation von Nextcloud ist natürlich eine saubere und möglichst sichere Installation des Betriebssystems.
    • Nachzulesen in meiner Anleitung „Grundinstallation Raspberry Pi
    • Installation eines Webservers mit PHP
    • Installation eines mysql-Datenbankservers (MariaDB)
    • Installation von PhpMyAdmin (Webanwendung zur Administration von Mysql-Datenbanken)

    Die Installation von PhpMyAdmin nicht unbedingt erforderlich, macht aber Sinn.


    1.1.0 Installation eines Webservers (Apache2 und PHP)

    Als erstes sollte das System aktualisiert werden, um alle Pakete und das Betriebssystem zu aktualisieren. Dazu gebt ihr folgenden Befehl in der Konsole ein:

    sudo apt update && sudo apt full-upgrade

    Für die Installation reicht es aus, PHP mit den für Nextcloud erforderlichen Paketen zu installieren.

    Sofern vorher kein anderer Webserver installiert war, wird Apache2 automatisch mit installiert.

    Wichtiger Hinweis!!

    Für die neueste Version von Nextcloud ( >= 25.0.0) ist es erforderlich, ein 64bit-System sowie PHP 7.4 zu installieren. Für ein 32bit System unbedingt eine Version unterhalb on 25.0.0 (nextcloud-24.0.6) installieren.

    Das heißt, bei Neuinstallation am besten Bullseye 64bit

    Für OS Buster (PHP 7.3)

    Code
    sudo apt install php7.3 php7.3-cli php7.3-curl php7.3-gd php7.3-intl php7.3-json php7.3-mbstring php7.3-mysql php7.3-opcache php7.3 readline
    sudo apt install php7.3-xml php7.3-xsl php7.3-zip php7.3-bz2 libapache2-mod-php7.3 php7.3-imagick php-apcu php-bcmath php-gmp

    Für OS Bullseye /PHP 7.4)

    Code
    sudo apt install php7.4 php-cli php-curl php-gd php-intl php-mbstring php-mysql php7.4-opcache php-readline
    
    sudo apt install php-xml php7.4-xsl php-zip php-bz2 libapache2-mod-php php-imagick php-apcu php-bcmath php-gmp


    Für OS Bullseye /PHP 8.1
    PHP 8 ist din den offiziellen Repos noch nicht enthalten. Daher müssen die Paketquellen angepasst werden.

    Code
    sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
    
    sudo apt update
    
    sudo apt install php8.1 php8.1-cli php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline
    
    sudo apt install php8.1-xml php8.1-xsl php8.1-zip php8.1-bz2 libapache2-mod-php8.1 php8.1-imagick php8.1-apcu php8.1-bcmath php8.1-gmp

    Für OS Bookworm /PHP 8.2

    Code
    sudo apt install php8.2 php8.2-cli php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline
    
    sudo apt install php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2 libapache2-mod-php8.2 php8.2-imagick php8.2-apcu php8.2-bcmath php8.2-gmp


    1.2.0 Installation eines Datenbankservers (MariaDB)

    sudo apt install mariadb-server mariadb-client


    1.2.1 Secure Install MariaDB

    Mit folgendem Befehl legt ihr ein root-Passwort sowie Sicherheitseinstellungen für MariaDB fest.

    sudo mysql_secure_installation

    Es folgen jetzt einige Fragen.

    Die erste Frage nach dem aktuellen Root-Passwort könnt ihr einfach mit <ENTER> bestätigen, da bisher noch keins existiert.

    Die nächste Frage, ob ein neues Root-Passwort angelegt werden soll, bestätigt ihr mit <Y> Gebt dann 2x (blind) euer neues Passwort ein.

    Die folgenden Fragen:

    „Remove anonymous users“

    „Disallow root login remotely “

    “Remove test Database and access to it” “Reload privilege tables now”

    könnt ihr alle mit <ENTER> bestätigen, da in allen Fällen Ja (großes Y) vorausgewählt ist.


    1.2.2 User und Passwort für den Datenbankserver erstellen

    Da ihr euch nicht als root in MariaDB einloggen könnt, legt ihr jetzt noch einen User und ein Passwort an.

    Dieses müsst ihr euch merken, da es bei jedem Zugriff auf den Datenbankserver per PhpMyAdmin benötigt wird. Gebt folgenden Befehl ein, um in die Einstellungen von MariaDB zu gelangen.

    sudo mysql -u root

    Mit den folgenden Befehlen erstellt ihr nun einen Benutzer und vergebt ein Passwort

    CREATE USER 'user'@'localhost' IDENTIFIED BY 'Password';

    user und Password anpassen

    Nun gebt ihr dem Benutzer alle Rechte

    GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

    user anpassen

    Jetzt verlasst ihr die mysql-Einstellungen mit

    exit

    Den Apache2 einmal neustarten mit folgendem Befehl.

    sudo systemctl restart apache2


    1.3.0 Installation von PhpMyAdmin (Optional. PhpMyadmin wird für die Installation von Nextcloud nicht benötigt)

    Für die Installation von PhpMyAdmin wechselt ihr jetzt in das Verzeichnis, in das PhpMyAdmin installiert werden soll.

    cd /usr/share

    PhpMyAdmin herunterladen (aktuelle Version z.Zt. 5.1.1

    sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip

    ZIP-Datei entpacken

    sudo unzip /usr/share/phpMyAdmin-5.1.1-all-languages.zip

    Die .zip-Datei wird jetzt nicht mehr benötigt und kann gelöscht werden

    sudo rm /usr/share/phpMyAdmin-5.1.1-all-languages.zip

    Den entpackten Ordner umbenennen in “phpmyadmin”

    sudo mv /usr/share/phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin

    Die Konfigurationsdatei (phpmyadmin.conf) erstellen.

    sudo nano /etc/apache2/conf-available/phpmyadmin.conf

    Da die Datei noch nicht existiert, wird sie nun automatisch erstellt.

    In dem sich öffnenden leeren Dateifenster gebt ihr nun folgenden Code ein.

    Wenn ihr den Code dort eingefügt habt, könnt ihr die Datei mit <STRG> und <O> (O wie OTTO) und anschließendem <ENTER> speichern und mit <STRG> und <X> schließen.

    Jetzt aktiviert ihr PhpMyAdmin

    sudo a2enconf phpmyadmin

    Startet den Apache2 neu

    sudo systemctl restart apache2

    Jetzt könnt ihr PhpMyAdmin im Browser starten indem ihr die IP des Raspi eingebt gefolgt von /phpmyadmin

    Beispiel:

    http://192.168.xxx.xxx/phpmyadmin

    Für die Anmeldung nutzt ihr den User und das Passwort, welche ihr vorhin im Abschnitt 1.2.2 festgelegt habt.


    1.3.1 Beseitigung von Fehlermeldungen (Hinweise) in PhpMyAdmin

    In den letzten Versionen von PhpMyAdmin kommt es zu Fehlermeldungen.

    Diese könnt ihr sehen, wenn ihr phpmyadmin gestartet habt, dann stehen die am unteren Fensterrand.


    1.3.1.1 "Ab sofort muss ein geheimes Passwort zur Verschlüsselung in der Konfigurationsdatei gesetzt werden (blowfish_secret)"

    Kopieren der Datei config.sample.inc.php nach config.inc.php

    sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

    Diese öffnet ihr jetzt mit nano

    sudo nano /usr/share/phpmyadmin/config.inc.php

    Relativ weit oben findet ihr folgende Zeile

    $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

    Dort müsst ihr zwischen die beiden Hochkommas = ‘‘ ein Passwort aus mindestens 40 Zeichen setzen. Ihr braucht euch daran nie erinnern. (Sonderzeichen werden nicht unterstützt) Das sollte dann in etwa so aussehen

    $cfg['blowfish_secret'] = 'jszeunjdkiufjzrtloikdnjhzugdfrehsgdfertghz'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ Apache2 einmal neustarten

    sudo systemctl restart apache2

    und der Fehler ist weg.

    1.3.1.2 „Auf das $cfg['TempDir'] (./tmp/) kann nicht zugegriffen werden. PhpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam.“

    Erstelle ein Verzeichnis temp in /usr/share/phpmyadmin

    sudo mkdir /usr/share/phpmyadmin/temp

    Füge in der Datei /usr/share/phpmyadmin/config.inc.php am Ende folgende Zeile ein.

    Öffnet die Datei zum Bearbeiten

    sudo nano /usr/share/phpmyadmin/config.inc.php

    scrollt bis zum Ende und gebt folgende Zeile ein:

    $cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

    Apache2 einmal neustarten

    sudo systemctl restart apache2

    Sollte der Fehler jetzt noch vorhanden sein, setzte die Berechtigung nur für die Datei temp auf

    sudo chmod 777 /usr/share/phpmyadmin/temp

    Apache2 einmal neustarten

    sudo systemctl restart apache2


    1.3.13 Der phpMyAdmin-Konfigurationsspeicher ist nicht vollständig konfiguriert, einige erweiterte Funktionen wurden deaktiviert. Finden Sie heraus warum. Oder wechseln Sie in einer beliebigen Datenbank zum Tab „Operationen“, um die Einstellung dort vorzunehmen.

    Klickt auf den Link "Finden Sie heraus warum".

    Dann im nächsten Fenster auf „anlegen“


    1.4 Nextcloud herunterladen und entpacken

    sudo apt update && sudo apt full-upgrade

    Ist das beendet, wechselt ihr ins Verzeichnis, in das Nextcloud installiert wird.

    cd /var/www/html

    Nextcloud herunterladen (latest stable Version)

    Wichtiger Hinweis!

    Für ein 32 bit System bitte nicht die aktuellste Version, (latest.zip) sondern eine Version unterhalb von Version V.25.0.0

    Ab V. 25.0.0 sind ausdrücklich 64 bbit empfohlen.

    Die letzte Version vor 25.0.0 ist die Version nextcloud-24.0.6

    Hierzu die folgenden 3 Codezeilen ändern von latest.zip auf nextcloud-24.0.6.zip

    Releases

    Index of /server/releases

    sudo wget https://download.nextcloud.com/server/releases/latest.zip

    Nextcloud ZIP-Datei entpacken

    sudo unzip /var/www/html/latest.zip

    Die ZIP-Datei kann jetzt wieder gelöscht werden

    sudo rm /var/www/html/latest.zip

    Ordner umbenennen (nur erforderlich, wenn ihr einen anderen Namen haben wollt, cloud oder mycloud oder…..)

    sudo mv /var/www/html/nextcloud /var/www/html/Wunschname

    Den Namen könnt ihr frei wählen. Je nachdem wie ihr ihn anschließend aufrufen wollt. Der Name muss in der Url mit angegeben werden.

    z.B. https://eure.domain.de/nextcloud

    Die index.html unter /var/www/html löschen

    sudo rm /var/www/html/index.html

    Den Eigentümer und die Gruppe für den Nextcloud-Ordner ändern auf www-data

    sudo chown -R www-data:www-data /var/www/html/nextcloud

    1.4.1 Pfad für Datenverzeichnis festlegen

    Als nächstes legt ihr nun den Speicherort für euer Nextcloud Datenverzeichnis fest. Dieses sollte sich nicht im Root-Verzeichnis des Webservers befinden.

    Hierdurch erspart ihr euch ein nachträgliches Verschieben. Als Beispiel legt ihr einen neuen Ordner an unter /NC

    Solltet ihr das Verzeichnis auf eine extrene Festplatte auslagern wollen, muss diese natürlich vorher gemountet sein.

    Mounten der Festplatte

    Die Festplatte an den Raspi anschließen.

    mit sudo blkid die PARTUUID auslesen

    Die steht unter sdx1 ganz am Ende der Zeile

    Beispiel:

    ./dev/sdb1: UUID="8D54-B01A" BLOCK_SIZE="512" TYPE="ext4" PARTUUID="b78de09d-6f19-45fa-94dd-49742a0793c7"

    Dann sudo nano /etc/fstab eingeben

    In der Datei die dann geöffnet wird, fügt ihr am Ende folgende Zeile an.

    Nur mit den Cursortasten navigieren. Nicht mit der Maus

    PARTUUID=<PARTUUID> /NC ext4 defaults,noatime,nofail 0 2

    Beispiel:

    PARTUUID=27f5bc43-02 /NC ext4 defaults,noatime,nofail 0 2

    Die PARTUUID und das Filesystem anpassen.

    Den Editor beenden mit STRG+O (Otto)

    Mit ENTER das Speichern bestätigen.

    Dann mit STRG +X den Editor schliessen.

    Als Dateisystem empfehle ich eine mit ext4 formatierte Platte.

    Falls die Partition in ext4 umformatiert werden soll,

    sudo mkfs.ext4 /dev/sdx1

    Jetzt den Mountpoint erstellen

    sudo mkdir /NC

    Den Pi einmal rebooten

    [tt]sudo reboot

    Nach dem erneuten Einloggen prüfen, ob die Platte gemountet ist.

    lsblk

    Dann sollte hinter sdx1 unter Mountpoint /NC stehen.

    Dann ändert ihr den Eigentümer und die Gruppe auf www-data

    sudo chown -R www-data:www-data /NC

    1.4.2 Datenbank mit User und Passwort erstellen

    Jetzt müsst ihr speziell für Nextcloud einen Datenbank-user und eine zugehörige Datenbank anlegen. Dieses ist für die Installation von Nextcloud ab Version 17.0.2 zwingend erforderlich.

    sudo mysql -u root

    CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'Passwort';

    CREATE DATABASE nextcloud;

    GRANT ALL PRIVILEGES on nextcloud.* to 'nc_user'@'localhost' IDENTIFIED BY 'Passwort';

    flush privileges;

    quit

    nc-user und Passwort jeweils anpassen.


    1.4.3 Nextcloud installieren und erster Start

    Öffnet euren Browser und gebt folgende Adresse ein.

    http://ip eures pi/nextcloud

    Dann öffnet sich folgende Eingabemaske

    Unter “Administrator Konto anlegen” könnt ihr einen Administrator und ein Passwort frei festlegen. (Das Admin-Passwort muss min. 10 Zeichen enthalten)

    Unter “Datenverzeichnis” gebt ihr das unter Punkt 1.4.1

    festgelegte Verzeichnis an.

    In diesem Beispiel /NC mit angehängtem /data

    Also /NC/data

    Unter “Datenbank einrichten” müsst ihr die Daten genauso eingeben, wie bei der Einrichtung der Datenbank unter 1.4.2

    Dann bestätigt ihr mit “Installatiion abschließen.

    Die Einrichtung dauert ein paar Minuten

    .

    Wenn die Anmeldemaske erscheint, das Fenster einmal schließen, und mit http://IP des Pi/nextcloud erneut öffnen.

    Dann ganz normal mit User und Passwort anmelden


    1.4.4 Nextcloud Fehlermeldungen

    Nach der Installation kommt es leider zu einigen Fehlermeldungen.

    Ich erkläre euch hier, wie ihr diese durch entsprechende Einstellungen loswerdet.

    Diese Fehlermeldungen werden angezeigt, wenn ihr in Nextcloud oben rechts auf euer Kontosymbol klickt, dann auf Einstellungen, links in der Mitte unter Verwaltung auf Übersicht.


    1.4.4.1 Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB. Der PHP-OPcache ist nicht richtig konfiguriert.

    Als erstes solltet ihr die Datei php.ini sichern, um sie bei einem Fehler wiederherstellen zu können.

    sudo cp /etc/php/7.3/apache2/php.ini /etc/php/7.3/apache2/php.ini.old

    Öffnet die Datei php.ini

    sudo nano /etc/php/7.3/apache2/php.ini Version (7.3 / 7.4)anpassen

    Sucht dort mit <STRG> und <W> nach “memory_limit” und gebt hier einen Wert von 512M ein.

    memory_limit = 512M

    Dann sucht nach „opcache“ und gebt bei folgenden Zeilen die entsprechenden Werte ein. Bei allen diesen Zeilen muss das Semikolon am Anfang entfernt werden.

    Code
    opcache.enable=1
    opcache.enable_cli=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.memory_consumption=128
    opcache.save_comments=1

    Datei speichern und schließen. Apache neustarten. Jetzt sollte der Fehler weg sein.

    1.4.4.2 Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden.

    Nextcloud config.php bearbeiten

    sudo nano /var/www/html/nextcloud/config/config.php

    Scrollt in der Datei nach unten und gebt oberhalb der letzten schließenden Klammer folgenden Code ein:

    'memcache.local' => '\OC\Memcache\APCu',

    Die Datei speichern und schließen Dann öffnet ihr die php.ini Version auf die installierte Version anpassen

    sudo nano /etc/php/7.3/apache2/php.ini

    und tragt ganz am Ende folgenden Code ein.

    apc.enable_cli=1

    Tragt den Befel ebenfalls in der Datei /etc/php/7.3/mods-available/apcu.ini (Version anpassen) ein.

    Datei speichern und schließen Apache neustarten

    systemctl restart apache2

    und auch diese Fehlermeldung sollte verschwunden sein.


    1.4.4.3 Der Strickt Transport-Security http-Header ist nicht auf mindestens 15552000 Sekunden eingestellt……

    Erst nach der Installation von letsencrypt

    Öffnet die Datei .htaccess im Nextcloud Verzeichnis

    sudo nano /var/www/html/nextcloud/.htaccess

    Und tragt ganz am Ende folgenden Code ein#

    Header set Strict-Transport-Security "max-age=15552000; includeSubDomains;

    Datei speichern und schließen Dann öffnet ihr die ssl.conf-Datei

    sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

    Gebt dort folgenden Code ein

    Code
    <IfModule mod_headers.c>
    Header always add Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
    </IfModule>

    Datei speichern und schließen

    Headers aktivieren

    sudo a2enmod headers

    Apache neustarten

    sudo systemctl restart apache2

    Und der Fehler ist auch Geschichte.

    1.4.4.4 Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/caldav" aufzulösen.

    Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/carddav" aufzulösen. Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/webfinger” aufzulösen. Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/nodeinfo” aufzulösen.

    Diese Meldungen erscheinen, wenn die Nextcloud-Dateien und Ordner nicht direkt im Webroot-Verzeichnis (var/www/html) liegen sondern in einem Unterverzeichnis wie z.b. /var/www/html/nextcloud

    Tragt in der Datei

    sudo nano /etc/apache2/apache2.conf

    ganz am Ende folgende Zeilen ein. (Ordner "nextcloud" anpassen)

    Code
    Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
    Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
    Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger 
    Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

    Apache2 einmal neustarten

    sudo systemctl restart apache2

    1.4.4.5 PHP configuration option output_buffering must be disabled

    sudo nano /etc/php/7.3/apache2/php.ini

    Php-Version anpassen

    In der Zeile 220 "output_buffering = 4096"

    eine Raute einfügen

    #output_buffering = 4096

    1.4.4.6 Dem Modul php-imagick fehlt die SVG-Unterstützung.

    sudo apt install libmagickcore-6.q16-6-extra

    Bei jeder neuen Version können neue Fehlermeldungen hinzukommen, das sind Meldungen über Aktionen, die nicht automatisch ausgeführt werden, weil die je nach Datenbestand eine Weile in Anspruch nehmen können.

    Die Beschreibung zur Fehlerbehebung steht normalerweise im Fehlertext. Dieses möchte ich aber noch detaillierter beschreiben.

    Wechselt in das Verzeichnis eurer Nextcloud z.B.

    cd /var/www/html/nextcloud

    gebt dann im Terminalfenster den in der Fehlermeldung genannten Befehl mit vorangestelltem:

    sudo -u www-data php (code aus der Fehlermeldung) ein und der Fehler wird nach erfolgreichendem Durchlauf verschwunden sein.

    1.4.4.7 Dein Webserver ist nicht ordnungsgemäß für die Auflösung von "/nextcloud/ocm-provider/" eingerichtet..................

    Das liegt daran, dass bei der V. 27.1.2 ein Verzeichnis "ocm-provider fehlt.

    https://help.nextcloud.com/t/verzeichniss…handen/171621/2

    Behebung:

    nextcloud-27.1.1.zip downloaden und unzippen.
    Das Verzeichnis "ocm-provider" nach /var/www/html/nextcloud kopieren.
    apache2 einmal restarten und die Meldung ist weg.

    Sollte danach noch eine weitere Meldung existieren

    Fehler in den Protokollen seit 25. Januar 2024

    Fehler in der /data/nextcloud.log

    Code
    ArgumentCountError: Too few arguments to function OCA\CloudFederationAPI\Capabilities::__construct(), 1 passed in /var/www/html/nextcloud/ocm-provider/index.php on line 34 and exactly 2 expected at /var/www/html/nextcloud/apps/cloud_federation_api/lib/Capabilities.php#39 

    In der Datei ..../nextcloud/ocm-provider/index.php folgende Zeilen ausblenden. (/* am Anfang und */ am Ende)


    1.4.4.8 Der Server hat keine konfigurierte Startzeit für das Wartungsfenster................

    Das ist zwar nur ein Hinweis, lässt sich aber leicht ändern.
    In der Datei ..../nextcloud/config/config.php eine Zeile einfügen.
    'maintenance_window_start' => '1',

    Das bedeutet, dass Zeitintensive Hintergrundaufgaben zwischen 01 und 05 Uhr (UTC) ausgeführt werden. (1 + 4 Std)


    1.4.4.9 Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.

    Zu beheben mit einem Eintrag in die config.php von Nextcloud.

    Folgende Zeile einfach am Ende vor der letzten schließenden Klammer einfügen und den apache neustarten
    Code

    Code
    'memcache.locking' => '\OC\Memcache\APCu',


    1.5.0 Letsencrypt installieren

    Um ein SSL Zertifikat von Letsencrypt zu installieren, benötigt ihr erst einmal einen Domainnamen, mit dem euer Server erreichbar ist.

    Da ihr sicherlich keine statische IP-Adresse habt, benötigt ihr eine dynamische Adresse (DynDNS) diese gibt es bei vielen Anbietern kostenlos. (z.B. noip, clickIP, Securepoint DynDNS…….

    Alternativ könnt ihr auch bei einem Hoster kostengünstig eine Domain (z.b. euerName.de) bestellen. Diese ist dann in der Regel innerhalb von 24 Std registriert und aktiv.

    Zum Beispiel Strato bietet eine Domain mit Email-Adresse und Dyndns-Service bereits für unter einen Euro/Monat an. Im ersten Jahr sogar nur 0.08 Euro/Monat.

    Da euer Router in den meisten Fällen nach 24 Std. eine neue Ip erhält, gibt dieser die aktuelle IP an den DynDnsDienst weiter. Eure DynDns-Domain wir dann mit der aktuellen IP verknüpft und somit ist euer Server immer erreichbar.

    Wenn ihr zum Beispiel eine Fritzbox habt, könnt ihr DynDns dort einrichten. Die Fritzbox gibt dann bei einer Änderung der IP diese automatisch an den DynDns-Dienst weiter.

    Wenn euer Router diese Funktion nicht unterstützt, könnt ihr DynDns auch auf eurem Raspi einrichten. Wenn ihr nun eine aktive DynDns-Adresse habt, könnt ihr Letsencrypt einrichten.

    Als erstes müsst ihr jetzt auf eurem Router die Ports 80 (http) und 443 (https) auf euren Pi weiterleiten. Loggt euch dann via Putty auf eurem Pi ein. Gebt dann folgende Befehle ein.

    sudo apt install python3-certbot-apache

    sudo certbot --apache

    Jetzt müsst ihr ein paar Daten eingeben. Zunächst eure Emailadresse. (erforderlich)

    Eure DynDns-Domain (z.B. eure.domain.de)

    Das Letsencrypt Zertifikat hat eine Gültigkeitsdauer von 3 Monaten. Es wird aber automatisch rechtzeitig vor Ablauf erneuert. Ich glaube sogar monatlich.

    Jetzt müsst ihr in der config.php von Nextcloud noch eine Einstellung vornehmen, damit die Domain von Nextcloud als vertrauenswürdig eingestuft wird.

    sudo nano /var/www/html/nextcloud/config/config.php

    Dort scrollt ihr runter bis zu trusted_Domains und gebt unter der letzten Domain (ipadresse von eurem Pi) eure Domain ein.

    Code
    trusted_domains' =>
    array (
    0 => 'localhost‘,
    1 => '192.168.xxx.xxx‘,
    2 => 'deine.domain.de',

    Nur ssl aktivieren für Zugriff aus dem Heimnetz per IP-Adresse oder Hostname

    Für den Zugriff aus dem Heimnetz (ohne dynDns) reicht es aus, nur ssl zu aktivieren.

    (einige Apps z.B. DAV... verlangen zwingend eine ssl Verbindung)

    Code
    sudo a2enmod ssl
    sudo a2ensite default-ssl
    sudo systemctl restart apache2

    Ich hoffe, ich konnte euch mit dieser Anleitung weiterhelfen

    Bei Fragen einfach einen Thread im entsprechenden Unterforum aufmachen.

  • Nextcloud mit Apache2, MariaDB, PhpMyAdmin und Letsencrypt? Schau mal ob du hier fündig wirst!

  • Kleiner Tipp:

    Ich würde Nextcloud nicht als ZIP Datei runterladen und installieren, sondern gleich die Webinstallation nutzen, die automatisch die aktuellste Version runterlädt:

    Code
    cd /pfad_zu_eurem_http_verzeichnis/ (Beispiel: cd /var/www/html)
    sudo wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
    sudo chown www-data:www-data setup-nextcloud.php
    sudo chmod 0755 setup-nextcloud.php

    Diese Befehle nacheinander ausführen lassen.

    Dann den Wizard per Browser starten:

    http://hostname_oder_ip_eures_RasPis/setup-nextcloud.php

    Wer zusätzlich noch Collabora Online (oder jetzt intern auch Nextcloud Office genannt) nutzen möchte, muss das Raspberry Pi OS in der 64Bit Version installieren.

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye

    2 Mal editiert, zuletzt von Outlaw (4. Juli 2022 um 17:04) aus folgendem Grund: Nachtrag

  • Was ist, wenn ich beim granten aller Rechte auf die Nextclou-DB versehentlich die variable nc-user drin gelassen habe (den aber vorher NICHT erstellt habe) Kann das zu Problemen führen?

  • Was mir noch aufgefallen ist:

    In der Anleitung wird phpMyAdmin 5.1.1 manuell installiert, jedoch PHP 7.3/7.4.

    Wer diese alten PHP Versionen einsetzt, kann auch die alte phpMyAdmin Version (4.x.x) per Paketinstallation nutzen.

    Die neue 5.x.x (aktuell 5.2.0) Version ist erst ab PHP 8.0 und höher erforderlich.

    Ich würde die Anleitung auf die aktuellen Versionen von PHP 8.1 und phpMyAdmin 5.2.0 aktualisieren.

    Wer PHP 8.1 noch nicht vertraut, kann auch auf PHP 8.0 zurückgreifen.

    Für PHP 8.1 muss man zwar (noch) die Repository etwas anpassen aber Google hilft.

    Dann würde ich auch noch Redis als weiteren Cache mit einbinden, kann das Ganze auch noch etwas beschleunigen, vor allem, wenn man vorhat Collabora Online (Nextcloud Office) mit zu installieren.

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye

  • Ich würde die Anleitung auf die aktuellen Versionen von PHP 8.1 und phpMyAdmin 5.2.0 aktualisieren.

    Wer PHP 8.1 noch nicht vertraut, kann auch auf PHP 8.0 zurückgreifen.

    Vergiss dabei aber nicht, dass diese Anleitung sich an absolute Anfänegr richtet.

    PHP 7.4 ist die offizielle version für RaspberryPiOS Bullseye. Buster 7.3

    Selbst PHP 8 .0 ist aufgrund geänderter Pakete und Abhängigkeiten nicht ganz unproblematisch im Zusammenspiel von Bullseye und Nextcloud.

    Wenn du als "erfahrenerer User lieber PHP 8.0 oder höher nutzen möchtest, bleibt dir das überlassen.

    Ich werde aber an der Anleitung nichts ändern, weil die Konstellation perfekt funktioniert und ausgiebig getestet ist.

  • Ok, Deine Ansicht.

    Ich habe eine Anleitung dazu geschrieben und alles aktualisiert und PHP 8.x ist eigentlich keineswegs problematisch mit Bullseye und Nextcloud.

    Zudem sind wir, was Nextcloud angeht, bereits bei 24.0.2, was bei einer skriptgesteuerten Installation automatisch installiert wird.

    Und "meine Konstellation" (Bullseye 64 Bit Lite, PHP 8.1, MariaDB 10.x, phpMyAdmin 5.2.0, Collabora Online, APCu, redis, ....) laufen mehrfach einwandfrei, wurden ausgiebig getestet und werden von Zeit zu Zeit aktualisiert.

    Wer sich nicht traut, kann ja ältere Versionen der Pakete nutzen aber muss es nicht aber hier Probleme wegen PHP 8.x anzuführen ist halt nicht richtig.

    Daher werde ich meine Anleitungen immer ändern, soweit es was Neues gibt. ;) :D

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye

    2 Mal editiert, zuletzt von Outlaw (9. Juli 2022 um 23:47)

  • Guten Abend,

    erst einmal vielen Dank für die wirklich ausführliche Anleitung!

    Leider scheint sich bei mir irgendwo ein Fehler eingeschlichen zu haben und so bekomme ich beim Aufruf meiner Site folgende Meldung.

    Ich habe eine Weile im Netz gesucht und mehrere erfolglose Versuche mit a2dissite, a2ensite, a2dismod und a2enmod durchlaufen.

    Nun bin ich wieder hier im Forum gelandet mit der Hoffnung, einen Tipp oder Lösungsvorschlag zu erhalten.

    VG

  • Ohje, wer lesen kann ist klar im Vorteil, so steht es auch in deiner Anleitung...

    In dieser Schreibweise funktioniert es direkt, Dankeschön!

    Dann werde ich mich nun belesen wie ich eine automatische Weiterleitung einrichte.

    Da die Cloud via DNS auch außerhalb meines Hausnetzes erreichbar ist und ich beim Aufruf ohne den Zusatz /nextcloud die zuvor erwähnte Meldung erscheint!?

    Edit:

    Die Lösung für mein Problem war diese Anleitung Webserver - Umleitung auf Nextcloud erstellen.

    2 Mal editiert, zuletzt von Bockwurstfinger (29. August 2022 um 10:49) aus folgendem Grund: Lösung

  • Hallo,

    keine Frage nur eine Info:

    Ich habe gestern Nextcloud aktuallisiert auf die neuste Version: Nextcloud Hub 3 25.0.0

    Jetzt wird empfohlen ein 64-Bit System zu betreiben:

    Zitat

    It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit! For further details read the documentation page about this ↗.

    In dem Link aus dem Zitat stehen die empfohlenen aktuellen Systemanforderungen.

    Falls gerade jemand dabei ist, alles neu aufzusetzen könnte er ja gleich ein 64-Bit System aufsetzen. Ich bin noch bei 32-Bit und weis nicht daher nicht in wie weit sich die Änderung bemerkbar machen.

    Ich hoffe ich schreibe hier nichts, das schon in der Anleitung steht. Ich habs zumindest nicht gefunden.

    Grüße

    Dennis

    🎧 Strahlend soll die Zukunft sein, gut wir werden seh'n, ob wir wie ein Strahlemann lächelnd untergeh'n.  🎧

  • Ich hoffe ich schreibe hier nichts, das schon in der Anleitung steht.

    Danke für die Info. :danke_ATDE:

    Mir war das nicht bekannt,

    Ich habe jetzt gerade auch auf die Version 25.0.0 upgedatet.

    Da ich die 64bit Version nutze, kommt auch bei mir der Hinweis nicht.

    Was die Systemanforderungen angeht nutze ich eh PHP 7.4 ....(Bullseye). Daher ist alles ok.

    Ich werde das in mein Tutorial übernehmen.

  • Ich habe das jetzt in das Tutorial übernommen.

    Zum einen vor der Installation von Apache und PHP,

    und einmal vor dem Download von Nextcloud, da sonst ohne Änderung des Downloadbefehls die "latest.zip" (v25.x.x) downgeloadet wird.

    Das muss dann vor dem Download mit der gewünschten Version abgeändert werden.

    Link für die Releases ist vorhanden.

    Die letzte Version vor V. 25.0.0 ist die "nextcloud-24.0.6.zip"

  • Ich habe gestern Nextcloud aktuallisiert auf die neuste Version: Nextcloud Hub 3 25.0.0


    Jetzt wird empfohlen ein 64-Bit System zu betreiben:

    Das hatte ich gestern auch gelesen, nachdem ich den hier gen. Fehler hatte: https://help.nextcloud.com/t/cannot-acces…cloud-25/147823

    Da ich im Frühjahr erst von Buster zu Bullsey gewechselt habe, kann ich jetzt im Winter, wenn die Abende lang sind, von Bullseye 32-Bit auf Bullseye 64-Bit wechseln, dann bleibt man im Flow. ;)

    Hattest Du auch den Fehler, der im Link gen. ist?

  • Bei mir gab es in der Systemübersicht nur zwei Meldungen bezgl. fehlender indices und filecache-bigint

    Das ist aber normal bei einem Update, weil solche Sachen nicht automatischwährend es Updates korrigiert werden, da das je nach Datenbankgröße eine Weile dauern kann.

    Das lässt sich aber leicht beheben mit

    sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices

    sudo -u www-data php /var/www/html/nextcloud/occ db:convert-filecache-bigint

  • der andere Fehler war 'schlimmer

    Da ich im Frühjahr erst von Buster zu Bullsey gewechselt habe

    Upgedatet oder Neuinstallation?

    Ersteres ist nicht unbedingt empfehlenswert.

  • Ich hatte neu installiert, mit allem drum und dran.

    Ok, da ich wie gesagt 64 bit nutze, habe ich keine Probleme mit der V25.

    Dennis89 hatte ja bis auf den Hinweis auf 64 bit auch kein Problem.

    Somit kann ich dazu nichts sagen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!