Closed geobrun closed 3 years ago
Oui cela peut venir des évolutions de la conf Apache où on a ajouté un servername, où il faut que tu renseignes ton domaine : https://github.com/PnX-SI/GeoNature/issues/1420
Mais en y réfléchissant, l'ajout de ce servername dans la conf par défaut, ne devrait pas poser de soucis si tu n'en as pas. C'est seulement utile pour l'Admin quand on utilise GeoNature sur un serveur.
Oui, j'avais vu ce sujet, mais j'avais compris que cela n'était valable que pour une nouvelle installation, pas dans le cas d'une migration ?
Où est-ce que je peux modifier ce servername ? J'ai regardé les fichiers dans /etc/apaches2
mais je ne vois pas lequel je pourrais modifier pour arriver à mes fins. Dans 000-default.conf
?
Oui c'est fait que sur les nouvelles installations. Tu peux le répercuter sur une installation existante, en t'appuyant sur l'exemple du template de conf Apache : https://github.com/PnX-SI/GeoNature/blob/master/install/assets/geonature_apache.conf
Mais ce n'est pas utile, sauf si tu es sur une adresse IP. Et donc il n'y a pas de raison que cela règle ton soucis.
J'ai tenté des modifications sur les fichiers /etc/apache2/sites-availables/geonature.conf
et /etc/apache2/sites-availables/geonature-le-ssl.conf
mais rien n'y fait... :(
Oui c'est autre chose. Peux-tu préciser l'erreur dans la console ?
Dans la console de Firefox par exemple ?
Oui
Il faudrait jouer la commande
sudo supervisorctl restart all
Ca permettrait de s'assurer que GeoNature se lance bien. Il y avait une note de version sur le fait de changer le log de supervisor notamment dans cette montée de version, à voir si cette commande a bien été passée. Sinon il est possible que GeoNature ait ce soucis d'accès au fichier de log qui l'empêche de se lancer... (cf #1003 )
Quand je clique sur "se connecter", cela envoie la requête suivante : XHR POST https://geonature.pnr-millevaches.fr/api/auth/login
. Je reçois un message "403 FORBIDDEN" et "strict-origin-when-cross-origin". Dans la réponse JSON, j'ai "login: false" et "msg:TypeError(sequence item 0: expected str instance, ColumnProperty found)".
@DonovanMaillard : je viens de tester ta commande, aucun problème à signaler.
Le CORS (cross origin), ça peut venir d'apels dadresses en http depuis du https. Tout est bien en https, y compris usershub ?
Oui, pas de problème, j'avais fait cela pour déployer l'application Occtax-mobile. Effectivement, le problème vient peut-être du HTTPS car j'avais pas mal galéré pour l'implémenter il y a quelques mois. Mais au final, j'avais trouvé la solution grâce à votre aide et tout fonctionnait jusqu'en version 2.6.2.
Ce que je trouve curieux, c'est que dans tous les logs que j'ai parcourus (GeoNature, Usershub, Apache2, Supervisor), je ne trouve aucune trace de mes "clics" sur le bouton "se connecter". Il doit bien y avoir une trace quelque part pourtant ? A moins que la requête soit bloquée par le client, avant l'arrivée au serveur ?
Petite information supplémentaire : durant la migration, j'ai le message d'erreur suivant qui apparaît au moment du redémarrage du Supervisor.
Traceback (most recent call last):
File "/home/geonatureadmin/geonature/backend/geonature/utils/gn_module_import.py", line 391, in create_module_config
module_object = TModules.query.filter_by(module_code=module_code).one()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3500, in one
raise orm_exc.NoResultFound("No row was found for one()")
sqlalchemy.orm.exc.NoResultFound: No row was found for one()
Et après, deux autres messages qui paraissent moins importants étant donné que je n'ai pas installé les deux modules en question.
Exception: Module with code 'VALIDATION' not found in database.
Exception: Module with code 'OCCHAB' not found in database.
L'erreur lors de la migration est normale si les modules ne sont pas installé.
L'erreur 403 lors du login vient du fait que l'utilisateur n'a pas les droits de connexion sur GN. cela veut aussi dire que le backend tourne bien et que le front fonctionne aussi.
Est-ce que tu peux ouvrir le fichier var/log/gn_errors.log
et nous dire ce qu'il raconte quand tu essaye de te connecter ?
Aucune ligne n'apparaît quand je clique sur "Se connecter". Voilà les lignes que j'ai pour aujourd'hui.
[2021-07-21 07:06:55 +0000] [13727] [INFO] Starting gunicorn 19.7.0
[2021-07-21 07:06:55 +0000] [13727] [INFO] Listening at: http://0.0.0.0:8000 (13727)
[2021-07-21 07:06:55 +0000] [13727] [INFO] Using worker: sync
[2021-07-21 07:06:55 +0000] [13754] [INFO] Booting worker with pid: 13754
[2021-07-21 07:06:55 +0000] [13758] [INFO] Booting worker with pid: 13758
[2021-07-21 07:06:55 +0000] [13769] [INFO] Booting worker with pid: 13769
[2021-07-21 07:06:55 +0000] [13789] [INFO] Booting worker with pid: 13789
[2021-07-21 07:07:04 +0000] [13727] [INFO] Handling signal: term
[2021-07-21 07:07:04 +0000] [13758] [INFO] Worker exiting (pid: 13758)
[2021-07-21 07:07:04 +0000] [13754] [INFO] Worker exiting (pid: 13754)
[2021-07-21 07:07:04 +0000] [13769] [INFO] Worker exiting (pid: 13769)
[2021-07-21 07:07:04 +0000] [13789] [INFO] Worker exiting (pid: 13789)
[2021-07-21 07:07:05 +0000] [13727] [INFO] Shutting down: Master
[2021-07-21 07:07:06 +0000] [14114] [INFO] Starting gunicorn 19.7.0
[2021-07-21 07:07:06 +0000] [14114] [INFO] Listening at: http://0.0.0.0:8000 (14114)
[2021-07-21 07:07:06 +0000] [14114] [INFO] Using worker: sync
[2021-07-21 07:07:06 +0000] [14143] [INFO] Booting worker with pid: 14143
[2021-07-21 07:07:06 +0000] [14146] [INFO] Booting worker with pid: 14146
[2021-07-21 07:07:06 +0000] [14153] [INFO] Booting worker with pid: 14153
[2021-07-21 07:07:06 +0000] [14155] [INFO] Booting worker with pid: 14155
[2021-07-21 07:07:12 +0000] [14114] [INFO] Handling signal: term
[2021-07-21 07:07:13 +0000] [14146] [INFO] Worker exiting (pid: 14146)
[2021-07-21 07:07:14 +0000] [14155] [INFO] Worker exiting (pid: 14155)
[2021-07-21 07:07:14 +0000] [14143] [INFO] Worker exiting (pid: 14143)
[2021-07-21 07:07:14 +0000] [14153] [INFO] Worker exiting (pid: 14153)
[2021-07-21 07:07:14 +0000] [14114] [INFO] Shutting down: Master
[2021-07-21 07:07:16 +0000] [14471] [INFO] Starting gunicorn 19.7.0
[2021-07-21 07:07:16 +0000] [14471] [INFO] Listening at: http://0.0.0.0:8000 (14471)
[2021-07-21 07:07:16 +0000] [14471] [INFO] Using worker: sync
[2021-07-21 07:07:16 +0000] [14509] [INFO] Booting worker with pid: 14509
[2021-07-21 07:07:16 +0000] [14535] [INFO] Booting worker with pid: 14535
[2021-07-21 07:07:16 +0000] [14540] [INFO] Booting worker with pid: 14540
[2021-07-21 07:07:16 +0000] [14547] [INFO] Booting worker with pid: 14547
[2021-07-21 07:08:24 +0000] [14471] [INFO] Handling signal: term
[2021-07-21 07:08:24 +0000] [14535] [INFO] Worker exiting (pid: 14535)
[2021-07-21 07:08:24 +0000] [14547] [INFO] Worker exiting (pid: 14547)
[2021-07-21 07:08:24 +0000] [14540] [INFO] Worker exiting (pid: 14540)
[2021-07-21 07:08:24 +0000] [14509] [INFO] Worker exiting (pid: 14509)
[2021-07-21 07:08:25 +0000] [14471] [INFO] Shutting down: Master
[2021-07-21 07:08:27 +0000] [15020] [INFO] Starting gunicorn 19.7.0
[2021-07-21 07:08:27 +0000] [15020] [INFO] Listening at: http://0.0.0.0:8000 (15020)
[2021-07-21 07:08:27 +0000] [15020] [INFO] Using worker: sync
[2021-07-21 07:08:27 +0000] [15054] [INFO] Booting worker with pid: 15054
[2021-07-21 07:08:27 +0000] [15056] [INFO] Booting worker with pid: 15056
[2021-07-21 07:08:27 +0000] [15060] [INFO] Booting worker with pid: 15060
[2021-07-21 07:08:27 +0000] [15066] [INFO] Booting worker with pid: 15066
Petite précision : lorsque je charge la page de login, avant d'essayer de se connecter, j'ai ce message dans les consoles Firefox/Chrome.
Failed to load resource: the server responded with /api/gn_commons/modules:1 a status of 401 (UNAUTHORIZED)
Pour information, quand je relance le supervisor, j'ai ça qui apparaît dans le log même s'il démarre bien.
2021-07-21 09:07:21,826 CRIT Supervisor running as root (no user in config file)
2021-07-21 09:07:21,833 CRIT Server 'unix_http_server' running without any HTTP authentication checking
Je pense que mon problème ne vient pas de l'authentification. Je viens de tester une route au hasard https://urlgeonature/api/gn_commons/t_mobile_apps
et je reçois une erreur 500 (The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application). Quand je repasse en version 2.6.2, cette route refonctionne.
Bonjour, Quelle est l’erreur dans les logs lorsque cette 500 se produit ?
Bonjour,
Voici l'erreur que je reçois.
[2021-07-21 09:51:00 +0000] [5468] [ERROR] Exception on /gn_commons/t_mobile_apps [GET]
Traceback (most recent call last):
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception
return handler(e)
File "/home/geonatureadmin/geonature/backend/geonature/core/errors/routes.py", line 82, in handle_exception
raise e
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
res = fn(*args, **kwargs)
File "/home/geonatureadmin/geonature/backend/geonature/core/gn_commons/routes.py", line 178, in get_t_mobile_apps
one_app = d.as_dict()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/utils_flask_sqla/serializers.py", line 238, in serializefn
_columns, _relationships = get_columns_and_relationships(fields, exclude)
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/utils_flask_sqla/serializers.py", line 145, in get_columns_and_relationships
for key, col in ChainMap(mapper.column_attrs, hybrid_properties).items()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/utils_flask_sqla/serializers.py", line 144, in <dictcomp>
_columns = { key: col
File "/usr/lib/python3.6/_collections_abc.py", line 744, in __iter__
yield (key, self._mapping[key])
File "/usr/lib/python3.6/collections/__init__.py", line 883, in __getitem__
return self.__missing__(key) # support subclasses that define __missing__
File "/usr/lib/python3.6/collections/__init__.py", line 875, in __missing__
raise KeyError(key)
KeyError: <ColumnProperty at 0x7ff6d7edb238; version_code>
Une idée ?
Ça ressemble vraiment à quelque chose lié aux évolutions de la 2.7.0 sur la méthode de récupération et de chargement des modules.
J'ai testé quelques routes et voilà les résultats.
Celles-ci fonctionnent.
synthese/defaultsNomenclatures
occtax/defaultsNomenclatures
synthese/taxa_distribution
Celles-ci renvoient vers la page de login.
gn_commons/modules
meta/datasets
occtax/occurrences
permissions/cruved
Celles-ci renvoient une erreur 500.
pypn/register/test_uh
gn_commons/t_mobile_apps
gn_commons/list/parameters
config
geo/municipalities
synthese/taxons_autocomplete
users/roles
Petit précision : je suis sur un serveur Ubuntu 18.04 à jour.
Je suspecte un problème lié à la version de python. La plateforme cible officiellement supporté est Debian 10, avec python 3.7.
Ok, ma version de python est 3.6.9.
Qu'est-ce qui est le plus prudent dans ce cas ? Passer à Ubuntu 20.4 qui propose un Python 3.8 par défaut si j'ai bien compris ou forcer une installation de Python 3.7 sur mon Ubuntu 18.4 ?
J'ai prévu de passer sur Debian en milieu d'année prochaine si tout va bien.
J’imagine que Python 3.7 sous Ubuntu 18.04 devrait fonctionner, mais je ne peux le garantir. Sinon on a au moins un développeur qui utilise Ubuntu 20.04 donc à priori pas de soucis avec cette plateforme.
Je passerai bien en 20.4 mais j'ai peur que cela ne dérègle d'autres trucs. Il n'y a que GeoNature qui tourne sur ce serveur. Je suppose que si je passe à Python 3.7 sur mon Ubuntu 18.4 comme indiqué ici et que cela pose problème, je pourrait facilement retourner à ma version 3.6.9 ?
Oui j’imagine qu’il suffira de désinstaller python3.7
.
J'aimerais bien avoir les logs lors de l'erreur 403. C'est normal que toutes les autres redirige vers la login avec un code 401: car ce sont des routes protegés qui ne sont pas accessible sans login
@bouttier : j'ai bien installé Python 3.7 avec la première méthode décrite dans l'article. J'ai configuré python -V
pour qu'il me renvoie 3.7.11. Par contre, j'ai laissé python3 -V
en 3.6.9. Pour le moment, cela ne fonctionne toujours pas. Il reste peut-être une manip' que j'ai loupée ?
@TheoLechemia : pas de trace de l'erreur 403 dans gn_errors.log
, ni dans supervisor.log
.
Rien n'apparaît dans gn_errors
quand je clique sur "Se connecter". Pour info, j'ai bien stdout_logfile = /home/geonatureadmin/geonature/var/log/supervisor.log
dans le fichier /etc/supervisor/conf.d/geonature-service.conf
comme me l'a rappelé @DonovanMaillard.
J'ai bien eu cette erreur ce matin en remontant dans gn_errors.log
, mais elle n'est pas liée à l'erreur 403 il me semble.
Traceback (most recent call last):
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
worker.init_process()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
self.wsgi = self.app.wsgi()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/gunicorn/util.py", line 376, in import_app
__import__(module)
ModuleNotFoundError: No module named 'wsgi'
Le seul endroit où je trouve une trace de mon clic, c'est dans le fichier /var/log/apache2/other_vhosts_access.log
avec :
urlgeonature:443 monadresseip - - [21/Jul/2021:13:55:07 +0000] "POST /api/auth/login HTTP/1.1" 403 1024 "https://urlgeonature/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36"
J'ai remplacé mon URL par "urlgeonature".
Précision supplémentaire : rien n'apparaît dans les logs de usershub/var/log
. Étant donné qu'une erreur 403 apparaît bien dans other_vhosts_access.log
mais pas dans les logs de Usershub, j'en conclue qu'Apache récupère bien la requête envoyée par le navigateur mais oppose une fin de non recevoir, sans la transmettre à Usershub. Il doit donc y avoir quelque chose qui coince entre Apache et Usershub ?
Quelques petites avancées : j'ai bien vérifié, je n'ai pas le même message d'erreur quand je tape un mauvais mot de passe dans ma version 2.6.2 et dans ma version 2.7.2. Voilà les détails :
erreur 490 UNKNOWN, {"type": "password", "msg": "Mot de passe invalide"}
erreur 403 FORBIDDEN {"login": false, "msg": "TypeError('sequence item 0: expected str instance, ColumnProperty found',)"}
En fouinant sur le net, ça m'orienterait quand même plus vers une erreur python plutôt qu'apache. J'ai donc remis python en 2.7.17
et j'ai basculé python3
en 3.7.11
. Lorsque j'ai effectué une nouvelle migration, après le lancement du venv dans le script, j'ai ce message d'erreur qui arrive, au moment de la commande geonature update_module_configuration validation --build=false
.
Restarted supervisord
Restarted supervisord
Traceback (most recent call last):
File "/home/geonatureadmin/geonature/backend/geonature/utils/gn_module_import.py", line 391, in create_module_config
module_object = TModules.query.filter_by(module_code=module_code).one()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3500, in one
raise orm_exc.NoResultFound("No row was found for one()")
sqlalchemy.orm.exc.NoResultFound: No row was found for one()
Je n'ai pas installé le module de validation donc je suppose qu'il n'y a pas de problème. Ce qui m'intrigue dans ce message, c'est que je vois que c'est Python 3.6 qui est appelé. Cela signifie que c'est peut-être encore Python 3.6 qui est encore actif par défaut pour le venv. Est-ce que c'est normal ou est-ce que j'ai loupé quelque chose pour que ce soit Python 3.7 qui soit utilisé par le venv ?
Oui si le venv n'a pas été supprimé il est toujours en 3.6.
Il faut le supprimer et le recréer
virtualenv -p
Ok, c'est que j'avais fini par comprendre ! Par contre, je bloque sur autre chose maintenant. J'arrive à installer python 3.7 dans le venv, mais par contre, j'ai un problème lorsque de l'exécution de la commande pip install -r requirements.txt
. Voilà quelques détails de la console.
Building wheels for collected packages: psycopg2, pypnusershub, pypnnomenclature, pypn-habref-api, utils-flask-sqlalchemy-geo, utils-flask-sqlalchemy
Building wheel for psycopg2 (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /home/geonatureadmin/geonature/backend/venv/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-eple6p6b/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-eple6p6b/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-w8ivzu93
cwd: /tmp/pip-install-eple6p6b/psycopg2/
Complete output (40 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.7
creating build/lib.linux-x86_64-3.7/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/_lru_cache.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/errors.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/compat.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-3.7/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-3.7/psycopg2
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-3.7
creating build/temp.linux-x86_64-3.7/psycopg
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fdebug-prefix-map=/build/python3.7-LSlbJj/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -g -fdebug-prefix-map=/build/python3.7-LSlbJj/python3.7-3.7.11=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.8.5 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=100017 -DHAVE_LO64=1 -I/home/geonatureadmin/geonature/backend/venv/include -I/usr/include/python3.7m -I. -I/usr/include/postgresql -I/usr/include/postgresql/10/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.7/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:28:0:
./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
It appears you are missing some prerequisite to build the package from source.
You may install a binary package by installing 'psycopg2-binary' from PyPI.
If you want to install psycopg2 from source, please install the packages
required for the build and try again.
For further information please check the 'doc/src/install.rst' file (also at
<https://www.psycopg.org/docs/install.html>).
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for psycopg2
Et plus loin :
WARNING: You are using pip version 20.0.2; however, version 21.1.3 is available.
Problème sur ma version de pip ?
Ok, l'erreur ne venait pas de pip
directement. Il me manquait juste un paquet pour pouvoir compiler psycopg2
que j'ai installé via la commande sudo apt install python3.8-dev
.
Dans le fichier migration.sh
, j'ai remplacé python3 -m virtualenv -p $python_path venv
par virtualenv -p python3.7 venv
.
Après ça, j'ai relancé ce script. Plus de rouge ! Mais il me reste encore une erreur, a priori lors de l'exécution de la commande geonature update_configuration --build=false
:
Update app configuration
Traceback (most recent call last):
File "/usr/bin/supervisorctl", line 6, in <module>
from pkg_resources import load_entry_point
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3242, in <module>
@_call_aside
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3226, in _call_aside
f(*args, **kwargs)
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3255, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 568, in _build_master
ws.require(__requires__)
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 886, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/geonatureadmin/.local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 772, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'supervisor==3.3.1' distribution was not found and is required by the application
Un problème sur le supervisor maintenant ?
Je pense qu’il y a une différence entre la version de python de supervisor (probablement python 3.6 car par défaut pour ubuntu 18.04) et la version de python lancé par « python3 » (probablement python3.7). Il faudrait par exemple mettre à jour la première ligne du fichier /usr/bin/supervisorctl
pour indiquer #!/usr/bin/env python3.6
mais c’est assez du bidouillage …
Oui, c'est ce que je suis en train de comprendre. Du coup, j'ai maintenant python en version 2.7.17 et python3 en version 3.7.11. Du coup, avec cette configuration, la migration se passe visiblement bien. Quand je lance la commande sudo supervisorctl restart all
, maintenant, GeoNature fonctionne et je peux me logger mais plus Usershub ni Taxhub ! Est-ce que ce serait dû au passage de python 3.6 au 3.7 pour seulement GeoNature ?
Ok, j'ai réussi à redémarrer Taxhub et Usershub en les réinstallant. Du coup, tout le monde tourne et les routes qui ne fonctionnaient pas hier refonctionnent. Et miracle, on dirait que la mise à jour a fonctionné puisque j'ai accès à la création des champs additionnels !
J'ai encore un problème mineur une fois connecté dans GeoNature. Quand je lance la page de login, j'ai cette erreur qui apparaît (elle était déjà présente hier il me semble).
Chargement de GeoNature : GET https://urlgeonature/api/gn_commons/modules renvoie {"code": 401, "description": "No token.", "name": "Unauthorized"}
Dans le log d'Apache, je trouve ça.
[Thu Jul 22 14:35:37.529707 2021] [proxy:error] [pid 16625:tid 140432335955712] (111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (127.0.0.1) failed
[Thu Jul 22 14:35:37.529761 2021] [proxy_http:error] [pid 16625:tid 140432335955712] [client adresseip:14848] AH01114: HTTP: failed to make connection to backend: 127.0.0.1
Ensuite, quand je me connecte, je me retrouve avec une interface un peu "moche". Les fonctionnalités ont l'air ok mais le design n'est plus aussi léché qu'avant et le logo de notre Pnr est caché en plein milieu.
Je pense que la dernière manipulation indiquée par @bouttier aurait pu fonctionner. Finalement, j'ai opté pour une solution moins bidouille si je puis dire. Petit résumé pour une migration presque fonctionnelle sous Ubuntu 18.4 :
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
, sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
, update-alternatives --list python
et update-alternatives --list python3
afin que python
soit en version 2.7.17 et python3
soit en version 3.7.11sudo apt install python3.8-dev
pour pouvoir compiler psycopg2
Vivement l'année prochaine que je migre notre GeoNature sous Debian pour éviter tous ces petits soucis ! Je clorai le sujet la semaine prochaine après avoir vérifié que tout fonctionne. Si quelqu'un a des informations pour mon petit problème d'affichage, je suis preneur !
Je reviens sur mon problème d'affichage. A priori, c'est seulement le bandeau de login du haut qui pose problème. Les éléments du bandeau gris semblent s'être insérés dans le fond bleu (même problème sur Firefox et Chrome). Je mets deux impressions d'écran : la première de ma version 2.6.2 qui va bien et une seconde de la version 2.7.2 qui a un souci.
Une idée ? N'hésitez pas à me dire s'il faut que j'ouvre un second sujet pour ce problème.
Bonjour,
Ca a l'air d'être un simple soucis de CSS non chargé ou de règles qui ne sont pas appliquées. Dans la dernière version le fichier custom.scss a changé de place,il faut aller controler ses règles et les tenir à jour.
Ok, c'est ce que je viens de voir. C'est simplement la taille de l'image qui pose problème, donc je vais l'uploader à la bonne taille sur le serveur. Merci !
Globalement, j'ai l'impression que le fait d'être sur un Ubuntu 18 a créé pas mal de soucis. En effet, on supporte et teste vraiment Debian (version 10 actuellement). Les installations sur Ubuntu fonctionnant mais utilisées uniquement par les développeurs, pas sur les serveurs en production.
C'est une erreur de notre part d'avoir laissé dans la doc, la possibilité de faire tourner GeoNature sur Ubuntu 18. Mais clairement pour être sur le même environnement que celui qu'on maintient et teste, il faut être sur Debian 10.
Donc je te conseille fortement d'être sur le bon environnement, donc d'installer un GeoNature sur un Debian 10, bien propre et d'y migrer tes données pour ne plus avoir de soucis.
Oui, surtout si le serveur ne comporte que GeoNature. la migration vers une nouvelle machine devrait être à peine plus longue que la résolution des bugs pour cette seule mise à jour
Oui @DonovanMaillard, c'est ce que je me sui dis après coup...
Pour migrer vers Debian, le plus simple est d'installer un GeoNature neuf, de faire un backup de ma base actuelle (je suis avec un postgresql 10 et non 12) et de réimporter tout le backup ? Ou est-ce qu'il vaudrait mieux conserver la base de données neuve et ne réimporter que quelques tables/schémas ?
Oui, le plus simple est :
Le passage de postgres10 à 12 ne devrait pas poser de soucis je pense
Ok, merci pour les informations ! Je ferme le sujet.
Bonjour,
Depuis ma migration vers les versions 2.7.X, je n'arrive plus à me logger dans l'interface de GeoNature. Quand je réactive la version 2.6.2, pas de problème, cela fonctionne.
Le login dans Taxhub et Userhub fonctionne toujours bien, seul celui dans GeoNature pose problème. Je reçois le message d'erreur "Identifiant ou mot de passe incorrect" alors que les logins et mots de passe testés sont corrects. Par ailleurs, dans la console de Firefox/Chrome, je reçois une erreur 403.
En regardant les logs dans
/var/log/apache2/error.log
etgeonature/var/log/gn-errors/log
, je ne vois rien d'anormal. La routehttps://urlgeonature/occtax/defaultNomenclatures
renvoie une erreur 404 ce qui ne devrait pas être le cas si je comprends bien.Cela ressemble à un souci que j'ai déjà rencontré il y a quelques mois il me semble quand j'ai passé notre GeoNature en HTTPS. Quelque chose a changé dans la configuration Apache ?