Anwendungsbeispiel: Erstellen einer eigenen Internet-Homepage

Wie schon im vorigen Unterpunkt Eine kleine Einführung in Linux) besprochen, wird das Linux Betriebssystem auch oft als Internet-Server betrieben. In diesem Unterpunkt werden wir auf den Themenbereich der Linux Internet-Server eingehen und eine eigene kleine Homepage erstellen. Mit der Bereitstellung Ihres eigenen Login-Accounts für die Rechner des Instituts für Theoretische Physik der Goethe-Universität haben Sie auch die Möglichkeit erhalten, eine eigene Homepage zu erstellen und Jederman zur Verfügung zu stellen (bitte lesen Sie hierfür auch die Allgemeine Nutzungsordnung für die Informationsverarbeitungs- und Kommunikations-Infrastruktur der Johann Wolfgang Goethe-Universität). Wir werden einige der besprochenen Linux-Shell-Befehle anwenden und um die Erstellung einer eigenen Internet-Homepage zu realisieren. Zunächst werden wir jedoch einige Dateien, die wir für die Homepage und später für den Unterpunkt Programmiersprachen benötigen, mittels des Secure File Transfer Protocol (SFTP) auf den Rechner des ITP übertragen.

Das Secure File Transfer Protocol (SFTP)

Das Secure File Transfer Protocol (SFTP) ermöglicht es, Daten in verschlüsselter Form von einem Rechner auf einen anderen Rechner zu übertragen. Wir hatten im Unterpunkt "Login auf die Rechner des ITP" bereits die verschlüsselte Verbindung zwischen zwei Rechnern über ein unsicheres Netzwerk mittels einer SSH-Verbindung kennengelernt. Mittels einer SFTP-Verbindung kann man in ähnliche Weise eine Verbindung zu einem anderen Rechner aufbauen, hierbei ist es jedoch auch möglich Dateien von einem Rechner auf den anderen zu übertragen. Alternativ gibt es auch noch den Befehl scp, der hier jedoch nicht besprochen werden soll.

Nehmen wir z.B. an, dass Sie mehrere Daten haben, die Sie von Ihrem Heimrechner auf Ihren Account am ITP übertragen möchten. Es ist hierbei oft hilfreich, die jeweiligen Dateien und Ordner in einem komprimierten zip-File zu bündeln und dann lediglich diesen zip-File mittels einer SFTP-Verbindung zu übertragen. Laden Sie sich bitte hierfür zunächst den folgenden zip-File auf Ihren eigenen Computer herunter und speichern diesen in einem Ordner (Download zip-File). Öffnen Sie dann ein Terminal in diesem Verzeichnis. In der nebenstehenden Abbildung können Sie in der obersten Zeile sehen, dass ich z.B. den zip-File auf meinem Heimrechner in das Verzeichnis "PPROG/zipfile/" gespeichert habe. Nun bauen Sie die SFTP-Verbindung mittels sftp pp-ss22-...@itp.uni-frankfurt.de auf und nachdem man sein Passwort eingetippt hat, befindet man sich auf einem Rechner des ITP. Die Verwendung von SFTP ist sehr ähnlich einer SSH-Verbindung, jedoch gibt es einige Unterschiede (z.B. steht bei einer SFTP-Verbindung immer am Anfang "sftp>"). Einige der Linux Befehle funktionieren jedoch in gleicher Weise wie bei einer SSH-Verbindung. Mit ls kann man sich den Dateiinhalt des aktuellen Verzeichnisses ansehen. Wir möchten jetzt das heruntergeladene zip-File in den Ordner "VPROG" übertragen. Wir wechseln zunächst das Zielverzeichnis (cd VPROG/) und können dann den zip-File mittels des SFTP-Befehls put ./zipfile.zip von unserem Heimrechner auf den ITP-Server übertragen. Mit dem Befehl get könnten wir in ähnlicher Weise Daten vom ITP-Server zum Heimrechner transferieren. Mit dem Befehl ls können wir danach überprüfen, ob der übertragene File auch wirklich übertragen wurde und mittels des Befehls exit beendet man die SFTP-Verbindung.

