Projekt: Einfacher Server mit Linux einrichten: Unterschied zwischen den Versionen

Aus Datenschutz
Zur Navigation springen Zur Suche springen
Zeile 40: Zeile 40:
 
* Die fertigen Programme liegen in '''/usr/lib/cgi-bin'''.
 
* Die fertigen Programme liegen in '''/usr/lib/cgi-bin'''.
 
* Die Website liegt in '''/var/www/html'''.
 
* Die Website liegt in '''/var/www/html'''.
 
+
= Praxis =
 
== Ubuntu aktualisieren ==
 
== Ubuntu aktualisieren ==
 
Bevor wir beginnen, sollten wir sicherstellen, dass das System aktuell ist:
 
Bevor wir beginnen, sollten wir sicherstellen, dass das System aktuell ist:
 
<pre>sudo apt update && sudo apt upgrade -y</pre>
 
<pre>sudo apt update && sudo apt upgrade -y</pre>
________________________________________
+
== Apache-Webserver installieren ==
2. Apache-Webserver installieren
 
 
Apache ist der Webserver, der CGI-Skripte ausführen wird:
 
Apache ist der Webserver, der CGI-Skripte ausführen wird:
 
<pre>sudo apt install apache2 -y</pre>
 
<pre>sudo apt install apache2 -y</pre>
________________________________________
+
== CGI-Modul aktivieren ==
3. CGI-Modul aktivieren
 
 
Damit Apache CGI-Skripte ausführen kann, muss das cgi-Modul aktiviert werden:
 
Damit Apache CGI-Skripte ausführen kann, muss das cgi-Modul aktiviert werden:
 
<pre>sudo a2enmod cgi</pre>
 
<pre>sudo a2enmod cgi</pre>
________________________________________
+
== Apache neu starten ==
4. Apache neu starten
 
 
Damit die Änderungen wirksam werden, muss Apache neu gestartet werden:
 
Damit die Änderungen wirksam werden, muss Apache neu gestartet werden:
 
<pre>sudo systemctl restart apache2</pre>
 
<pre>sudo systemctl restart apache2</pre>
________________________________________
+
== CGI-Verzeichnis erstellen ==
5. CGI-Verzeichnis erstellen
 
 
Standardmäßig verwendet Ubuntu das Verzeichnis /usr/lib/cgi-bin/ für CGI-Skripte. Falls es nicht existiert, erstellen wir es:
 
Standardmäßig verwendet Ubuntu das Verzeichnis /usr/lib/cgi-bin/ für CGI-Skripte. Falls es nicht existiert, erstellen wir es:
sudo mkdir -p /usr/lib/cgi-bin
+
<pre>sudo mkdir -p /usr/lib/cgi-bin</pre>
sudo chmod 755 /usr/lib/cgi-bin
+
<pre>sudo chmod 755 /usr/lib/cgi-bin</pre>
________________________________________
+
== FreePascal installieren ==
6. FreePascal installieren
 
 
Falls FreePascal nicht installiert ist, holen wir es nach:
 
Falls FreePascal nicht installiert ist, holen wir es nach:
sudo apt install fpc -y
+
<pre>sudo apt install fpc -y</pre>
________________________________________
+
== Test-CGI-Programm in FreePascal erstellen ==
7. Test-CGI-Programm in FreePascal erstellen
 
 
Erstelle eine neue Datei für das Pascal-Programm:
 
Erstelle eine neue Datei für das Pascal-Programm:
sudo nano /usr/lib/cgi-bin/hello.pas
+
<pre>sudo nano /usr/lib/cgi-bin/hello.pas</pre>
 
Füge folgenden Code ein:
 
Füge folgenden Code ein:
 +
<pre>
 
program HelloCGI;
 
program HelloCGI;
 
begin
 
begin
Zeile 76: Zeile 71:
 
   writeln('<html><body><h1>Hello, CGI World!</h1></body></html>');
 
   writeln('<html><body><h1>Hello, CGI World!</h1></body></html>');
 
end.
 
end.
 +
</pre>
 
Speichern mit STRG + X, dann Y und ENTER.
 
Speichern mit STRG + X, dann Y und ENTER.
________________________________________
+
== Programm kompilieren und ausführen ==
8. Programm kompilieren und ausführen
 
 
Kompiliere das Programm mit FreePascal:
 
