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.
Installationsort einer Djangoinstallation
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
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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.
- 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
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
Erstmal Danke an alle für die Hinweise.
Extrem hilfreich war der Tipp von noisefloor
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
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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.ThomasL hat geschrieben: Samstag 19. Dezember 2020, 10:04 Extrem hilfreich war der Tipp von noisefloor
