Wechsel von Apache + PHP + mysql

Probleme bei der Installation?
Antworten
lars505
User
Beiträge: 2
Registriert: Sonntag 2. Oktober 2022, 11:51

Hallo,
ich setze seit einigen Jahren LAMP zu Unterrichtszwecken ein. Ziel ist dabei, den Schülern ausgehend von HTML SQL und PHP als Programmiersprache zu vermitteln. Am Ende des Unterrichst steht ein Projekt, bei dem die Schüler einen Webshop oder Dokuementeverwaltungssystem erstellen. Da ich nun BigData als weiteren Unterrichtsinhalt aufnehmen möchte und Python scheinbar PHP nach und nach ablöst, überlege ich nun PHP durch Python zu ersetzen.
1. Frage: Ist dies überhaupt sinnvoll?
Der Apache-Server ist so konfiguriert, dass jeder Schüler in seinem User-Verzeichnis Skripte ausführen kann.
2. Frage: Kann der Server in gleicher Art für Python komfiguriert werden?
Ich habe mir das zunächst ganz einfach vorgestellt, ohne dass ich mich vorher mit Python beschäftigt habe, aber nach mehrern Tagen Recherche und einigem Probieren noch keine Lösung gefunden. Ich hätte gedacht, dass ich einfach die Sprache umstelle und alles läuft wie vorher, nur mit Python.
Ich möchte kein Framework wie Django einsetzen, weil ich es zunächst für besser halte die erste Programmiersprache mit einer möglichst einfachen Entwicklungsumgebung zu vermitteln.
3. Frage: Falls es geht, wie ist der Apache2 Server zu konfigurieren, damit Python aus den Nutzerverzeichnissen ausgeführt werden kann? bzw. Wo finde ich eine Anleitung, die mir diese Konfiguration erklärt.
Vielen Dank für Eure Anworten.
Lars
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

So richtig gedacht dafür ist Python nicht für dieses Szenario. PHP ist auf diesen einen Zweck ausgelegt, darum ist das viel niederschwelliger zu benutzen.

Am nächsten käme dem wahrscheinlich ein CGI Skript. Aber das hat keine HTML Template Unterstützung, man hat dann doch relativ viel Aufwand mit Formatierung und Escaping etc.

Wenn du den Apache abklemmst (wirklich Nötig ist der nicht bei Python), dann kann man mit zb bottle mit nur einen Datei lokal seinen eigenen Server betreiben. Natürlich nicht auf Port 80.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Moderne Webentwicklung mit Python sieht ganz ander aus, als bei Apache + PHP.
Bei Python setzt man ein Framework ein, das schon einen gesamten Webserver mitbringt, der für Entwicklungszwecke völlig ausreichend ist, so dass Apache überflüssig wird.

Für Produktivsysteme würde man dann auch eher Punkte wie Kubernetes, einen leichtgewichtigen Reverseproxy für die Lastverteilung, und ähnliches einsetzen.

Wenn es im Untericht also nicht darum geht, wie man Bestandssysteme mit Apache am Leben erhalten kann, ist Apache komplett raus.

Dann mußt Du Dich damit auseinandersetzen, welches Framework Du einsetzen willst und was für Deinen Unterricht "möglichst einfach" bedeutet. Schau Dir die verschiedenen Frameworks an und lass Dich darauf ein. Setze mehrere Projekte mit jedem Framework auch tatsächlich um, um zu lernen, welche Stärken das jeweilige Framework hat, auch im Hinblick auf die Lernkurve und den damit erreichbaren Zielen.

Es macht keinen Sinn Python-Programme im PHP-Stil zu unterrichten. Falls Dir sowas wie CGI vorgeschwebt ist, das ist seit 15 Jahren tot.
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Ich glaube, dass es bei den Anforderungen, die du genannt hast, für dich besser ist, bei PHP zu bleiben. Dass man den Webserver so konfiguriert, dass Dateien mit einer bestimmten Endung mit einem Interpreter ausgeführt werden und dass man Code und Auszeichnungssprache in denselben Dateien beliebig mischen kann, ist ein Konzept, das insbesondere PHP populär gemacht hat. Bei Python ist das unüblich (auch wenn es da mal Ansätze gab). PHP ist im Grunde auch schon selbst ein Miniframework, wobei man heute bei modernen PHP-Anwendungen auch stärker auf eine saubere Trennung und Architektur achtet und in aller Regel ein Webframework verwendet. State-of-the-Art ist bei Python eigentlich, dass man die Anwendung in einem WSGI-Server laufen lässt und mindestens ein Microframework wie Flask verwendet. Wenn du also deine Methodologie nicht ändern möchtest, solltest du bei PHP bleiben, finde ich. Ob diese Methodologie noch zeitgemäß ist – auch wenn man bei PHP bleibt – ist eine andere Diskussion. Das hängt auch vielleicht davon ab, ob es eher darum geht, den Schüler*innen niedrigschwellige Erfolgserlebnisse zu bescheren (was völlig legitim ist) oder ihnen moderne Webentwicklung, wie sie im professionellen Umfeld betrieben wird, beizubringen.

Edit: Da waren gleich mehrere schneller :(
lars505
User
Beiträge: 2
Registriert: Sonntag 2. Oktober 2022, 11:51

Vielen Dank für Eure schnellen Antworten. Ihr habt mir das bestätigt, was ich schon vermutet habe und somit sehr weitergeholfen. Ich werde mir mal ein Python Framework wie Django anschauen und gucken, ob ich dessen Nutzung soweit methodisch verinfachen kann, dass ein Einsatz im Unterricht möglich, ohne zu sehr vom Hauptziel des Unterrichts den grundlegenden Programm, und Datenstrukturen, sowie einfache Algorithmen abzulenken.
Nochmals Danke
Lars
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Django ist wahrscheinlich am weitesten weg von dem, was du willst. Mit Flask z. B. ist ein Hello World ganze 5 Zeilen lang. In Django hat das Minimalprojekt sechs Dateien (!).
Antworten