Kompiliere das Programm mit FreePascal:
fpc -O2 -o/usr/lib/cgi-bin/hello.cgi /usr/lib/cgi-bin/hello.pas
+
<pre>fpc -O2 -o/usr/lib/cgi-bin/hello.cgi /usr/lib/cgi-bin/hello.pas</pre>
 
Nun existiert das ausführbare CGI-Programm als hello.cgi.
 
Nun existiert das ausführbare CGI-Programm als hello.cgi.
 
Setze die erforderlichen Rechte:
 
Setze die erforderlichen Rechte:
sudo chmod +x /usr/lib/cgi-bin/hello.cgi
+
<pre>sudo chmod +x /usr/lib/cgi-bin/hello.cgi</pre>
________________________________________
+
== Apache für CGI konfigurieren ==
9. Apache für CGI konfigurieren
 
 
Öffne die Apache-Konfigurationsdatei:
 
Öffne die Apache-Konfigurationsdatei:
sudo nano /etc/apache2/sites-available/000-default.conf
+
<pre>sudo nano /etc/apache2/sites-available/000-default.conf</pre>
 
Füge innerhalb von <VirtualHost *:80> folgende Zeilen hinzu:
 
Füge innerhalb von <VirtualHost *:80> folgende Zeilen hinzu:
 +
<pre>
 
<Directory "/usr/lib/cgi-bin">
 
<Directory "/usr/lib/cgi-bin">
 
     Options +ExecCGI
 
     Options +ExecCGI
Zeile 94: Zeile 89:
 
     Require all granted
 
     Require all granted
 
</Directory>
 
</Directory>
 +
</pre>
 
Speichern und schließen (STRG + X, Y, ENTER).
 
Speichern und schließen (STRG + X, Y, ENTER).
 
Anschließend Apache neu starten:
 
Anschließend Apache neu starten:
sudo systemctl restart apache2
+
<pre>sudo systemctl restart apache2</pre>
________________________________________
+
== CGI-Skript im Browser testen ==
10. CGI-Skript im Browser testen
 
 
Rufe die folgende URL im Browser auf:
 
Rufe die folgende URL im Browser auf:
http://localhost/cgi-bin/hello.cgi
+
<pre>http://localhost/cgi-bin/hello.cgi</pre>
 
Falls Ubuntu als Server verwendet wird, ersetze localhost durch die Server-IP.
 
Falls Ubuntu als Server verwendet wird, ersetze localhost durch die Server-IP.
________________________________________
 

Version vom 20. März 2025, 13:50 Uhr

Sinn und Zweck dieses Projekts

Ich möchte hier protokollieren, wie man einen kleinen Server mit Linux einrichten kann. Ich hielt es. ehrlich gesagt, immer für kompliziert. Genau deshalb möchte ich seeeehr einfach anfangen und wirklich beim Simpelsten bleiben, was möglich ist. Der Server soll tatsächlich zunächst nur

  • über seine IP-Adresse erreichbar sein
  • eine einfache Website ausliefern
  • die von einem Programm generiert wird

Natürlich könnte ich auch einfach eine HTML-Seite anzeigen lassen, die statisch erzeugt wird. Aber das schränkt die Flexibilität des Servers ein. Ich möchte mich nämlich auch damit beschäftigen, wie man einfach Seiten generieren kann, die dann vielleicht in einer echten Anwendung münden. Also am Anfang lassen wir alles offen. Weiterhin möchte ich moderne Sprachen wie PHP, Python, Javascript etc. nicht einsetzen. Das hat verschiedene Gründe und ist für den professionellen Bereich zunächst mal nicht zu empfehlen. Hier soll kein sicherer Anwendungsserver für ein Unternehmen entworfen werden. Mir reicht es zunächst, dass ich ein Programm über das heimische WLAN/LAN von nahezu jedem Gerät aus nutzen kann.

Vorgehensweise

Hardware: erstmal keine

  • Wir nutzen ein Programm, das einen anderen Computer simuliert (virtuelle Maschine, Oracle VirtualBox).
    • Dadurch können wir verschiedene Konfigurationen testen (Hauptspeicher? Prozessoren?).
    • Wir können vor großen Änderungen die gesamte Maschine einfach zur Sicherheit kopieren.
    • Wir können die Maschine einfach auf einen anderen physischen Computer verschieben.
  • Unser Betriebssystem soll UBUNTU SERVER, derzeit 24.04.2 LTS, ohne grafische Oberfläche sein.
    • UBUNTU ist offen und frei verfügbar.
    • UBUNTU ist gut in virtuelle Maschinen integrierbar.
    • UBUNTU hat kaum Ansprüche an die Hardware.
  • Später können wir einen alten, einfachen Computer nutzen.

