gesamte Domain weiterleiten per .htaccess

Wer seine gesamte Webseite umgezogen hat, setzt per .htaccess ein Weiterleitung von der alten Domain (example1.com) zur neuen Domain (example2.com)
Damit werden sämtliche Anfrage von der alten Domain auf die neue Domain permanent umgeleitet:

# Weiterleitung von example1.com nach example2.com
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTP_HOST} !^https://example1.com [NC]
 RewriteRule ^(.*)$ https://example2.com/$1 [R=301,L]
</IfModule>

Java auf Debian

Installation Java

Für Java-Anwendungen stellt Debian folgende Pakete bereit:

  • openjdk-17-jre
    Komplette Java-Laufzeitumgebung – notwendig für die Ausführung von Java-Programmen mit grafischer Oberfläche und Webanwendungen. Verwendet Hotspot JIT.
  • open-17-jre-headless
    ist eine minimale Java-Laufzeitumgebung unter Nutzung von Hotspot JIT – notwendig für die Ausführung von Java-Programmen ohne grafische Oberfläche.

die aktuellen Pakete können mit apt search gesucht werden:

# apt search openjdk

Für Debian Bullseye:

# apt install openjdk-17-jre-headless

die aktuelle Version wird mit -version geprüft:

$ java -version
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.2+8-Debian-1deb11u1, mixed mode, sharing)

Falls mehrere Java-Versionen installiert wurden, kann zwischen den Versionen gewechselt werden. In diesem Beispiel haben wir die Möglichkeit zwischen java-11 und java-17 zu wechseln.

# update-alternatives --config java
Es gibt 2 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen).

  Auswahl      Pfad                                         Priorität Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      automatischer Modus
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manueller Modus
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      manueller Modus

Drücken Sie die Eingabetaste, um die aktuelle Wahl [*] beizubehalten,
oder geben Sie die Auswahlnummer ein: AUSWAHL

Mittels Debian zu einem Server verbinden

Hinweis: Eine weitere Möglichkeit besteht in einer ssh-Verbindung via Terminal oder mittels remote (Xrdp) für Windows 10 und Windows 11.

Hier wird die Möglichkeit einer Verbindung via grafischer Oberfläche erklärt:

01. Hier am Beispiel mit dem Mate-Desktop: Wähle Orte > Zu Server verbinden…

02. und gib die Zugangsdaten ein:

Alternativ kann im Dateibrowser direkt der Pfad zum Server eingegeben werden:
sftp://username@123.456.7.890:22/var/www/html

sftp          => Protokoll
username      => allgemein gültiger User am Linuxserver
123.456.7.890 => IP Adresse vom Server
22            => Portnummer ssh (hier mit dem Standardport)
/var/www/html => Zielverzeichnis auf dem Server

03. danach bist du mit dem Server verbunden. Melde dich immer mit dem normalen Benutzer am Server an. Debian verbiete von sich aus die Anmeldung mittels root und das nicht zu unrecht. Wer im Dateibrowser unter Linux auf seinem Server per root herumschwirrt, brauch eine Menge Mut. Zu schnell ist eine Datei oder ein ganzer Ordner gelöscht oder irrtümlicherweise verschoben, nur weil man sich verklickt hat.

04. Um die Anmeldung von root zu ermöglichen, editiere die Datei /etc/ssh/sshd_config

# nano /etc/ssh/sshd_config

entferne das Kommentarzeichen bei # PermitRootLogin prohibit-password und überschreibe die Zeile mit PermitRootLogin yes
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

starte anschliessend den Service neu:

# /etc/init.d/ssh restart

Webserver (mit XAMPP)

XAMPP ist eine leicht zu installierende Apache-Distribution, die MariaDB, PHP und Perl enthält.
Gehe auf http://www.apachefriends.org/de/download.html

Dieses Tutorial bezieht sich auf die Installation von XAMPP unter Debian GNU/Linux und wurde unter Bullseye getestet.

