Open JLuc opened 4 years ago
Salut,
si tu utilises la version 2.0 de pytition (ou bien la tête de la branche master) il faut éditer le fichier base.py
.
C'est lui qui contient la config (l'équivalent de settings.py
dans la plupart des projets Django).
Il est là : https://github.com/pytition/Pytition/blob/master/pytition/pytition/settings/base.py
Donc dans pytition/pytition/settings/base.py
Je viens de voir que la doc n'était pas à jour, je l'ai mise à jour, merci :)
Après nos discussions sur le ticket #167 , j'ai testé aussi Simple hosting, mais avec un autre projet et en utilisant postgreSQL. J'ai rédigé ce tutoriel, qui doit pouvoir être adapté pour du MySQL aussi.
Je voulais mettre un deuxième site, mais apparemment on ne peut avoir qu'un seul dépôt git pour une instance python.
Salut @numahell et @JLuc .
Je suis en train de "proprifier" la manière de gérer la config de pytition.
Du coup, sur les derniers commits de la branche master, il faut maintenant copier config_example.py
en config.py
(ou autre nom) et éditer la config à l'intérieur.
Les valeurs "par défaut" sont toujours dans base.py
qui est importé au début du config_example.py
.
Ca a l'avantage que maintenant on ne modifie plus un des fichiers distribué par Pytition.
Donc typiquement si on a déployé son instance à partir d'un git clone
du dépot, on n'a plus de modification locale d'un fichier versionné par git
.
Donc on peut plus facilement mettre à jour via git pull
.
Ca rajoute en revanche la contrainte de devoir exporter la variable d'environnement suivante : DJANGO_SETTINGS_MODULE=pytition.settings.config
(ou .le_nom_de_ma_config) dans son Apache/nginx/uwsgi.
Ca me parait plus propre comme ça mais ça peut encore évoluer :) Aussi, je suis en train de rédiger la documentation d'installation et de configuration, c'est encore lacunaire et basique mais ça ressemble à ça : https://pytition.readthedocs.io/en/latest/
Voilà :)
Je pense que c'est une bonne pratique d'avoir un fichier de settings local à part et non commité, ça évite les erreurs. Je rajouterais config.py
dans le fichier .gitignore
pour éviter de commiter le mot de passe de la base de données. Au moment du déploiement, on le transfère manuellement vers le serveur via ssh ou ftp.
De toutes manières, quoiqu'on fasse il faut indiquer quelque part dans quelle configuration on se trouve : dev, test, prod… donc l'indiquer au niveau du wsgi.py
est tout à fait valable.
Sinon il y a local_settings.py
dans le .gitignore
déjà, à voir comment appeler le fichier de config local ^^
I opened an instance of gandi python simple hosting platform.
Le dossier racine du site par défaut est
/srv/data/web/vhosts/default
. Il n'y a donc pas dewww
comme dans la doc d'install, mais je suppose quedefault
est l'équivalent dewww
. Il y a d'autre différences qui ont nécessité de petites adaptationsvhosts
n'est pas accessible en écriture donc j'ai fait le pytition_venv dansdefault
(avec du recul je comprend que j'aurais mieux du le mettre en dehors de l'espace accessible sur le web, par exemple dans/srv/data/home
où on peut écrire aussi )/srv/data/var/log/www/
existe bien mais il est réservé aux logs de gandi, et pip ne peut pas y écrire son fichier de log, ce qui déclenche une palanquée d'erreurs lors de l'install, mais ça ne bloque pas l'install. Peut-on/comment configurer la destination des logs ? cf piplogerrors.txtÀ cette étape, ç'a a l'air un peu en place puisque
django-admin --version
renvoie :2.2.11
Après c'est plus coton. Il n'y a pas de fichier
settings.py
à l'endroit indiqué par la doc d'install, et je n'en connais pas le format. Une recherche sur internet me donne des pistes. La doc pourrait elle donner un fichiersettings.py
exemple ? Est ce normal qu'il n'existe pas au début ? Je copie plus loin le fichier auquel j'aboutis après quelques recherches.J'ai alors galéré à essayer de trouver comment le faire prendre en compte pour
django-admin
car il y avait le message en rouge :Note that only Django core commands are listed as settings are not properly configured (error: No module named 'pytition').
. J'ai notamment essayé avecDJANGO_SETTINGS_MODULE='/srv/data/web/vhosts/default/pytition/pytition/pytition/settings.py'
et idem sans py, mais ça donné :Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
Puis j'ai vu qu'il était correctement positionné à l'intérieur même du code de
manage.py
alors j'ai laissé tomber le pb dedjango-admin
.Donc je fais
python3 manage.py migrate
, et j'ai l'erreur_mysql_exceptions.OperationalError: (1045, "Access denied for user 'hosting-user'@'localhost' (using password: NO)")
qui semble indiquer que le fichier de settings n'est pas pris en compte.Que faut il faire ?
mon my.cnf
Rq : j'ai au préalable créé la base de donnée.
mon settings.py :