Software: Einrichten der virtuellen Maschine

  • Zunächst sollten wir VirtualBox herunterladen und installieren.
  • Dann sollten wir Ubuntu Server herunterladen.
  • Anschließend erzeugen wir eine virtuelle Maschine und verbinden die Ubuntu-Datei (Image) als optisches Laufwerk
    • Benutzername und -kennwort festlegen und unbedingt merken oder aufschreiben.

Wir richten einen Webserver ein

  • Apache ist bewährt und schnell und wird mit Ubuntu automatisch aktualisiert.
    • sudo apt install apache2
  • Wir schalten fast_cgi frei.
  • Wir legen den Namen des Servers fest und testen alles.

Weitere Software wird installiert

  • Wir brauchen net-tools, lynx, nano und openssh-server.
    • sudo apt install net-tools lynx nano openssh-server -y
  • Unsere Programmiersprache wird installiert: hier FreePascal (könnte auch C/C++ sein).
    • sudo apt install fpc
  • Midnight Commander, ytree oder Handarbeit.
    • sudo apt install mc ytree -y

Wichtige Ordner unter Ubuntu

  • Unser Arbeitsordner (Home) ist /home/%benutzername% (%benutzername% durch Ihren Benutzernamen ersetzen).
  • Die fertigen Programme liegen in /usr/lib/cgi-bin.
  • Die Website liegt in /var/www/html.

Praxis

Ubuntu aktualisieren

Bevor wir beginnen, sollten wir sicherstellen, dass das System aktuell ist:

sudo apt update && sudo apt upgrade -y

Apache-Webserver installieren

Apache ist der Webserver, der CGI-Skripte ausführen wird:

sudo apt install apache2 -y

CGI-Modul aktivieren

Damit Apache CGI-Skripte ausführen kann, muss das cgi-Modul aktiviert werden:

sudo a2enmod cgi

Apache neu starten

Damit die Änderungen wirksam werden, muss Apache neu gestartet werden:

sudo systemctl restart apache2

CGI-Verzeichnis erstellen

Standardmäßig verwendet Ubuntu das Verzeichnis /usr/lib/cgi-bin/ für CGI-Skripte. Falls es nicht existiert, erstellen wir es:

sudo mkdir -p /usr/lib/cgi-bin
sudo chmod 755 /usr/lib/cgi-bin

FreePascal installieren

Falls FreePascal nicht installiert ist, holen wir es nach:

sudo apt install fpc -y

Test-CGI-Programm in FreePascal erstellen

Erstelle eine neue Datei für das Pascal-Programm:

sudo nano /usr/lib/cgi-bin/hello.pas

Füge folgenden Code ein:

program HelloCGI;
begin
  writeln('Content-type: text/html');
  writeln;
  writeln('<html><body><h1>Hello, CGI World!</h1></body></html>');
end.

Speichern mit STRG + X, dann Y und ENTER.

Programm kompilieren und ausführen

Kompiliere das Programm mit FreePascal:

fpc -O2 -o/usr/lib/cgi-bin/hello.cgi /usr/lib/cgi-bin/hello.pas

Nun existiert das ausführbare CGI-Programm als hello.cgi. Setze die erforderlichen Rechte:

sudo chmod +x /usr/lib/cgi-bin/hello.cgi

Apache für CGI konfigurieren

Öffne die Apache-Konfigurationsdatei:

sudo nano /etc/apache2/sites-available/000-default.conf

Füge innerhalb von <VirtualHost *:80> folgende Zeilen hinzu:

<Directory "/usr/lib/cgi-bin">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
    Require all granted
</Directory>

Speichern und schließen (STRG + X, Y, ENTER). Anschließend Apache neu starten:

sudo systemctl restart apache2

CGI-Skript im Browser testen

Rufe die folgende URL im Browser auf:

http://localhost/cgi-bin/hello.cgi

Falls Ubuntu als Server verwendet wird, ersetze localhost durch die Server-IP.