Fährst Du mit der Maus über eine Prüfsumme (md5 oder sha1), wird dir diese angezeigt. Nach erfolgreichem Download kann die Prüfsumme ausgelesen werden:

$ sha1sum xampp-linux-*-installer.run
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN  xampp-linux-*-installer.run

Ist die Prüfsumme korrekt, kann mit der Installation begonnen werden. Die Datei wird zuerst ausführbar gemacht:

$ chmod 755 xampp-linux-*-installer.run

und anschliessend die Installationsroutine gestartet:

# ./xampp-linux-*-installer.run

Der XAMPP-Installer verlangt root-Rechte. Tippe dazu su – ein:

su -
Passwort: 
./xampp-linux-x64-8.1.1-2-installer.run
----------------------------------------------------------------------------
Welcome to the XAMPP Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want 
to install. Click Next when you are ready to continue.

XAMPP Core Files : Y (Cannot be edited)

XAMPP Developer Files [Y/n] : Y

Is the selection above correct? [Y/n]: Y

----------------------------------------------------------------------------
Installation Directory

XAMPP will be installed to /opt/lampp
Press [Enter] to continue:

----------------------------------------------------------------------------
Setup is now ready to begin installing XAMPP on your computer.

Do you want to continue? [Y/n]: Y

----------------------------------------------------------------------------
Please wait while Setup installs XAMPP on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 #########################################

----------------------------------------------------------------------------
Setup has finished installing XAMPP on your computer.

XAMPP kann nun via Brower aufgerufen werden. Tippe dazu in die Adresszeile localhost ein.

Die Dienste müssen vorab jedoch gestartet werden. Xampp heisst unter Linux korrekterweise lampp:

# /opt/lampp/lampp start
Starting XAMPP for Linux 8.1.1-2...
XAMPP: Starting Apache.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
/opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.
XAMPP: Starting MySQL.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.
XAMPP: Starting ProFTPD.../opt/lampp/share/xampp/xampplib: Zeile 22: netstat: Kommando nicht gefunden.
ok.

Die Meldung von netstat kann getrost ignoriert werden oder mit dem Paket net-tools behoben werden.

# apt install net-tools

jetzt startet XAMPP «fehlerfrei»

# /opt/lampp/lampp start
Starting XAMPP for Linux 8.1.1-2...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...ok.

Beendet wird XAMPP mit:

# /opt/lampp/lampp stop
Stopping XAMPP for Linux 8.1.1-2...
XAMPP: Stopping Apache...ok.
XAMPP: Stopping MySQL...ok.
XAMPP: Stopping ProFTPD...ok.

>>> HINWEIS <<<
Das Verzeichnis von XAMPP befindet sich unter
/opt/lampp/htdocs
Um dauerhaft Besitzer dieses Verzeichnis zu werden, können die Besitzerrechte mit chown geändert werden. Tippe dazu:

# chown -cR BENUTZER /opt/lampp/htdocs

ein.

Prüfsummen (sha256)

Wer eine Datei aus dem Internet lädt, wird oft auf die Prüfsumme (digitaler Fingerabdruck) angesprochen. Diese Summe garantiert, dass es sich beim Download tatsächlich um das Original handelt und keine kompromittierte Datei vorliegt:

Die folgende Prüfsumme wird mit sha256sum

$ sha256sum DATEINAME.zip
830bbca930d5e417ae4249931838e2c70ca0365044268fa0ede75e33aff677de  DATEINAME.zip

geprüft. Stimmt die Summe überein, liegt die korrekte Datei vor. Weitere Prüfsummen sind md5 (md5sum) und sha1 (sha1sum). Das Vorgehen ist analog diesem Beispiel.

md5sum Dateiname oder sha1sum Dateiname

C++ unter Linux

Mit diesem kleinen Tutorial wirst Du in wenigen Minuten ein wenig besser verstehen, was eine Binärdatei und eine Klartextdatei (hier der Quellcode) ist. Als Compiler nehmen wir hier g++ oder alternativ gcc. Selbstverständlich müssen diese Pakete bereits installiert sein. Erstelle einen geeigneten Ordner und erstelle mit Nano eine leere Datei:

