[Resolu avec solution à la fin]Django sur cloudweb
... / [Resolu avec solution à l...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

[Resolu avec solution à la fin]Django sur cloudweb

by
PaulL16
Created on 2020-06-05 12:11:11 (edited on 2024-09-04 11:17:50) in Hébergement Cloud Web

Bonjour,

Je bataille depuis une bonne journée pour faire fonctionner mon site Django sur mon cloud web. En SSH, j'arrive bien à lancer le serveur façon développement à l'aide de `python3 manage.py runserver 0.0.0.0:8000` mais l'accès par ip au site semble impossible puisque sans le port je me retrouve sur une page 'site non installé', avec le port sur une page 'la connexion a échouée' et en utilisant le sous domaine que j'ai paramétré pour le site sur une page 'We're sorry, but something went wrong'...

J'ai déjà installé des sites sur hébergement web 'classique' mais là je commence un peu à sécher.

Pour faire simple sur ce que j'ai fais pour l'instant:
-changement du moteur d'execution du site
-ajout des domaines/sous domaines désirés
-ajout du site fia ftp
-connexion via ssh
-installation de mon venv + dépendances du site
-test de lancement avec manage.py

Des idées sur la raison de ces résultats ?


2 Replies ( Latest reply on 2020-06-16 14:50:58 by
PaulL16
)

Bonjour,

Vérifie que le port est ouvert
Vérifie que ta requête est bien traitée

Les commandes via SSH sur un cloud web semblent assez restreintes, si je "scan" le port 8000 de l'adresse ip de mon serveur, je me retrouve avec un Connection timed out. Le port est donc très certainement fermé.

Après avoir consulté les logs apache du serveur, je vois bien des requêtes retournant l'erreur 500 le nom de domaine que j'ai lié à mon serveur.
Là où je suis embêté désormais c'est qu'il semble complexe de pouvoir déployer sans pouvoir configurer ou Apache ou Nginx

Je n'avais pas vu que c'était du cloud web pardon, je ne connais pas du tout ce produit.

Bonjour,

le lancement de votre site web Django ne se fait pas via SSH mais via passenger/wsgi.

Vous pouvez suivre cette documentation https://docs.ovh.com/fr/cloud-web/installer-django-cms-cloud-web/#etape-6-faites-le-lien-entre-django-cms-et-le-moteur-dexecution-de-votre-cloud-web qui explique les étapes pour le déploiement de Django CMS.


Ou encore une autre documentation : https://www.phusionpassenger.com/library/walkthroughs/start/python.html#adding-a-wsgi-file

Une fois votre site lancé, il sera accessible via les ports HTTP standards (80/443).

En complément si vous souhaitez plus d'informations sur les éventuelles erreurs lors du chargement de votre site, vous pouvez changer l'environnement d'exécution de production à development, dans ce cas passenger affichera la stack d'erreur.

> vous pouvez changer l'environnement d'exécution de production à development

il n'y pas cette notion dans cloudWeb?
si oui, comment faire alors?

ok, propre à pyhton alors :/

Propre aux langages utilisant passenger ( nodejs, ruby, python)

Bonjour,

Merci ArnaudF1 pour ton aide, j'ai bien pu avancer. Désormais mon site Django fonctionne à un détail près:

Les ressources statiques du site ne semblent pas être prise en charge par passenger.

De mon coté j'ai cherché à utiliser la commande "collectstatic" du manage.py mais ça ne semble pas suffir

Il ne semble rien y avoir du côté de passenger pour gérer ces données et je ne suis pas encore assez familiarisé avec OVH et sa doc pour trouver une piste

Peut-être avez-vous souvenir d'un outil ou une solution mis en place sur les cloud web pour gérer les ressources statiques ?

Bon, je m'auto répond et je met la solution avec l'espoir que ça aide des gens souhaitant placer leur site Django sur un cloud Web:

Après avoir placé votre projet dans www:
Inspirez-vous de la doc d'ovh pour Django CMS(Notez que Django et Django CMS ne sont pas la même chose, bien évidement) principalement sur la partie "moteur d'execution" et "multi-site", dans un premier temps.
https://docs.ovh.com/fr/cloud-web/installer-django-cms-cloud-web/#etape-6-faites-le-lien-entre-django-cms-et-le-moteur-dexecution-de-votre-cloud-web

Installez vos dépendances à l'aide de pip et profitez-en pour faire un collectstatic à ce moment (vous ne pourrez plus le faire sans bidouiller plus tard à cause de droits)

Là, la doc donnée par ArnaudF1 est la seconde piste. Concentrez-vous sur le fichier passenger_wsgi.py et n'oubliez pas de créer un lien symbolique avec votre server.py (comme sur la doc ovh/django CMS)
https://www.phusionpassenger.com/library/walkthroughs/start/python.html#adding-a-wsgi-file

Si le contenu de passenger_wsgi.py ne suffit pas à faire apparaître votre site (même sans les ressources statiques), essayez d'y injecter le contenu présent dans la doc ovh de Django cms contenant la ligne
`application = get_wsgi_application()`

Placez votre dossier static dans le dossier "public" (qui a été crée en même temps que la configuration du moteur d'execution) SANS OUBLIER LE DOSSIER 'static'. Je suppose que votre dossier static comprends toutes les ressources statiques que vous avez collecté avec "collectstatic" plus tôt, si ce n'est pas le cas, placez le dossier que vous avez choisit dans "Public"

Normalement, à ce stade, votre site est en ligne avec tout qui fonctionne. En fonction des paramètres de vos mail, il est possible que vous ayez aussi à changer l'host que vous avez définit par "smtp.votrenomdedomaine.fr/com"

Un grand merci à ArnaudF1 pour son aide, sans lui, je regarderai encore la page d'erreur de Phusion Passenger !

Replies are currently disabled for this question.