Wir möchten nun den zip-File auf dem ITP-Computer extrahieren (entzippen) und stellen dafür zunächst wieder eine normale SSH-Verbindung her (siehe obere linke Abbildung). Nun gehen wir in den Ordner "VPROG" und entzippen den zip-File mittels des Befehls unzip zipfile.zip. Es erscheinen dann nacheinander mehrere Terminalausgaben (siehe rechte Abbildung) und danach kann man mittels des Befehls ls sehen, welche Dateien und Verzeichnisse extrahiert worden sind. Man erkennt, dass vier neue Ordner erzeugt wurden (C++, HTML, Jupyter_Notebooks und Python_Skripts). In den Ordnern C++, Jupyter_Notebooks und Python_Skripts befinden sich Programme in den jeweiligen Programmiersprachen. Der Ordner HTML beinhaltet dagegen eine HTML-Datei. HTML-Dokumente (Hypertext Markup Language (Hypertext-Auszeichnungssprache)) sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt. Wir gehen in das HTML-Verzeichnis cd HTML/ und sehen mittels des Befehls ls, dass sich eine HTML-Datei mit dem Namen "index.html" in ihm befindet (siehe untere linke Abbildung).

index.html
<!DOCTYPE html>
<html>
  <head>
    <title>Homepage von ....</title>
  </head>
  <body>
  Hallo, du sch&ouml;ne Welt!
  </body>
</html>

In der rechten oberen Abbildung ist der Textinhalt dieser HTML-Datei dargestellt. Eine HTML-Datei besteht gewöhnlich aus einem "head" und "body" Bereich. Im "head"-Bereich stehen gewöhnlich allgemein relevante Angaben der Datei und der "body"-Bereich beinhaltet diejenigen Texte, Bilder oder Links, die man auf der HTML-Seite darstellen möchte. Die dargestellte HTML-Datei stellt lediglich den Text "Hallo, du schöne Welt!" dar, wobei der deutschsprachige Umlaut "ö" als HTML-Umlaut "&ouml;" dargestellt wurde (siehe HTML Zeichenreferenz). Sie verwenden nun diese einfache HTML-Datei als Vorlage Ihrer eigenen Internet-Homepage. Hierzu kopieren Sie die Datei "index.html" in Ihr eigenes "public_html"-Verzeichnis (cp index.html ~/public_html/). Bitte gehen Sie dann mittels cd in das "public_html"-Verzeichnis und überprüfen Sie mit ls -la ob die Zugriffsrechte der Datei "index.html" so gesetzt sind, dass sie für alle lesbar ist.

Nun können Sie überprüfen, ob Ihre Homepage auch im Internet für jeden zugänglich ist, indem Sie einen Internet-Browser öffnen und als http-Adresse "http://itp.uni-frankfurt.de/~pp-ss22-.../" eingeben (hierbei benutzen Sie bitte die Nummer Ihres Login-Accounts für "pp-ss22-..."). Die nebenstehende Abbildung auf der linken Seite zeigt die Homepage für den Account "pp-ss22-01". Falls die Zugriffsrechte der Datei "index.html" nicht für alle lesbar sind, erhalten Sie das Bild in der rechten oberen Abbildung.

Gerne können Sie nun die "index.html"-Datei modifizieren und z.B. Ihren Namen angeben, Bilder einbinden (siehe Einbindung mit img) und Links zu anderen Internetseiten integrieren (siehe Referenzieren in HTML). Hierzu können Sie entweder einen textbasierten Editor (z.B. VIM) innerhalb der SSH-Verbindung benutzen und direkt auf dem ITP-Computer die Datei verändern, oder Sie können die Datei zunächst auf ihrem Heimcomputer mit einem komfortableren grafischen Editor bearbeiten (z.B. mit gedit, Kate oder Geany) und dann per SFTP auf den ITP-Server übertragen. Weiteres zur Sprache HTML finden Sie z.B. unter selfhtml Tutorials.