$ mkdir meinc++
$ nano -w zweizahlen.cc

#include 

int main(){
    int summand1, summand2;

    std::cin >> summand1 >> summand2;

    std::cout << summand1 << " + " << summand2
              << " = "
              << summand1 + summand2
              << std::endl;
}

diese Datei speichern wir nun unter zweizahlen.cc ab und müssen sie nur noch kompilieren:

$ g++ zweizahlen.cc -o zweizahlen

vereinfacht gesagt erstellt der Kompilier aus unserem Quellcode nun eine Binärdatei, welche im Terminal ausgeführt werden kann.

$ ./zweizahlen
14
414
14 + 414 = 428

das soeben kompilierte Programm kann mit:

# cp zweizahlen /usr/bin

in das Binary Verzeichnis kopiert werden und steht ab jetzt immer zur Verfügung.

Remote mittels Xrdp

Das Paket xrdp erlaubt eine Remote-Verbindung vom Windows-PC direkt auf den Debian-Rechner. Installiere das Paket und weise den User xrdp der Gruppe ssl-cert zu:

# apt install xrdp
# adduser xrdp ssl-cert

Wähle die Remotdesktopverbindung unter Windows und gib die IP-Adresse an.

Nach erfolreicher Anmeldung kann mit dem Client-PC auf den Linux-Rechner zugegriffen werden. Die genaue IP vom Server kann per ip address ermittelt werden.

GRUB reparieren (z.B. Dualboot mit Windows 10)

error: no such partition. Entering rescue mode...
grub rescue>

Falls Du diese Meldung auf Deinem Debiansystem bekommst, hast Du den Grub-Bootloader zerschossen. Jetzt wird es an der Zeit, die Installations-CD oder den USB-Stick von Debian einzusetzten. Lege die CD oder den USB-Stick ein, boote ab diesem Medium und wähle dann im Installationsmenu:

Advanced option > Rescue mode

 

Du solltest Dein System kennen, bevor Du dich an die Reparatur von GRUB wagst. Der Rettungsmodus wird Dir ganz oben links angezeigt!

  • Sprache, Land und Ort wählen
  • Netzwerk (Kabel, WLAN) wählen.
  • Rechnername wählen (spielt keine Rolle, was hier gewählt wird)
  • Domain-Name wählen (leer lassen)
  • root-Dateisystem wählen! (In diesem Beispiel liegt root auf /dev/sdb2)

 

01. Das Wählen des richtigen Root-Dateisystems ist relevant! Falls Du das falsche Root-Dateisystem wählst, führt dies unweigerlich zu einer Fehlermeldung!

 

02. falls der Mountpunkt /boot auf / liegt, ist das Einbinden von /boot sparat nicht nötig und diese Meldung wird nicht angezeigt. Liegt /boot jedoch auf einer separaten Partition, bindet der Rettungsmodus die Partition ein.
/boot ist jedoch nicht mit dem Mountpoint /boot/efi zu verwechseln! /boot/efi wird auf /boot erst später eingehängt.

 

03. Wähle mit den Pfeiltasten nun auf Eine Shell in /dev/sdXY ausführen

 

04. GRUB neu installieren

Alternative I
Es kann natürlich auch «Den GRUB-Bootloader neu installieren» gewählt werden. Bei Linux führen manchmal verschiedene Wege zum Ziel und es kann mehrere Lösungen geben.

Alternative II – (EFI-System)
Wir befinden uns nun in der Shell der Rettungsaktion. Installieren nun das Paket grub-efi

# apt install grub-efi

und binde die EFI-Bootpartition ein.

# mount /dev/sdb2 /boot/efi

Installiere jetzt den Bootloader in das Wurzelverzeichnis. Bevor der Bootloader neu geschrieben wird, kann mit lsblk überprüft werden, ob alle Partitionen korrekt eingehängt sind:

