Anpassungen von Anwendungen nach Debian Bookworm Upgrade: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(21 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Upgrade von z.B. Debian Buster zu Debian Bookworm ==
== Wer ist für was verantwortlich? ==


Die Hostmaster aktualisieren das Betriebssytem.
Die Hostmaster aktualisieren das Betriebssytem.  


Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Dazu sind keine besonderen Rechte erforderlich, und können daher vom Mitglied selber vorgenommen werden, wenn die technischen Fertigkeiten vorliegen.
Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden.  


Gerne kann das Mitglied einen WoD Auftrag erteilen, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Einfach eine E-Mail an service@ schreiben, und die Anwendung nennen, und in welchem Benutzer die Anwendung läuft.
Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein [https://www.hostsharing.net/service/webmaster-on-demand/ Webmaster On Demand (WoD)] Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.


Diese Seite soll Anleitungen teilen, wie man die eigene Anwendung selber wieder zum Laufen bringt.
Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.


== Anpassungen an Python Anwendungen ==


{{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 ("Bookworm") nicht mehr zur Verfügung!}}
== Anpassungen an PHP-Anwendungen ==


Nach dem Upgrade müssen die meisten Python Anwendungen angepasst werden.
{{Textkasten|gelb|Achtung|Unter Debian 12 ("Bookworm") ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.<br/>
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}
 
Wenn die PHP-Anwendung nach dem Upgrade nicht mehr läuft, Fehler anzeigt oder sogar eine ungeeignete PHP-Version moniert sind zwei Fälle zu unterscheiden.


Dann muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python Version von Debian, bei Bookworm ist das Python 3.11
=== Fall: Verwendung der Standard-PHP-Version ===


Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]
Die Anwendung lief vormals mit der PHP-Version 7.4 (alter Standard) und verweigert nun mit der PHP-Version 8.2 (neuer Standard) den Dienst.
Dann kann über das Admin-Tool HSAdmin in den Domain-Einstellungen explizit die Verwendung der PHP-Version 7.4 für die betroffene Domain oder Subdomain festgelegt werden.


Falls bereits mit pyenv eine andere Python Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Evtl. ist das aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.
=== Fall: Verwendung einer individuellen PHP-Version ===


Es sollte in der .profile oder .bash_profile diese Variable gesetzt werden:
Die Anwendung lief vormals einer individuellen PHP-Version und verweigert den Dienst.


  export PYTHONIOENCODING=utf-8
Zunächst empfiehlt es sich aus der .htaccess-Datei zur Domain den Verweis auf die individuelle PHP-Version zu entfernen, indem sinngemäß folgende Zeilen entfernt werden:


=== Änderungen beim Einsatz von Passenger und Python ===
<syntaxhighlight lang=apache>
Falls Passenger zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert: Es können nicht mehr <code>PassengerPython</code> oder <code>PassengerFriendlyErrorPages</code> in der <code>.htaccess</code> Datei gesetzt werden. Das führt zu einem 500er Fehler.
# nano doms/meinedomain.de/.htaccess


Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der <code>.htaccess</code> Datei gesetzt werden:
# diese Zeilen entfernen:
AddType application/x-httpd-php81 .php
Action application/x-httpd-php81 /fastcgi-bin/phpstub81
</syntaxhighlight>
 
Wenn die Anwendung dann noch immer nicht lauffähig ist, kann die PHP-Version wie im vorangehenden Abschnitt beschrieben, über das Admin-Tool HSAdmin gewechselt werden.
 
=== Allgemeine Empfehlung ===
 
Es empfiehlt sich generell, (nicht nur) PHP-Anwendungen auf dem aktuellen Stand zu halten (Updates) und nach Möglichkeit, die Standard-PHP-Version im Admin-Tool HSAdmin auszuwählen.
 
== Anpassungen an Python-Anwendungen ==
 
{{Textkasten|gelb|Achtung|Python 2.7 steht unter Debian 12 ("Bookworm") nicht mehr zur Verfügung!<br/>
Das betrifft z.B. auch mailman2}}
 
Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.


    SetEnv PYTHONPATH /home/pacs/xyz00/users/meinuser/meinprojekt
Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11


Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. <code>/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3</code>
Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: [[Eigenes_Python_installieren#Installation_mit_pyenv]]


(Versionsnummer, User und Paket im Pfad anpassen)
Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.


== Anpassungen an PHP Anwendungen ==
In der .profile oder .bash_profile sollte diese Variable gesetzt werden:


{{Textkasten|gelb|Achtung|Unter Debian 12 ("Bookworm") ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.<br/>
<syntaxhighlight lang=bash>
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.}}
export PYTHONIOENCODING=utf-8
</syntaxhighlight>


Eventuell müssen die phpstubs angepasst werden.
=== Änderungen beim Einsatz von Python mit Passenger ===


* Wenn bisher nur der voreingestellte phpstub verwendet wurde, lief die Seite bisher auf PHP 7.4. Nun würde sie auf PHP 8.2 laufen. Falls die Anwendung das nicht unterstützt, muss der phpstub für 7.4 kopiert werden, und in der .htaccess Datei die Zeilen eingesetzt werden:
Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter <code>PassengerPython</code> oder <code>PassengerFriendlyErrorPages</code> in der <code>.htaccess</code>-Datei gesetzt werden. Das führt zu einem 500er Fehler.


  nano doms/meinedomain.de/.htaccess
Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der <code>.htaccess</code> Datei gesetzt werden:
          # diese Zeilen dort einsetzen:
          AddType application/x-httpd-php74 .php
          Action application/x-httpd-php74 /fastcgi-bin/phpstub74
  cp /usr/local/src/phpstub/phpstub74 doms/meinedomain.de/fastcgi-ssl


* Wenn bisher ein phpstub82 benutzt wurde, kann dieser nun gelöscht werden, und die Zeilen in der .htaccess Datei können gelöscht werden.
<syntaxhighlight lang=apache>
SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt
</syntaxhighlight>


* Wenn bisher ein anderer phpstub genutzt wurde, z.B. phpstub81, und die Seite nicht mit PHP 8.2 laufen würde, muss die aktualisierte Datei kopiert werden:
Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. <code>/home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3</code>, oder bei einem Virtual Environment: <code>/home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3</code>


  cp /usr/local/src/phpstub/phpstub81 doms/meinedomain.de/fastcgi-ssl
(Versionsnummer, User und Paket im Pfad anpassen)


== Anpassungen an Ruby Anwendungen ==
== Anpassungen an Ruby-Anwendungen ==


Die meisten Ruby Anwendungen werden mit rbenv betrieben. Dieses funktioniert dann nicht mehr, wegen Inkompatibilitäten mit der openssl Bibliothek.  
Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek.  


Daher muss die rbenv Umgebung neu installiert werden. siehe [[RubyRBEnv]]
Daher muss die rbenv-Umgebung neu installiert werden, siehe [[RubyRBEnv]].


Es müssen auch meistens die Ruby Gems neu installiert werden.
Es müssen auch meistens die Ruby Gems neu installiert werden.


  # erst löschen
<syntaxhighlight lang=bash>
  rm -Rf ~/.gem/
# erst löschen
  rm -Rf ~/.bundle
rm -Rf ~/.gem/
  rm -Rf ~/.local/state/gem/
rm -Rf ~/.bundle
 
rm -Rf ~/.local/state/gem/
  # dann installieren
 
  cd meineapp # z.B. zammad
# dann installieren
  export RAILS_ENV="production"
cd meineapp # z.B. zammad
  bundle install
export RAILS_ENV="production"
bundle install
</syntaxhighlight>


Falls '''Passenger''' zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in <code>doms/meinedomain.de/.htaccess</code> stehen, und müssen dort auskommentiert werden.
=== Änderungen beim Einsatz von Ruby mit Passenger ===
Momentan müssen die Hostmaster die entsprechenden Einträge in die Apache-Konfigurationsdatei für die Domain einfügen. Wir arbeiten daran, das auch über HSAdmin zu ermöglichen.
 
Falls '''Passenger''' zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in <code>doms/meinedomain.de/.htaccess</code> stehen. Sie müssen dort auskommentiert werden.
 
In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Ruby Version verwendet werden soll.
Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie <code>/home/pacs/xyz00/users/example/.rbenv/versions/3.2.3/bin/ruby</code>.
 
Es kann nicht mehr <code>PassengerAppEnv staging</code> verwendet werden, sondern es muss <code>SetEnv RAILS_ENV staging</code> verwendet werden.


== Anpassungen an Node.js Anwendungen ==
== Anpassungen an Node.js-Anwendungen ==
Es muss das Verzeichns <code>.nvm</code> im Home Verzeichnis gelöscht werden, und <code>node_modules</code> im Projekt.
Es muss das Verzeichns <code>.nvm</code> im Home Verzeichnis gelöscht werden, und <code>node_modules</code> im Projekt.


Zeile 84: Zeile 110:


Dann <code>yarn install</code> bzw andere Befehle ausführen, um die Node Module wieder zu installieren.
Dann <code>yarn install</code> bzw andere Befehle ausführen, um die Node Module wieder zu installieren.
=== Änderungen beim Einsatz von Node.js mit Passenger ===
Falls '''Passenger''' zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in <code>doms/meinedomain.de/.htaccess</code> stehen, und müssen dort auskommentiert werden.
In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Node Version verwendet werden soll.
Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. <code>/home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node</code>.


== Anpassungen an Java Anwendungen ==
== Anpassungen an Java Anwendungen ==
=== Eigenes Java JDK installieren ===
 
Auf Debian Buster lief lief Java 11. Auf Debian Bookworm steht Java 17 zur Verfügung.
=== Eigenes Java Development Kit (JDK) installieren ===
 
In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.


Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.
Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.
Zeile 95: Zeile 130:
Ein Beispiel für JDK 11:
Ein Beispiel für JDK 11:


  mkdir ~/bin
<syntaxhighlight lang=bash>
  cd bin
mkdir ~/bin
  wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
cd bin
  tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz
</syntaxhighlight>


Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/
Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/


Dann muss z.B. im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:
Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:


    JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11
<syntaxhighlight lang=bash>
JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11
</syntaxhighlight>


=== Eigenen Tomcat installieren ===
=== Eigenen Tomcat installieren ===
Zeile 116: Zeile 155:
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi
Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi


    mv tomcat tomcat.bak
<syntaxhighlight lang=bash>
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
mv tomcat tomcat.bak
    mv apache-tomcat-9.0.84 tomcat
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
    cp tomcat.bak/conf/server.xml tomcat/conf/
mv apache-tomcat-9.0.84 tomcat
    cp tomcat.bak/conf/setenv.sh tomcat/conf/
cp tomcat.bak/conf/server.xml tomcat/conf/
    cp -R tomcat.bak/webapps tomcat
cp tomcat.bak/conf/setenv.sh tomcat/conf/
cp -R tomcat.bak/webapps tomcat
</syntaxhighlight>


Darauf achten, ob noch weitere Konfigurationsdateien kopiert werden müssen, und Anpassungen an der context.xml und web.xml übernommen werden müssen.
Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.


== Anpassungen an Redis Diensten ==
== Anpassungen an Redis-Diensten ==


Falls ein Redis Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.
Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.


Gegebenenfalls müssen in der Datei <code>redis.conf</code> die relativen Pfade zu absoluten Pfaden geändert werden, wenn die nicht schon bereits absolute Pfade sind (z.B. <code>logfile</code>, <code>unixsocket</code>, <code>dir</code>)
Gegebenenfalls müssen in der Datei <code>redis.conf</code> relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für <code>logfile</code>, <code>unixsocket</code>, <code>dir</code>).


== Aktualisierung von MongoDB ==
== Aktualisierung von MongoDB ==

Aktuelle Version vom 17. Juni 2024, 11:04 Uhr

Wer ist für was verantwortlich?

Die Hostmaster aktualisieren das Betriebssytem.

Die Mitglieder sind für den Betrieb der eigenen Anwendungen im Userspace verantwortlich. Da dazu keine besonderen Rechte erforderlich sind, können die notwendigen Anpassungen vom technisch versierten Mitglied selbst vorgenommen werden.

Wenn das Mitglied die Anpassungen nicht selbst vornehmen kann oder will, kann ein Webmaster On Demand (WoD) Auftrag erteilt werden, damit ein Hostmaster eine Anwendung wieder zum Laufen bringt. Schreibt bitte einfach eine E-Mail mit einem Auftrag an service@ und nennt die Anwendung, um die es geht, und in welchem Benutzer sie läuft oder um welche Domain/Subdomain es sich handelt.

Auf dieser Seite teilen wir Anleitungen, wie man die eigene Anwendung selbst wieder zum Laufen bringt.


Anpassungen an PHP-Anwendungen

Achtung

Unter Debian 12 ("Bookworm") ist PHP 8.2 die Default Version. PHP 7.4 bleibt installiert.
Auf Anfrage stellen wir auch PHP 8.0 und PHP 8.1 zur Verfügung.


Wenn die PHP-Anwendung nach dem Upgrade nicht mehr läuft, Fehler anzeigt oder sogar eine ungeeignete PHP-Version moniert sind zwei Fälle zu unterscheiden.

Fall: Verwendung der Standard-PHP-Version

Die Anwendung lief vormals mit der PHP-Version 7.4 (alter Standard) und verweigert nun mit der PHP-Version 8.2 (neuer Standard) den Dienst. Dann kann über das Admin-Tool HSAdmin in den Domain-Einstellungen explizit die Verwendung der PHP-Version 7.4 für die betroffene Domain oder Subdomain festgelegt werden.

Fall: Verwendung einer individuellen PHP-Version

Die Anwendung lief vormals einer individuellen PHP-Version und verweigert den Dienst.

Zunächst empfiehlt es sich aus der .htaccess-Datei zur Domain den Verweis auf die individuelle PHP-Version zu entfernen, indem sinngemäß folgende Zeilen entfernt werden:

# nano doms/meinedomain.de/.htaccess

# diese Zeilen entfernen:
AddType application/x-httpd-php81 .php
Action application/x-httpd-php81 /fastcgi-bin/phpstub81

Wenn die Anwendung dann noch immer nicht lauffähig ist, kann die PHP-Version wie im vorangehenden Abschnitt beschrieben, über das Admin-Tool HSAdmin gewechselt werden.

Allgemeine Empfehlung

Es empfiehlt sich generell, (nicht nur) PHP-Anwendungen auf dem aktuellen Stand zu halten (Updates) und nach Möglichkeit, die Standard-PHP-Version im Admin-Tool HSAdmin auszuwählen.

Anpassungen an Python-Anwendungen

Achtung

Python 2.7 steht unter Debian 12 ("Bookworm") nicht mehr zur Verfügung!
Das betrifft z.B. auch mailman2


Nach dem Upgrade müssen die meisten Python-Anwendungen angepasst werden.

Dazu muss das Virtual Environment gelöscht und neu angelegt werden, am besten mit der Standard Python-Version von Debian 12 (Bookworm). Das ist Python 3.11

Falls die Anwendung noch nicht mit Python 3.11 zurecht kommt, kann mit pyenv auch eine ältere Python-Version, z.B. 3.10 installiert werden: Eigenes_Python_installieren#Installation_mit_pyenv

Falls bereits mit pyenv eine eigene Python-Version installiert worden war, sollte diese gelöscht und nochmals installiert werden. Eventuell ist eine selbst installierte Python-Version aber auch nicht mehr nötig, und es kann mit der Version Python 3.11 vom Betriebssystem gearbeitet werden.

In der .profile oder .bash_profile sollte diese Variable gesetzt werden:

export PYTHONIOENCODING=utf-8

Änderungen beim Einsatz von Python mit Passenger

Das Verhalten von Passenger auf Debian 12 Bookworm hat sich geändert: Es können nicht mehr die Parameter PassengerPython oder PassengerFriendlyErrorPages in der .htaccess-Datei gesetzt werden. Das führt zu einem 500er Fehler.

Falls ein Virtual Environment benutzt wird, sollte folgender Eintrag in der .htaccess Datei gesetzt werden:

SetEnv PYTHONPATH /home/pacs/xyz00/users/example/meinprojekt

Desweiteren sollte der Pfad zum Python-Binärprogramm in den Eigenschaften der Domain in HSAdmin konfiguriert werden, unter PassengerPython: z.B. /home/pacs/xyz00/users/example/.pyenv/versions/3.9.18/bin/python3, oder bei einem Virtual Environment: /home/pacs/xyz00/users/example/meinprojekt/.venv/bin/python3

(Versionsnummer, User und Paket im Pfad anpassen)

Anpassungen an Ruby-Anwendungen

Die meisten Ruby Anwendungen werden mit rbenv betrieben. Das funktioniert nach dem Upgrade auf Debian 12 Bookworm nicht mehr, wegen Inkompatibilitäten bei der OpenSSL-Bibliothek.

Daher muss die rbenv-Umgebung neu installiert werden, siehe RubyRBEnv.

Es müssen auch meistens die Ruby Gems neu installiert werden.

# erst löschen
rm -Rf ~/.gem/
rm -Rf ~/.bundle
rm -Rf ~/.local/state/gem/

# dann installieren
cd meineapp # z.B. zammad
export RAILS_ENV="production"
bundle install

Änderungen beim Einsatz von Ruby mit Passenger

Falls Passenger zum Einsatz kommt: Das Verhalten von Passenger hat sich geändert. Einträge mit Passenger dürfen nicht mehr in doms/meinedomain.de/.htaccess stehen. Sie müssen dort auskommentiert werden.

In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Ruby Version verwendet werden soll. Es kann entweder die vorinstallierte Ruby Version verwendet werden, oder eine Ruby Version unter einem Pfad wie /home/pacs/xyz00/users/example/.rbenv/versions/3.2.3/bin/ruby.

Es kann nicht mehr PassengerAppEnv staging verwendet werden, sondern es muss SetEnv RAILS_ENV staging verwendet werden.

Anpassungen an Node.js-Anwendungen

Es muss das Verzeichns .nvm im Home Verzeichnis gelöscht werden, und node_modules im Projekt.

Dann Node wieder neu installieren, siehe NodeJS.

Dann yarn install bzw andere Befehle ausführen, um die Node Module wieder zu installieren.

Änderungen beim Einsatz von Node.js mit Passenger

Falls Passenger zum Einsatz kommt, da hat sich das Verhalten von Passenger geändert. Die Einträge mit Passenger dürfen nicht mehr in doms/meinedomain.de/.htaccess stehen, und müssen dort auskommentiert werden.

In HSAdmin kann im Dialog "Domain ändern" eingestellt werden, welche Node Version verwendet werden soll. Es kann entweder die vorinstallierte Node Version verwendet werden, oder eine Node Version unter dem Pfad z.B. /home/pacs/xyz00/users/example/.nvm/versions/node/v20.11.0/bin/node.

Anpassungen an Java Anwendungen

Eigenes Java Development Kit (JDK) installieren

In Debian Buster lief Java 11. Unter Debian Bookworm steht Java 17 zur Verfügung.

Für Anwendungen, die weiterhin Java 11 benötigen, kann es pro User oder pro Paket installiert werden.

Ältere JDKs können hier als Binary für Linux/x64 heruntergeladen werden: https://jdk.java.net/archive/

Ein Beispiel für JDK 11:

mkdir ~/bin
cd bin
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
tar xzf openjdk-11.0.2_linux-x64_bin.tar.gz

Eine weitere zuverlässige Quelle für eine freie Distribution des OpenJDK ist die Eclipse Foundation: https://adoptium.net/de/

Dann muss im Tomcat (z.B. bin/setenv.sh) oder in der systemd Service Datei die Variable JAVA_HOME gesetzt werden:

JAVA_HOME=/home/pacs/xyz00/users/meinuser/bin/jdk-11

Eigenen Tomcat installieren

Bei Debian Buster lief Tomcat 9, auf Debian Bookworm steht Tomcat 10 zur Verfügung. Die beiden Versionen sind nicht kompatibel. Tomcat 9 implementiert Java EE 8; bei Tomcat 10 ist es Jakarta EE 9. Aus lizenzrechtlichen Gründen wurden alle Java-Packages aus den Java-EE-Spezifikationen von javax. nach jakarta. umbenannt.

Für eigene Anwendungen empfehlen wir, die Software entsprechend anzupassen und neu zu kompilieren. Für Software aus anderen Quellen kann das Tool javax2jakarta diesen Schritt in der Regel leisten.

Wenn die Migration nicht möglich oder nicht gewünscht ist, kann leicht ein vollständiger Tomcat 9 pro User installiert werden.

Ältere Versionen von Tomcat sind hier zu finden: https://tomcat.apache.org/download-90.cgi

mv tomcat tomcat.bak
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz
mv apache-tomcat-9.0.84 tomcat
cp tomcat.bak/conf/server.xml tomcat/conf/
cp tomcat.bak/conf/setenv.sh tomcat/conf/
cp -R tomcat.bak/webapps tomcat

Bitte darauf achten, ob noch weitere Konfigurationsdateien kopiert werden und Anpassungen an der context.xml und web.xml übernommen werden müssen.

Anpassungen an Redis-Diensten

Falls ein Redis-Dienst läuft, bitte kontrollieren, ob er noch richtig funktioniert.

Gegebenenfalls müssen in der Datei redis.conf relative Pfade in absolute Pfade geändert werden, falls dies nicht bereits der Fall ist (z.B. für logfile, unixsocket, dir).

Aktualisierung von MongoDB

MongoDB wird bei uns nicht vom Betriebssystem bereitgestellt.

Falls MongoDB verwendet wird, müssen neue Binaries heruntergeladen werden. Dabei ist die Version für Ubuntu 22.04 zu verwenden, da es keine Version für Debian 12 (Bookworm) gibt: siehe https://www.mongodb.com/try/download/community