Installationsort einer Djangoinstallation

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
ThomasL
User
Beiträge: 1384
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Hi, ich habe einen uralten Django-Server von 2012 serviert bekommen, auf einem Debian System.
Python 2.7.6 und Django 1.5.x
Bin ein Django-Noob und soll mich da rein arbeiten, da der ursprüngliche Programmierer nicht mehr greifbar ist.
Zwei erste Fragen dazu:
Wie finde ich den Installationsordner der Python Installation und des Djangoframeworks?
Wie wird das Djangoframework automatisch beim Systemstart gestartet?
Danke vorab für eure hilfreichen Kommentare.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Kann man alles pauschal nicht beantworten. Ich würde mich zb mit ps dem Prozess der läuft nähern. Unter /proc/<pid> findest du uA den vollständigen Pfad zum Interpreter. Das ist ein Puzzleteil. Da sollte auch die Umgebung einsehbar sein, als zb ein gesetzter Pythonpath. Ich würde auch einfach mal alle Verzeichnis nach Python Dateien durchsuchen. Und nach begriffen oder Tags aus den Webseiten greppen. Schauen was sich alles unter etc findet. Und so weiter.
Benutzeravatar
sparrow
User
Beiträge: 4591
Registriert: Freitag 17. April 2009, 10:28

Wie wird denn der Webservice ausgeliefert? Wahrscheinlich über einen Apache?
Dann schau dir mal dessen Konfigurationsdateien an. Wahrscheinlich unter /etc/apache2
Benutzeravatar
noisefloor
User
Beiträge: 4250
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du hast vollen Zugriff auf den Server, also entweder physisch oder per SSH, oder? Dann würde ich bzgl. Python erst mal schauen, ob mehr als eine Python-Version installiert ist. Also z.B. den Terminal öffnen, `pyth` eintippen, 2x Tab drücken und schauen, was so anzeigt wird. Dann noch `whereis python` ausführen.

Um zu sehen, was läuft, führe ich im Terminal normalerweise `ps aux` aus. Dann solltest du auch sehen, welche Prozesse für den Webserver und mögliche WSGI-Applikationsserver laufen. Dann solltest du auch sehen, wer die Django-App ausführt.
Wenn Apache oder nginx läuft kannst du auch in die Config-Dateien der Server rein schauen und sehen, ob bei Apache z.B. mod_wsgi läuft oder nginx als Reverse-Proxy konfiguriert ist.
2015 war Debian noch nicht auf systemd, d.h. das ganze wird vermutlich über init-Skripte gestartet.

Django ist auch "nur" ein Python-Modul (bzw. eine ganze Reihe von Modulen), die du in deinen Python-Skripten installiert. Wenn man ein Projekt mit Django anlegt, wird aber auch eine Datei `wsgi.py` angelegt, die der Einsteigspunkt für den WSGI-Server ist.

Soll die Django-App auf eine aktuelles Django gehoben werden? Das wird relativ viel Arbeiten werden und ist ohne Django-Wissen IMHO nur schwer machbar. Meine Erfahrung ist zumindest, dass selbst das Update von LTS-Version auf LTS-Version selbst für meine relativ simplen (im Sinne von nicht komplexen) Django-App immer händische Nacharbeit erfordert. Und nach Django 1.5 kommen drei LTS-Version: 1.8, 1.11 und 2.2. 3.2 LTS kommt im April 2021.
Da kann ich dir aber nicht sagen, was die "best practice" ist, also ob man besser 3x ein Update auf jede LTS-Version macht oder direkt von 1.5 auf 2.2 macht.

Gruß, noisefloor
Benutzeravatar
ThomasL
User
Beiträge: 1384
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Erstmal Danke an alle für die Hinweise.
Extrem hilfreich war der Tipp von noisefloor
Um zu sehen, was läuft, führe ich im Terminal normalerweise `ps aux` aus.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
kbr
User
Beiträge: 1509
Registriert: Mittwoch 15. Oktober 2008, 09:27

ThomasL hat geschrieben: Samstag 19. Dezember 2020, 10:04 Extrem hilfreich war der Tipp von noisefloor
Ergänzend vielleicht noch, dass Du das Upgrade auf eine neuere django-Version über *jede* zwischenliegende django-Version vornehmen solltest, um keine Deprecation-Hinweise zu übersehen und diese vor dem nächsten Schritt zunächst zu beheben. Gerade von 1.5 bis 1.8 wird vermutlich einiges anzupassen sein. Von 1.8 könntest Du dann schrittweise weiter bis 2.2 LTS gehen. Da kannst Du dann 2 bis 3 Jahre ausruhen, aber natürlich auch weiter auf 3.2 LTS gehen, falls dieses dann schon draußen ist. Hilfreich ist es, wenn man beim upgraden auf eine Vielzahl von bestehenden Tests zurückgreifen kann – in der Praxis ist das leider oft Wunschvorstellung.
Antworten