$ lsblk

 

05. Installiere den Bootloader in das Wurzelverzeichnis:
Der Bootloader wird nicht auf die einzelne Partition geschrieben. Liegt Dein root-System zum Beispiel auf /dev/sdb2, wird der Bootloader nicht auf die Partition, sondern auf die Platte geschrieben. Hier wäre dies also /dev/sdb

/dev/sdb2 ≠ /dev/sdb

# grub-install /dev/sdb

führe ein update-grub aus. Dies ist zwar nicht unbedingt nötig, gibt uns aber ein aussagekräftiges Feedback, ob alles geklappt hat.

# update-grub
GRUB-Konfigurationsdatei wird erstellt …
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Linux-Abbild gefunden: /boot/vmlinuz-4.19.0-9-amd64
initrd-Abbild gefunden: /boot/initrd.img-4.19.0-9-amd64
Windows Boot Manager auf /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi gefunden
Adding boot menu entry for EFI firmware configuration
erledigt

Verlasse die Shell mit:

# exit

06. und wähle System neu starten aus.

07. Ausgabe lsblk für dieses Beispiel! Auf sda liegt Windows 10 und auf sdb Debian. Die EFI-Boot Partition von Debian ist nicht separat eingebunden, wie unter Punkt 2 beschrieben wird. sda1 und sdb1 sind hier zwei EFI-Boot-Partitionen.

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   100M  0 part /boot/efi
├─sda2   8:2    0    16M  0 part 
├─sda3   8:3    0 296.1G  0 part 
└─sda4   8:4    0 634.8G  0 part 
sdb      8:16   0 232.9G  0 disk 
├─sdb1   8:17   0   487M  0 part 
├─sdb2   8:18   0  68.2G  0 part /
├─sdb3   8:19   0     8G  0 part [SWAP]
└─sdb4   8:20   0 156.3G  0 part /home/yuna/media

ein *.vdi-File einhängen (mount per qemu)

Um ein *.vdi-File in Linux einzuhängen, benötigen wir qemu. Installiere das Paket mit:

# apt-install qemu
# apt-install qemu-utils

HINWEIS: Werden die Partitionen nicht angezeigt, entferne die Sicherungspunkte in der VirtualBox.

Jetzt starten wir das Modul nbd und hängen das VDI-File unter /mnt ein. Der genaue Einhängepunkt kann natürlich individuell gewählt werden. Achte darauf, die richtige Windowspartition einzuhängen.

# modprobe nbd
# qemu-nbd -c /dev/nbd0 /pfad/zum/vdi-File/'windows xy'
# ls -l /dev/ | grep nbd*
brw-rw----  1 root disk       43,   0 Jan 29 16:09 nbd0
brw-rw----  1 root disk       43,   1 Jan 29 16:09 nbd0p1
brw-rw----  1 root disk       43,   2 Jan 29 16:09 nbd0p2
brw-rw----  1 root disk       43,   3 Jan 29 16:09 nbd0p3
brw-rw----  1 root disk       43,  32 Jan 29 16:09 nbd1
brw-rw----  1 root disk       43, 320 Jan 29 16:09 nbd10
brw-rw----  1 root disk       43, 352 Jan 29 16:09 nbd11
brw-rw----  1 root disk       43, 384 Jan 29 16:09 nbd12
brw-rw----  1 root disk       43, 416 Jan 29 16:09 nbd13
brw-rw----  1 root disk       43, 448 Jan 29 16:09 nbd14
brw-rw----  1 root disk       43, 480 Jan 29 16:09 nbd15
brw-rw----  1 root disk       43,  64 Jan 29 16:09 nbd2
brw-rw----  1 root disk       43,  96 Jan 29 16:09 nbd3
brw-rw----  1 root disk       43, 128 Jan 29 16:09 nbd4
brw-rw----  1 root disk       43, 160 Jan 29 16:09 nbd5
brw-rw----  1 root disk       43, 192 Jan 29 16:09 nbd6
brw-rw----  1 root disk       43, 224 Jan 29 16:09 nbd7
brw-rw----  1 root disk       43, 256 Jan 29 16:09 nbd8
brw-rw----  1 root disk       43, 288 Jan 29 16:09 nbd9
# mount /dev/nbd0p2 /mnt
# umount /mnt
# qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected

