Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2021-03-05T12:57:00+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Déploiement d'un site Django, message #2317772021-03-05T12:57:00+01:00rayanebakari1/@rayanebakari1https://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p231777<figure><blockquote>
<p>Mmmh en effet, ça a fonctionné !</p>
<p>Le site est finalement en ligne… manque plus qu’à le faire vivre ! <img src="/static/smileys/svg/heureux.svg" alt=":D" class="smiley"></p>
<p>Merci !</p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185423">Wizix</a></figcaption></figure>
<p>En gros t’as fait comment</p>Déploiement d’un site Django sur o2switch, message #2313522021-02-22T01:07:27+01:00rayanebakari1/@rayanebakari1https://zestedesavoir.com/forums/sujet/15061/deploiement-dun-site-django-sur-o2switch/?page=1#p231352<p>Salut à tous ,j’aimerais bien si c’est possible que quelqu’un m’aide à déployer mon site sur o2switch étape par étapeMerci bien je tourne en rond de puis un bon moment
Merci </p>Déploiement d'un site Django, message #1854232018-08-03T08:10:57+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185423<p>Mmmh en effet, ça a fonctionné !</p>
<p>Le site est finalement en ligne… manque plus qu’à le faire vivre ! <img src="/static/smileys/heureux.png" alt=":D" class="smiley"></p>
<p>Merci !</p>Déploiement d'un site Django, message #1854222018-08-03T00:28:33+02:00klafyvel/@klafyvelhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185422<p>Ça vient peut-être pas de là, mais méfies-toi de comment tu indiques le fichier ici :</p>
<figure><blockquote>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span></div><pre><code class="hljs language-1c"> 'read_default_file': '../mysql.cnf',
</code></pre></div>
<p></p>
</blockquote><figcaption><a href="https://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185398">Wizix</a></figcaption></figure>
<p>Essaie d’utiliser os.path.join plutôt. Dans ton <code>settings.py</code> tu as une variable <code>BASE_DIR</code> de laquelle partir. Quelque chose comme </p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span></div><pre><code class="hljs language-python">os.path.join(BASE_DIR, <span class="hljs-string">"mysql.cnf"</span>)
</code></pre></div>
<p>devrait être mieux.</p>Déploiement d'un site Django, message #1853982018-08-02T18:17:40+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185398<p>Merci à vous !</p>
<p>J’ai donc suivi vos conseils et avec l’aide du support en plus je m’en suis sorti. Désormais les pages qui ne demandent pas accès à la base de donnée sont servies sans encombre. Vous vous en doutez, j’ai un problème avec ma base de donnée.</p>
<p>Lorsque j’essaye de faire mes migrations ou alors d’accéder à une page qui à besoin de faire des requêtes à la base de donnée, j’obtiens le message suivant :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span></div><pre><code class="hljs language-text">"Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)"
</code></pre></div>
<p>J’ai donc demandé au support qui m’a répondu:</p>
<blockquote>
<p>Cette erreur indique que vous tentez de vous connecter en localhost et non sur <adresse de la bdd>. Il vous faut donc faire les changements nécessaires au niveau de votre code pour pointer sur le bon serveur.</p>
</blockquote>
<p>Voici donc mon fichier <code>mysql.cnf</code> :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-text">[client]
database = <database>
host = <adresse de la bdd>
port = 3306
user = <user>
password = <password>
default-character-set = utf8
</code></pre></div>
<p>et voici comment je l’utilise dans mon <code>setup.py</code> :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-py">DATABASES = {
<span class="hljs-string">'default'</span>: {
<span class="hljs-string">'ENGINE'</span>: <span class="hljs-string">'django.db.backends.mysql'</span>,
<span class="hljs-string">'OPTIONS'</span>: {
<span class="hljs-string">'read_default_file'</span>: <span class="hljs-string">'../mysql.cnf'</span>,
},
}
}
</code></pre></div>
<p>Où est l’erreur ? Peut être que ça vient de la variable <code>INTERNAL_IPS</code> qui est toujours sur <code>['127.0.0.1']</code> ? Si oui, que dois-je ajouter ?</p>
<p>Merci encore !</p>Déploiement d'un site Django, message #1852812018-07-31T23:25:55+02:00rezemika/@rezemikahttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185281<p><a href="/membres/voir/klafyvel/" rel="nofollow" class="ping ping-link">@<span class="ping-username">klafyvel</span></a> : Non en effet, il contient juste ceci.</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-python"><span class="hljs-keyword">import</span> os
<span class="hljs-keyword">from</span> django.core.wsgi <span class="hljs-keyword">import</span> get_wsgi_application
os.environ.setdefault(<span class="hljs-string">"DJANGO_SETTINGS_MODULE"</span>, <span class="hljs-string">"goose.settings"</span>)
application = get_wsgi_application()
</code></pre></div>
<p>Ça remonte à un moment, mais je crois que je m’étais basé sur ce tuto : <a href="https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-14-04">https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-14–04</a></p>
<p>Cela dit, l’exemple que j’ai fourni contient peut-être quelques erreurs ou mauvaises pratiques, j’ai très peu d’expérience en sysadmin (en fait, il s’agissait de ma première mise en prod).</p>Déploiement d'un site Django, message #1852782018-07-31T22:47:53+02:00klafyvel/@klafyvelhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185278<p><a href="/membres/voir/rezemika/" rel="nofollow" class="ping ping-link">@<span class="ping-username">rezemika</span></a> : ah, intéressant du coup tu n’as pas à modifier le wsgi.py ?</p>Déploiement d'un site Django, message #1852762018-07-31T22:35:27+02:00rezemika/@rezemikahttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185276<p>Salut !</p>
<p>Normalement, il est possible de spécifier l’environnemet Python à utiliser directement dans la configuration d’Apache. Voilà la config que j’utilisais pour <a href="https://zestedesavoir.com/forums/sujet/9447/goose-search/">Goose</a> (juste un peu modifiée ici, en prod j’ai aussi la configuration du HTTPS sur le port 443). À adapter selon le nom du site et l’emplacement des fichiers bien sur. <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>
<p>Dans mon cas, c’était organisé comme ceci.</p>
<ul>
<li>Tous les projets dans <code>/websites/</code></li>
<li>Tout ce qui concerne un même projet dans un dossier : <code>/websites/<nom-du-projet>/</code>.</li>
<li>L’environnement virtuel dans <code>/websites/<nom-du-projet>/venv/</code>.</li>
<li>Le dossier de Django dans <code>/websites/<nom-du-projet>/<nom-du-projet>/</code>.</li>
</ul>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-apache"><span class="hljs-section"><VirtualHost *:80></span>
<span class="hljs-attribute"><span class="hljs-nomarkup">ServerName</span></span> goose-sear.ch
<span class="hljs-attribute">ServerAlias</span> www.goose-sear.ch
<span class="hljs-attribute">ServerAlias</span> localhost
<span class="hljs-attribute">ErrorLog</span> <span class="hljs-variable">${APACHE_LOG_DIR}</span>/goose/error.log
<span class="hljs-attribute">CustomLog</span> <span class="hljs-variable">${APACHE_LOG_DIR}</span>/goose/access.log combined
<span class="hljs-comment"># Redirige "goose-sear.ch/static" vers "/websites/goose/goose/static".</span>
<span class="hljs-attribute">Alias</span> /static /websites/goose/goose/static
<span class="hljs-section"><Directory /websites/goose/goose/static></span>
<span class="hljs-attribute">Require</span> <span class="hljs-literal">all</span> granted
<span class="hljs-section"></Directory></span>
<span class="hljs-section"><Directory /websites/goose/goose/goose></span>
<span class="hljs-section"><Files wsgi.py></span>
<span class="hljs-attribute">Require</span> <span class="hljs-literal">all</span> granted
<span class="hljs-section"></Files></span>
<span class="hljs-section"></Directory></span>
<span class="hljs-comment"># Indique l'environnement Python à utiliser.</span>
<span class="hljs-attribute">WSGIDaemonProcess</span> goose-sear.ch python-path=/websites/goose/goose python-home=/websites/goose/goose-env
<span class="hljs-attribute">WSGIProcessGroup</span> goose-sear.ch
<span class="hljs-attribute">WSGIScriptAlias</span> / /websites/goose/goose/goose/wsgi.py process-group=goose-sear.ch
<span class="hljs-section"></VirtualHost></span>
</code></pre></div>Déploiement d'un site Django, message #1852662018-07-31T19:13:36+02:00klafyvel/@klafyvelhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185266<p>Salut,
Je ne connais pas o2switch, mais pour déployer un site Django j’avais rédigé (en partie) ceci sur le wiki de mon asso (il faut éventuellement adapter, hésite pas si tu as des questions):</p>
<h3 id="concernant-django">Concernant Django<a aria-hidden="true" href="#concernant-django"><span class="icon icon-link"></span></a></h3>
<p>Pour Django, on doit utiliser le module '’'mod_wsgi’'' :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span></div><pre><code class="hljs language-nginx"> <span class="hljs-attribute">sudo</span> a2enmod wsgi
</code></pre></div>
<p>Si le module n’existe pas, il faudra installer le paquet :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span></div><pre><code class="hljs language-applescript"> sudo apt-<span class="hljs-keyword">get</span> install libapache2-<span class="hljs-keyword">mod</span>-wsgi
</code></pre></div>
<p>De plus, on doit indiquer à apache de servir vos fichiers static et media.
Pour cela il suffit d’ajouter les lignes suivantes dans le fichier du Virtual Host</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-gradle"> Alias <span class="hljs-regexp">/static/</span> <span class="hljs-regexp">/var/</span>www<span class="hljs-regexp">/monsite/</span><span class="hljs-keyword">static</span>
Alias <span class="hljs-regexp">/media/</span> <span class="hljs-regexp">/var/</span>www<span class="hljs-regexp">/monsite/</span><span class="hljs-keyword">static</span>
WSGIDaemonProcess monsite threads=<span class="hljs-number">2</span> display-name=%{<span class="hljs-keyword">GROUP</span>}
WSGIProcessGroup monsite
WSGIScriptAlias <span class="hljs-regexp">/ /</span>var<span class="hljs-regexp">/www/m</span>onsite<span class="hljs-regexp">/monprojet/</span>wsgi.py
</code></pre></div>
<p>à consulter : <a href="https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/">https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/</a></p>
<p>[…]</p>
<h3 id="déploiement-dapplications-django-dans-un-virtualenv">Déploiement d’applications Django dans un Virtualenv<a aria-hidden="true" href="#déploiement-dapplications-django-dans-un-virtualenv"><span class="icon icon-link"></span></a></h3>
<p>Pour certaines raisons (par exemple faire rager [un nom]), on peut vouloir déployer des sites en Django en utilisant des bibliothèques récentes. Une solution pour cela est d’installer lesdites bibliothèques '’via’' Pip. Le problème prend une autre dimension lorsque l’on souhaite faire cohabiter plusieurs sites avec différentes versions de Python ou de bibliothèques. Un outil très pratique est alors <a href="http://sametmax.com/les-environnement-virtuels-python-virtualenv-et-virtualenvwrapper/">virtualenv</a>. Il permet de créer un environnement Python dédié au site.</p>
<p>Supposons que vous ayez développé '’xxx’'.</p>
<h4 id="prérequis">Prérequis<a aria-hidden="true" href="#prérequis"><span class="icon icon-link"></span></a></h4>
<ul>
<li>virtualenv installé</li>
<li>Apache avec mod_wsgi installé</li>
</ul>
<h4 id="récupération-du-projet-et-installation-de-lenvironnement">Récupération du projet et installation de l’environnement<a aria-hidden="true" href="#récupération-du-projet-et-installation-de-lenvironnement"><span class="icon icon-link"></span></a></h4>
<p>On va travailler en sudo</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-stata"> sudo -Es
<span class="hljs-keyword">cd</span> /<span class="hljs-keyword">var</span>/www
# <span class="hljs-keyword">On</span> récupère votre site tout beau
git clone url_de_votre_depot
# <span class="hljs-keyword">On</span> cré<span class="hljs-keyword">e</span> un environnement virtuel <span class="hljs-keyword">d</span>é<span class="hljs-keyword">di</span>é au site
virtualenv env_xxx -p /chemin/<span class="hljs-keyword">vers</span>/python # Par exemple /usr/bin/python3
# <span class="hljs-keyword">On</span> <span class="hljs-keyword">l</span>'active
source env_xxx/bin/activate
# <span class="hljs-keyword">On</span> installe les <span class="hljs-keyword">d</span>épendances. Si vous ê<span class="hljs-keyword">tes</span> une personne <span class="hljs-keyword">de</span> qualité <span class="hljs-keyword">qui</span> utilise <span class="hljs-keyword">la</span> puissance <span class="hljs-keyword">de</span> pip freeze,
pip install -r requirements.txt
# Vous pouvez vérifier <span class="hljs-keyword">que</span> votre site <span class="hljs-keyword">est</span> <span class="hljs-keyword">pr</span>êt à marcher <span class="hljs-keyword">en</span> lançant dans le répertoire du site un
./manage.py check
</code></pre></div>
<h4 id="configuration-côté-apache">Configuration côté Apache<a aria-hidden="true" href="#configuration-côté-apache"><span class="icon icon-link"></span></a></h4>
<p>On va utiliser un virtual host comme décrit dans la section Mise en place de VirtualHost. Par exemple pour xxx.rezometz.org :</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-stylus"> <VirtualHost *:<span class="hljs-number">80</span>>
ServerName xxx<span class="hljs-selector-class">.rez</span>
ServerAlias xxx<span class="hljs-selector-class">.rezometz</span><span class="hljs-selector-class">.org</span> xxx
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/xxx-error<span class="hljs-selector-class">.log</span>
CustomLog ${APACHE_LOG_DIR}/xxx-access<span class="hljs-selector-class">.log</span> combined
<Directory /var/www/xxx>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/xxx/xxx/wsgi<span class="hljs-selector-class">.py</span>
WSGIProcessGroup www-data
WSGIDaemonProcess www-data processes=<span class="hljs-number">2</span> threads=<span class="hljs-number">16</span> maximum-requests=<span class="hljs-number">1000</span> <span class="hljs-attribute">display</span>-name=xxx
</VirtualHost>
</code></pre></div>
<p>On va ensuite éditer le wsgi.py afin de charger l’environement virtuel. Pour cela on se base sur le wsgi.py que Django a écrit pour nous.</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-tcl"> import os
import sys
VIRTUALENV_LOC = <span class="hljs-string">'/var/www/xxx/env_xxx'</span>
<span class="hljs-comment"> # Activation de l'environnement virtuel</span>
activate_env=os.path.<span class="hljs-keyword">join</span>(VIRTUALENV_LOC, <span class="hljs-string">'bin/activate_this.py'</span>)
<span class="hljs-keyword">exec</span>(compile(<span class="hljs-keyword">open</span>(activate_env, <span class="hljs-string">"rb"</span>).<span class="hljs-keyword">read</span>(), activate_env, <span class="hljs-string">'exec'</span>), {<span class="hljs-string">'__file__'</span>:activate_env})
<span class="hljs-comment"> # Ajout du répertoire du site au PATH</span>
sys.path.<span class="hljs-keyword">append</span>(<span class="hljs-string">'/var/www/xxx'</span>)
sys.path.<span class="hljs-keyword">append</span>(<span class="hljs-string">'/var/www/xxx/xxx'</span>)
<span class="hljs-comment"> # Les trucs par défaut de Django</span>
from django.core.wsgi import get_wsgi_application
os.environ.setdefault(<span class="hljs-string">"DJANGO_SETTINGS_MODULE"</span>, <span class="hljs-string">"xxx.settings"</span>)
application = get_wsgi_application()
</code></pre></div>
<p>Pour finir il suffit d’ajouter le site aux enabled et de restart le serveur comme décrit plus haut. Pensez à vérifier les droits sur le répertoire du site.</p>Déploiement d'un site Django, message #1852582018-07-31T17:18:07+02:00Wizix/@Wizixhttps://zestedesavoir.com/forums/sujet/11084/deploiement-dun-site-django/?page=1#p185258<p>Bonjour,</p>
<p>J’ai fini de développer un petit site personnel avec Django. J’en suis maintenant à l’étape qui me rebute le plus car je ne l’ai jamais réussie : le déploiement d’un site dynamique sur un serveur web.</p>
<p>Voici ce que j’ai fait pour le moment :</p>
<ul>
<li>J’ai pris un abonnement chez <a href="https://www.o2switch.fr/">o2switch</a> ;</li>
<li>J’ai configuré FileZilla pour pouvoir me connecter au serveur ;</li>
<li>J’ai (après une bonne journée de galère) réussi à obtenir l’accès SSH ;</li>
<li>En utilisant CPanel, j’ai créé une application Python dont voici la configuration :</li>
</ul>
<figure><img src="https://preview.ibb.co/ghcGg8/photo.jpg" alt="Configuration de l'app Python"><figcaption>Configuration de l'app Python</figcaption></figure>
<p>À vrai dire, je ne pense pas que cette dernière étape soit nécessaire et qu’il vaudrait mieux tout faire par SSH. Fin bon. Que dois-je faire ensuite ?</p>
<p>Merci à vous !</p>