User Tools

Site Tools


server:openeats

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
server:openeats [2018/02/11 13:25] – [React einrichten] Bug nach PR https://github.com/RyanNoelk/OpenEats/commit/a4bd607875e6adbfcbc3a0b276ca2755189c4d7d saschaserver:openeats [2019/02/16 19:48] (current) – Probleme bei größeren MariaDB-Updates, nicht gefundene library ergänzt sascha
Line 173: Line 173:
   # NODE_ENV=production NODE_LOCALE=de NODE_API_URL=https://food.domain.tld npm start   # NODE_ENV=production NODE_LOCALE=de NODE_API_URL=https://food.domain.tld npm start
 Nun sollte alles funktionieren und mit dem Aufruf der URL https://food.domain.tld im Browser sollte die eigentliche Oberfläche zur Anzeige der Rezepte erscheinen. Nun sollte alles funktionieren und mit dem Aufruf der URL https://food.domain.tld im Browser sollte die eigentliche Oberfläche zur Anzeige der Rezepte erscheinen.
 +
 +__Hinweis__: Sollte es beim Starten zu einem Fehler kommen,
 +>ERROR in ./modules/common/history.js
 +>Module not found: Error: Can't resolve 'history' in '/usr/share/webapps/openeats/frontend/modules/common'
 +muss das ''history''-Modul explizit installiert werden:
 +  # npm install --save history
 +siehe [[server:openeats#history-modul_nicht_gefunden|Troubleshooting]].
  
  
Line 318: Line 325:
   # npm install --save history   # npm install --save history
 der Installation hinzugefügt werden. der Installation hinzugefügt werden.
 +
 +==== Update Python, Upgrade der virtuellen Umgebung ====
 +
 +Die angelegte virtuelle Umgebung unter ''virt_env'' muss unter Umständen aktualisiert werden, beispielsweise nach einem Upgrade von Python selbst auf ein neues Release. Dies kann dazu führen, dass beim Versuch, den Server innerhalb der virtuellen Umgebung mit ''./api/manage.py runserver'' manuell zu starten, zu Fehlern wie
 +> python: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
 +erscheint. Grund ist hier das Upgrade von Python 3.6 auf 3.7.
 +
 +Um ein Update durchführen zu können, ermitteln wir der Einfachheit halber alle installierten Module, um sie nachher einfach wieder zu installieren. Dazu muss die Python-Version mittels Downgrade auf die letzte funktionierende Version gesetzt werden. Am besten wurde der Cache der ''pacman''-Pakete nicht geleert, so kann in ''/var/cache/pacman/pkg'' nach den vorhandenen alten Python-Paketen gesucht werden, in meinem Fall die Version 3.6.6. Diese installieren wir:
 +  # pacman -U /var/cache/pacman/pkg/python-3.6.6-1-armv7h.pkg.tar.xz
 +
 +Nun kann die virtuelle Umgebung aktiviert werden, um die verwendeten Module zu ermitteln:
 +  # source virt_env/bin/activate
 +  # pip freeze > requirements.txt
 +  # deactivate
 +  # mv virt_env virt_env_bak
 +Bei dem letzten Schritt wird die Umgebung als Backup in einen neuen Ordner verschoben.
 +
 +Anschließend kann Python wieder aktualisiert werden:
 +  # pacman -S python
 +
 +Bei mir ist in der Liste der Module in ''requirements.txt'' das Modul ''openeats-recipe-scraper'' aufgetaucht. Dies gehört zu OpenEats und kann entsprechend nicht mit ''pip'' installiert werden. Die Zeile mit diesem Modul muss noch aus der Textdatei gelöscht werden.
 +
 +Die neue Umgebung kann nun eingerichtet werden:
 +  # mkdir virt_env
 +  # virtualenv virt_env/
 +  # source virt_env/bin/activate
 +  # pip install --upgrade -r requirements.txt
 +
 +Wird nun versucht, den Server manuell mit ''./api/manage.py runserver'' zu starten, sollte es keine Fehlermeldung mehr geben. Wir können die virtuelle Umgebung mit ''deactivate'' wieder verlassen und das Backup ''virt_env_bak'' kann entsprechend gelöscht werden, wenn alles funktioniert hat.
 +
 +==== Update MariaDB, Django-Server startet nicht ====
 +
 +Es kann passieren, dass es nach einem größeren Update von MariaDB, welches MySQL zur Verfügung stellt, Probleme beim Start des Django-Servers gibt. Dies zeigt sich darin, dass keine Bilder oder Rezepte geladen/gefunden werden. Wird wie weiter oben beschrieben versucht, den Server manuell mittels ''./api/manage.py runserver'' zu starten, tauchen in diesem Fall sehr viele Probleme auf sowie ganz am Ende etwas wie
 +> django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory
 +
 +In diesem Fall reicht es, das Python-Paket ''mysqlclient'' neu zu installieren, damit die neue Version die im System vorhandene Bibliothek wieder findet. Zur Sicherheit kann analog zum vorherigen Punkt ein Backup angelegt werden. Für das Update selber wechseln wir ins passende OpenEats-Verzeichnis, wechseln in die angelegte virtuelle Umgebung und führen das Paket-Update mittels ''pip'' durch:
 +    # source virt_env/bin/activate
 +    # pip uninstall mysqlclient
 +    # pip install mysqlclient
 +    # deactivate
 +
 +Mit dem letzten Befehl wird die virtuelle Umgebung wieder verlassen. Hat alles geklappt, sollte der Aufruf von ''./api/manage.py runserver'' nun zum gewünschten Resultat führen.
 +
 +
server/openeats.1518355540.txt.gz · Last modified: by sascha