IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Déployer django Linux/Apache


Sujet :

Django Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut Déployer django Linux/Apache
    Je n'y arrive pas ! en plus ça m'énerve ...
    Bon j'ai essayé la méthode WSGI, pas mieux, je réessaye donc avec mod_python.
    J'ai modifié httpd.conf avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE monprojet.settings
        PythonDebug On
    </Location>
    Ce qui fait que tous les sites même ceux qui fonctionnent normalement passent par django et donc plantent !
    Je voudrais donc que django ne fonctionne qu'avec un nom de domaine spécifique, quelle est la solution ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Par défaut
    Un peu plus de détails sur ta plateforme, ça serait pas mal.
    Un truc qui fonctionne chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Location "/tonSite/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE tonSite.settings
        PythonOption django.root /tonSite
        PythonDebug On
        PythonPath "['chemin/vers/ton/projet'] + sys.path"
    </Location>
    La ligne pythonpath c'est uniquement si ton projet n'y est pas déjà (dans le pythonpath)

    Rien de + que dans la doc en fait.

    Après pour déployer un projet, il te faudra un dédié ou un mutualisé adéquat (beaucoup d'hébergeurs ne proposent python qu'en cgi).
    alwaysdata offre des comptes gratuits suffisants pour faire ses premiers test.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    J'ai mon propre dédié sous Debian, donc je fais ce que je veux
    J'essaye ta proposition, je te tiens au courant.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    Toujours pareil, ça ne fonctionne pas, je dois me mélanger entre l'adresse web et le chemin physique sur le serveur, voila mon httpd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Location "/django.monsite.fr/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE monsite.settings
        PythonOption django.root /django.monsite.fr
        PythonDebug On
        PythonPath "[/var/www/sites/dtc/monsite.fr/subdomains/django/html/monsite'] + sys.path"
    </Location>

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 13
    Par défaut
    Je te conseille vraiment de persévérer et de passer par mod_wsgi qui est la meilleure méthode pour déployer du Django avec Apache.

    Je n'ai jamais eu de problème en suivant la doc de Django sur le sujet. Pourrais-tu préciser les messages d'erreur que tu obtiens ? Car « ça ne fonctionne pas », ça ne nous avance pas.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    Évidemment
    En fait si je mets "/" uniquement dans httpd.conf, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    MOD_PYTHON ERROR
     
    ProcessId:      12512
    Interpreter:    'django.monsite.fr'
     
    ServerName:     'django.monsite.fr'
    DocumentRoot:   '/var/www/sites/dtc/monsite.fr/subdomains/django/html'
     
    URI:            '/monsite/'
    Location:       '/'
    Directory:      None
    Filename:       '/var/www/sites/dtc/monsite.fr/subdomains/django/html/monsite/'
    PathInfo:       ''
     
    Phase:          'PythonHandler'
    Handler:        'django.core.handlers.modpython'
     
    Traceback (most recent call last):
     
      File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
        default=default_handler, arg=req, silent=hlist.silent)
     
      File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
        result = _execute_target(config, req, object, arg)
     
      File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
        result = object(arg)
     
      File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 228, in handler
        return ModPythonHandler()(req)
     
      File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 191, in __call__
        self.load_middleware()
     
      File "/var/lib/python-support/python2.5/django/core/handlers/base.py", line 31, in load_middleware
        for middleware_path in settings.MIDDLEWARE_CLASSES:
     
      File "/var/lib/python-support/python2.5/django/conf/__init__.py", line 28, in __getattr__
        self._import_settings()
     
      File "/var/lib/python-support/python2.5/django/conf/__init__.py", line 59, in _import_settings
        self._target = Settings(settings_module)
     
      File "/var/lib/python-support/python2.5/django/conf/__init__.py", line 94, in __init__
        raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
     
    ImportError: Could not import settings 'monsite.settings' (Is it on sys.path? Does it have syntax errors?): No module named monsite.settings
    Si je mets le httpd.conf comme précédemment, alors j'arrive sur une page affichant l'arborescence de mon serveur, django n'est pas instancié.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    En ce qui concerne la méthode WSGI, les erreurs ne sont jamais les mêmes, et si j'actualise (F5) régulièrement au bout de 4 ou 5 fois, ma page de test s'affiche normalement ... C'est à désespérer !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Par défaut
    Je suis pas calé pour wsgi mais jette un œil sur tes logs d'erreur et checke les permissions.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    Je suis reparti sur un projet from scratch si j'utilise cette configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE groupefp.settings
        PythonOption django.root /django.monsite.fr
        PythonDebug On
        PythonPath "['/var/www/sites/dtc/monsite.fr/subdomains/django/html/', '/usr/lib/python2.5/site-packages/django' ] + sys.path"
    </Location>
    Alors ça fonctionne, mais tous les sites hébergés passe par mod_python, donc il n'y a plus que mon projet de fonctionnel.
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Location "/django.monsite.fr/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE groupefp.settings
        PythonOption django.root /django.monsite.fr
        PythonDebug On
        PythonPath "['/var/www/sites/dtc/monsite.fr/subdomains/django/html/', '/usr/lib/python2.5/site-packages/django' ] + sys.path"
    </Location>
    Alors tous les sites PHP refonctionnent, mais mon projet ne démarre pas, j'ai droit à la page Apache comme s'il attendait un index.php, mod_python n'est pas exécuté.
    Que faut-il faire ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    Up ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 9
    Par défaut
    Essaye de lire cet article :
    http://www.djangofoo.com/17/django-m...-deploy-exampl

    (mod wsgi)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 47
    Par défaut
    Merci pour ce lien, mais j'ai enfin découvert pourquoi aucun tuto ne fonctionnait pour mon cas, en fait j'utilise un panel d'administration et celui-ci créer des environnements virtuels pour chaque espace d'hébergement, et c'était dans cet espace virtuel qu'il fallait travailler

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. django et apache
    Par trazomtg dans le forum Général Python
    Réponses: 0
    Dernier message: 03/01/2015, 01h06
  2. [linux] [apache-tomcat-5.5.17.tar.gz] Démarrage automatique ?
    Par ghohm dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 03/08/2006, 17h39
  3. Sécuriser son serveur Apache sous Linux
    Par rolkA dans le forum Sécurité
    Réponses: 6
    Dernier message: 01/12/2003, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo