Ubuntu Update auf 22.04 LTS

...und notwendige Nextcloud-Anpassungen

Veröffentlicht am 18. Januar 2023 -


Inhalt
    Add a header to begin generating the table of contents

    Sofern Sie auf Ihrem Server noch mit der PHP-Version 7.4.3 oder niedriger arbeiten, erscheint seit dem Release von Nextcloud in der Version 25.0.2 nach dem Update unter Sicherheits- & Einrichtungswarnungen folgender Hinweis: "Sie verwenden im Moment PHP 7.x.x. Wir empfehlen ein Upgrade ihrer PHP Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt."

    Höchste Zeit also, auf eine aktuellere und sichere PHP-Version zu updaten. Doch macht es nicht viel mehr Sinn, gleich auf die neue Ubuntu-Version 22.04 zu wechseln, die standardmäßig mit PHP 8.1 arbeitet? Wir finden schon, daher finden Sie hier eine Schritt für Schritt - Anleitung.

    Wichtig: Was zu beachten ist...

    Da ein Update immer mal schief laufen kann, legen Sie unbedingt vorher ein Backup Ihrer Daten und der Datenbank an, alternativ erstellen Sie ein Snapshot Ihres Servers, welchen Sie - sollten Probleme auftauchen - einfach wieder zurück spielen können.

    Das Update

    Auf unserem Server läuft derzeit Ubuntu 20.04.5 LTS (Focal Fossa) mit PHP 7.4.3 und nginx.

    Welche Version des OS auf Ihrem Server läuft können Sie mit dem Befehl cat /etc/os-release prüfen.

    Nachdem wir uns via SSH (bspw. mit PuTTY) auf unserem Server mit Rootrechten angemeldet haben, ist es ratsam für die folgenden Schritte mit sudo -i zunächst für diese Sitzung dauerhafte Rootrechte zu vergeben. Das erspart uns die ständige Eingabe des Befehls sudo.

    1. Schritt: Update der aktuellen Instanz

    Zunächst bringen wir unsere bestehende Installation mit apt update -y && apt upgrade -y auf den neuesten Stand. Danach starten wir mit reboot unseren Server neu, verlieren die Verbindung im SSH-Client und müssen uns anschließend dementsprechend neu anmelden und wiederum mit sudo -i dauerhafte Root-Rechte vergeben.

    2. Schritt: Update auf Ubuntu 22.04 LTS (Jammy Jellyfish)

    Mit dem Befehl apt install update-manager-core installieren wir den Update Manager. Um nun auf das Update des neuesten Ubuntu-Releases anzustoßen nutzen wir den Befehl do-release-upgrade -d. In diesem Schritt müssen wir einige Abfragen mehrmals mit y und Enter bestätigen.

    Unter anderem erkennt das automatische Update, dass wir eine Verbindung via SSH aufgebaut haben und startet einen sog. SSH daemon in Port 1022.

    Für den Fall, dass wir eine Firewall nutzen ist es ratsam, diesen Port vorher mit dem Befehl

    ufw allow 1022/TCP
    ufw reload

    zu öffnen. Außerdem fragt uns das Update nach der Berechtigung, einige Dienste während des Updates automatisch neuzustarten. Dieses bestätigen wir ebenfalls mit Yes.

    Als nächsten Schritt müssen wir ein keyboard-configuration auswählen, hier entscheiden wir uns natürlich für German.

    Falls eine Abfrage zur Datei '/etc/systemd/resolved.conf' folgen wir der Empfehlung des Updaters und behalten unsere Version der Datei, indem wir N für "Nein" eingeben.

    Genauso verfahren wir bei der Frage nach der "sshd-config". Hier beantworten wir die Abfrage "What do want to do about modified configuration file sshd_config?" mit keep the local version currently installed.

    Im Laufe des Updates sucht der Update Manager auch nach veralteten und nicht mehr benötigten Paketen, diese können wir bedenkenlos mit y entfernen.

    Zum Abschluss der Installation werden wir gefragt, ob wir den Server rebooten wollen, auch das bestätigen wir mit y. Unser SSH-Client schließt wieder die Verbindung und nachdem wir uns neu angemeldet und Rootrechte vergeben haben, können wir die nun installierte Version von Ubuntu erneut mit cat /etc/os-release prüfen. Wenn die Installation geklappt hat, sollte hier nun "Ubuntu 22.04.1 LTS" ausgegeben werden.

    Sofern im Laufe des Updates der Port 1022 freigegeben wurde, löschen wir die Regel nun mit ufw delete allow 1022/TCP wieder. Mittels apt autoremove --purge können wir anschließend prüfen, ob noch veraltete und nicht mehr benötigte Dateien vorhanden sind.

    3. Schritt: Notwendige Anpassungen

    Versuchen wir nun, unsere Nextcloud aufzurufen folgt der Schreck: 502 Bad Gateway. Das liegt daran, dass die nginx-Konfigurationsdateien nicht automatisch angepasst werden. Doch dieses ist schnell erledigt.

    cd /etc/nginx/sites-available/
    vim nextcloud

    In der bestehenden Datei machen wir einfach aus PHP 7.4 die PHP-Version 8.1

    upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/var/run/php/php8.1-fpm.sock;
    }

    Die Datei speichern wir anschließend mit :wq und starten mit systemctl restart nginx nginx neu.

    Nun sollte unsere Nextcloud wieder erreichbar sein. Ein Blick in die Adminstrationseinstellungen zeigt, dass der Eintrag über die veraltete PHP-Version verschwunden ist. Stattdessen finden sich dort nun aber neue Fehler, die wir aber ebenfalls schnell und einfach beheben können.

    Fehlerbehebung

    Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB

    Mit cd /etc/php/8.1/ wechseln wir in unserem SSH-Client zunächst in unser PHP-Verzeichnis.

    Mit dem vim-Editor bearbeiten wir nun nacheinander die beiden Dateien

    vim fpm/php.ini
    vim cli/php.ini

    Hier suchen wir jeweils nach dem Eintrag memory_limit und setzen diesen auf 512M.

    Nachdem wir die Dateien gespeichert haben starten wir wieder den Webserver und PHP neu.

    systemctl restart nginx
    systemctl restart php8.1-fpm

    Die Fehlermeldung ist verschwunden.

    PHP scheint zur Abfrage von Systemumgebungsvariablen nicht richtig eingerichtet zu sein. Der Test mit getenv("PATH") liefert nur eine leere Antwort zurück. Bitte schauen Sie in der Installationsdokumentation auf Hinweise zur PHP-Konfiguration, sowie die PHP-Konfiguration ihres Servers, insbesondere dann, wenn Sie PHP-FPM einsetzen.

    Auch dieser Fehler ist schnell behoben. Hierzu rufen wir mit cd /etc/php/8.1/fpm/pool.d/ zunächst unser PHP-Verzeichnis auf und bearbeiten mit dem Befehl vim www.conf die Konfigurationsdatei.

    Hier müssen wir den Abschnitt

    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp

    einkommentieren, indem wir das jeweilige Semikolon am Zeilenanfang entfernen. Nach einem Neustart von PHP mit systemctl restart php8.1-fpm sollte auch diese Fehlermeldung verschwunden sein. Der Abschnitt "Sicherheits- & Einrichtungswarnungen" in unserer Nextcloud-Instanz meldet: "Alle Überprüfungen bestanden."

    Installation fehlgeschlagen? Weitere Fehlermeldungen? Sie trauen sich die oben genannten Schritte nicht zu? Sie brauchen weitere Hilfe beim Update von Ubuntu?

    Sprechen Sie uns an! Wir helfen Ihnen gerne, Ihren Server auf den neuesten Stand zu bringen!

    Oder wir Rufen Sie an
    Invalid Number

    Full-Service-IT-Agentur aus Mülheim an der Ruhr
    Planung. Hosting. Design. SEO. Social Media.

    Nach oben scrollen