2017-10-14 15 views
0

J'essaye de déployer ma première application Django (sur A2 Hosting). Malheureusement, je n'ai pas accès à mon fichier de configuration Apache2 (et/ou httpd), je ne peux modifier que le fichier .htaccess que vous pouvez voir ci-dessous. Après de nombreux essais, je pense que c'est le serveur Apache qui ne peut pas charger le fichier wsgi.py, parce que j'ajoute un fichier journal, crée quand le fichier wsgi.py est appelé et il n'est pas créé (j'ai essayé manuellement et les fichiers journaux sont correctement créés).Comment configurer le déploiement Django .htaccess

Maintenant, tout ce que j'essaie de faire pour imprimer le "Wello World" Django, parce que je pensais, si je ne peux pas passer par cette étape de base, comment puis-je déployer ma "vraie" application ... Enfin, je cours avec Django 1.11.6 et Python 3.5.4 sur un environnement virtuel.

.htaccess

DirectoryIndex /home/hairduseres/public_html/myapp/myapp/myapp/wsgi.py 
WSGIScriptAlias//home/user/public_html/myapp/myapp/myapp/wsgi.py 
WSGIPythonHome /home/user/virtualenv/myapp/3.5 
WSGIPythonPath /home/user/public_html/myapp 
<Directory /home/user/public_html/myapp/myapp/myapp/> 
    <Files wsgi.py> 
     Order deny,allow 
     Allow from all 
    </Files> 
</Directory> 
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN 
PassengerAppRoot "/home/user/public_html/myapp" 
PassengerBaseURI "/myapp" 
PassengerPython "/home/user/virtualenv/myapp/3.5/bin/python3.5" 
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END 

wsgi.py

""" 
WSGI config for myapp project. 

It exposes the WSGI callable as a module-level variable named ``application``. 

For more information on this file, see 
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 
""" 

import os 

from django.core.wsgi import get_wsgi_application 

print('===== sys.path/PYTHONPATH =====') 
for k in sorted(os.environ.keys()): 
    v = os.environ[k] 
    print ('%-30s %s' % (k,v[:70])) 
print(os.environ['VIRTUAL_ENV']) 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") 

logs = open("/home/user/logs", 'a') 
logs.write("(wsgi.py) file correctly load \n") 
logs.close() 

application = get_wsgi_application() 

J'ai déjà un coup d'oeil sur: Django AND .htaccess rewrites/redirects, is this possible?, Configure WSGI with Django on OpenShift , sur le site web Django et bien sûr aussi beaucoup autre site web, malheureusement, ils expliquent comment déployer l'application Django lorsque l'utilisateur a accès à l'Apac Le fichier conf ...

Répondre

2

Vous ne pouvez pas utiliser WSGIScriptAlias ou les autres directives mod_wsgi que vous essayez d'utiliser dans un fichier .htaccess. Si vous n'avez aucun contrôle sur le serveur Apache httpd, il est peu probable que vous puissiez utiliser mod_wsgi.

+0

Donc, je ne peux pas utiliser mod_wsgi, mais comment puis-je dire à mon serveur Apache de lire mon fichier wsgi.py? – Rekoc

+0

Vous devrez demander à votre fournisseur de service si c'est possible. –