J'utilise une instance ec2 pour héberger des sites Django. Les sites web sont servis par Apache avec l'utilisation de mod_wsgidjango, apache, mod_wsgi et python py-scrypt ne fonctionnent pas ensemble
Depuis quelques jours j'essaie de déployer une nouvelle plate-forme Web que nous développons mais je rencontre un problème qui me semble impossible à résoudre. Pour des raisons de sécurité, nous utilisons scrypt 0.4 pour sécuriser les informations personnelles des utilisateurs comme les mots de passe.
Sur le serveur de développement tout fonctionne comme un charme, mais lorsque nous déployons sur notre serveur en direct, nous obtenons une erreur 500 interne au serveur. Le journal apache me donne le message suivant
Fin prématurée des en-têtes de script: socialmarketingplatform.wsgi, referer:
Quand je décommenter la ligne où le module est utilisé scrypt tout fonctionne bien. Aussi quand je cours le serveur livré avec Django avec scrypt activé tout fonctionne sur le serveur de phase. C'est donc une combinaison de mod_wsgi, django et scrypt qui génère l'erreur.
J'utilise le fichier wsgi suivant:
import os
import sys
path = '/var/www/vhosts/[sub_domain]'
if path not in sys.path:
sys.path.append(path)
sys.path.append(path + '/socialmarketingplatform')
os.environ['DJANGO_SETTINGS_MODULE'] = 'socialmarketingplatform.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Et la configuration VirtualHost suivante:
<VirtualHost *:80>
#Basic setup
ServerAdmin [removed email]
ServerName luxdevelopment.net
ServerAlias [sub domain]
DocumentRoot /var/www/vhosts/[sub domain]/socialmarketingplatform/
Alias /media/admin /usr/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/contrib/admin/media
Alias /media /var/www/vhosts/[sub domain]/socialmarketingplatform/media
<Location media="">
SetHandler None
</Location>
LogLevel warn
ErrorLog /var/log/httpd/smp_error.log
CustomLog /var/log/httpd/smp_access.log combined
WSGIDaemonProcess luxdevelopment.net user=apache group=apache threads=25
WSGIProcessGroup luxdevelopment.net
WSGIScriptAlias//var/www/cgi-bin/socialmarketingplatform.wsgi
</VirtualHost>
J'espère que quelqu'un peut me aider avec ce problème. S'il y a d'autres questions faites le moi savoir.
Argh! Ne mettez pas votre code dans votre DocumentRoot! Surtout si vous êtes préoccupé par la sécurité. –
@ daniel-roseman: C'est pourquoi ma racine de document est/var/www/html/si ce n'est pas encore assez sécurisé, que suggérez-vous? Peut-être que je vous ai mal compris, je verrai si je peux déplacer la source en dehors de ce dossier. Merci pour votre suggestion. –
Eh bien ce que je veux dire, c'est que vous définissez DocumentRoot à l'emplacement de votre code, dans la configuration vhost. Ne fais pas ça. –