Filme aufnehmen mit SimpleScreenRecorder (Linux)

Was früher die klassische VHS-Kassette erledigte, übernimmt unter Linux der SimpleScreenRecorder. Damit lassen sich Spielfilme 1:1 aufnehmen.

Der SimpleScreenRecorder ist für Linux erhältlich. Hier wird explizit das Paket von Linux beschrieben und ist nicht mit der Windowsversion zu verwechseln! Installiere SimpleScreenrecorder via der Paketverwaltung:

# apt install simplescreenrecorder

Bevor die Aufnahme gestartet wird, werden die wichtigsten Eigenschaften der Aufnahme abgefragt:

Danach kann auch gleich mit der Aufnahme begonnen werden:

SimpleScreenRecorder: Zwei Monitore erleichtern die Aufnahme enorm. Während hier rechts der Spielfilm ab einem Stream läuft, kann auf dem linken Monitor die Aufnahme überwacht werden. Diese Methode liefert ein sehr gutes Resultat. Einziger Nachteil: ein Spielfilm von zwei Stunden dauert auch exakt zwei Stunden, bis dieser auf der Platte ist. Die Quelle spielt dabei keine Rolle. Ob direkt mittels VLC-Player (CD, DVD) oder ab TV-Stream direkt im Browser. SimpleScreenrecorder nimmt den gesamten Monitor auf. Wird versehentlich mit der Maus in den Aufnahmebereich gefahren, wird dies ohne Nachfrage ebenfalls aufgenommen. Desshalb ziehe ich die Methode mit zwei Bildschirmen vor. (Screenshot von Alita: Battle Angel)

Finales zuschneiden

Mit dieser Methode landet ein .mkv File auf dem Rechner. Nun möchtest Du Start- und Endpunkt vom Film sekundengenau schneiden Dazu verwenden wir hier ffmpeg:

# apt install ffmpeg

Öffne nun das soeben aufgenommene File in einem Videoplayer und bestimme den Anfangs- und Endpunkt vom Film. Hier in diesem Beispiel wäre dies:

Anfang nach: 18 s
Ende nach: 1:58:22
Filmdauer: 1:58:04 oder 7084 s

mittels ffmpeg müssen wir die ersten 18 Sekunden vom Spielfilm wegschneiden. Die gesamte Länge von output.mkv beträgt genau 1:58:22. Davon ziehen wir die 18 Sekunden ab und kommen auf die gesamte Spielzeit von 1:58:04 oder 7084 Sekunden:

der Schalter -codec copy bewirkt, dass ffmpeg den Film nicht erneut codiert und beschleunigt das finale Zuschneiden enorm. In diesem Beispiel vergass ich nach Filmende die Aufnahme zu stoppen. Das output-File wurde desshalb rund 190 Minuten lang. Relevant beim Zuschneiden sind nur Anfangspunkt und Filmdauer. Wann fängt der Film an und wie lange dauert er? Mit diesen beiden Zeiten können wir dann den Film exakt zuschneiden. Mit dem Schieberegler (hier bei VLC) können diese Zeiten bequem bestimmt werden. output.mkv ist in diesem Beispiel ein wenig verwirrend. Tätsächlich entspricht hier jedoch output.mkv der Eingangsdatei, da ich simplescreenrecorder angewiesen habe, die Aufnahme als output.mkv zu speichern. Verwenden wir nun ffmpeg zum Schneiden, entspricht output.mkv tatsächlich der «Input»-Datei…
$ ffmpeg -i originaldatei.mkv -codec copy -ss 18 -t 7084 zugeschnittenedatei.mkv