Website von der Pike auf

Vor etwa 30 Jahren habe ich mithilfe von selfhtml.org sowie einem Büchlein über PHP und einem Büchlein über MySQL von der Pike auf die Website für eine alljährliche Tagung konstruiert, die heute noch stattfindet. Die Pflege der Website habe ich freilich irgendwann vor mehr als 20 Jahren an Profis übergeben.

Welche Tutorials würdet Ihr heutzutage jemandem empfehlen, der von der Pike auf verstehen will, wie eine Website funktioniert?

Die Idee wäre, einen Server aufzusetzen. Ich dachte dabei an einen Raspberry Pi mit Apache. Dann wäre eine Datenbank zu installieren. Schon da bin ich mir unsicher, welche für Einsteiger am geeignetsten ist: MariaDB, Postgres, MySQL? Und dann ein CMS. Da dachte ich an Contao.

Mein Verdacht ist, dass man heutzutage gar nichts mehr wirklich in HTML oder in PHP von Grund auf schreibt, sondern allenfalls noch die eine oder andere Anpassung am Quelltext vornimmt.

Der Zweck der ganzen Aktion besteht wie gesagt darin, sich zu erschließen, wie die „Rückseite“ dessen funktioniert, was der Anwender als Internet erlebt.

Wenn Du verstehen willst, was hinter den Kulissen passiert, mach einen Kurs z.B. von freecodecamp.org - entweder html/css/JS oder, wenn Du das (auch JS!) schon kennst, über ein framework Deiner Wahl, zB react.

Natürlich gibts auch Seiten, die ein CMS verwenden - Hobbybereich oder Betriebe, die nur einen begrenztem Funktionsumfang - Visitenkarte, Kontaktformular - brauchen. Aber eigentlich ist das von gestern.

Heute macht man mobile first, das heißt web apps. Insbesondere im datengetriebenen Bereich. Das kann durchaus auch (im backend) php sein. Und irgendeine Datenbank, welche, ist eigentlich egal. Im frontend ist es fast immer JS in irgendeiner Variante. Dein Verdacht ist richtig (man benutzt frameworks), aber auch falsch (man benutzt kein cms).

Vielen Dank! Auf den ersten Blick ist das überwältigend beeindruckend. Ich wollte kleiner anfangen, um zu sehen, zu zeigen, zu verstehen: Was passiert auf einem Rechner, den man als Server ins Internet hängt? Also z.B. um im Log mitzuverfolgen, wer sich alles versucht Zugang zu verschaffen, wenn der Rechner plötzlich im Internet hängt, oder wie ein berechtigter Zugang ausgehandelt wird. Solche Sachen.

Möglicherweise drückte ich mich missverständlich aus. Mit dem Von-der-Pike-auf-Verstehen meinte ich, step by step

  1. einen Rechner anschaffen
  2. ein Betriebssystem aufsetzen
  3. den Rechner für Zugriffe aus dem Internet öffnen
  4. einen Server installieren
  5. eine Datenbank aufsetzen
  6. ein Frontend erstellen

um am Ende Webserver für irgendeine Website spielen zu können.

Ah ok, das ist was anderes. Anleitungen gibt es wie Sand im Meer, ich nehme meist das 3. Suchergebnis :slight_smile:

Ich würde das ganze erstmal im lokalen Netz mit interner statischer IP machen.

  1. Ein alter Raspi ist ok - falls Du neu anschaffst, würde ich lieber einen NUK (oder sonst sparsamen x86-Mini) nehmen. Der ist robuster und vielseitiger, allerdings etwas teurer. Gebraucht reicht.
  2. Debian Minimal-System z.B. https://www.howtoforge.com/tutorial/debian-minimal-server/ (ich präferiere die Einrichtung mit sudo, im letzten Schritt alles abwählen außer SSH),
  3. Server absichern (SSH key-only konfigurieren, fail2ban), zB https://github.com/imthenachoman/How-To-Secure-A-Linux-Server.
  4. Apache oder Nginx (Geschmackssache, ich bevorzuge Nginx)
  5. MariaDB oder PostgresQL (Geschmackssache, ich bevorzuge Postgres) - aber eigentlich brauchst Du erstmal keine Datenbank.
  6. Statische Seiten mit Seiten mit HTML/CSS/PHP aufsetzen.
  7. später: LetsEncrypt Zertifikat (Domain vorhanden?) beschaffen und dessen Verlängerung automatisieren, IP und hostname ändern und ins Internet hängen.

Das CMS würde ich fürs Lernen weglassen, damit Du näher an der Technik bist - es zwingt Dich in ein Korsett, das Du nur dann brauchst, wenn mehrere Leute die Seiten editieren sollen. Es erhöht den Lernaufwand (mit Dingen die fast immer spezifisch für das jeweilige System und deshalb nur begrenzt brauchbar sind) und auch die Angriffsfläche.

Aber natürlich kommt es darauf an, was Du später mit dem Setup machen willst. Wenn Du eigentlich keinen richtigen Plan hast, was das werden soll, würde ich ne Nextcloud (kann man immer brauchen) aufsetzen, und das login in die statische Webseite integrieren (oder auch dahinter „verstecken“, geht mit nginx).

1 „Gefällt mir“