J'ai une application django qui fonctionne parfaitement sous le serveur de développement django. Maintenant j'essaye de l'exécuter sous apache2.2 en utilisant le mod_wsgi.
Dans le fichier httpd.conf de apache J'ai ajouté:
Obtention d'un modèle d'annulation passant du serveur de développement django au serveur apache
<IfModule wsgi_module>
WSGIScriptAlias /index my_path_to_wsgi_modules/django.wsgi
</IfModule>
et le module django.wsgi contient toute la configuration de base, comme expliqué dans la documentation de django: http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/
Malheureusement, quand je lance le serveur et essayez d'accéder à la page principale j'obtiens la page de modèle mais sans données variables dedans. Le journal du serveur dit:
[Fri Feb 18 13:50:33 2011] [error] [client 127.0.0.1] File does not exist: /usr/local/apache2/htdocs/api, referer: http://127.0.0.1/example/
Comme je l'ai dit la chose étrange est que le même code fonctionne parfaitement sous serveur de développement django. Je suis nouveau dans l'application Web de programmation, s'il vous plaît, quelqu'un peut-il aider?
Mon fichier django.wsgi ressemble à ceci:
import os import sys
de sep importation os.path
basePath = «/home/example/WorkSpace/examplews/src »
sys.path.append (basePath)
sys.path.append ('/ home/example/WorkSpace/examplews/src/examplews')os.environ [ 'DJANGO_SETTINGS_MODULE'] = 'examplews.settings de
import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
et mon fichier httpd.con, comme ceci:
ServerRoot "/ usr/local/apache2"
Listen 80
LoadModule modules wsgi_module/mod_wsgi.so
utilisateur apache
Groupe apacheServerAdmin exemple @ domaine.com
DocumentRoot "/ usr/local/apache2/htdocs"
<Directory />
Options de FollowSymLinks
AllowOverride Aucun
Order Deny, permet
Deny de tous
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinksAllowOverride Aucun
Order allow, deny
Allow de tous
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php index.sh default.jsp
</IfModule>
<FilesMatch "^\.ht">
ordre allow, deny
Deny de tous
Satisfy Tous
</FilesMatch>
ErrorLog "logs/error_log"
logLevel avertir
<IfModule log_config_module>
LogFormat « % h% l% u% t \ "% r \"%> s% b \ "% {Référenceur} i \" \ "% {Utilisateur-Agent} i \" "combiné
LogFormat"% h% l% u% t \ "% r \ "%> s% b" commun
<IfModule logio_module>
LogFormat "% h% l% u% t \" % r \ » %> de% b de \ "% {Referer} i \" \ "% {User-Agent} i \" % I % O » combinedio
</IfModule>
CustomLog "logs/access_log" commun
</IfModule>
<IfModule alias_module>
</IfModule>
<IfModule cgid_module>
</IfModule>
<IfModule wsgi_module>
WSGIScriptAlias / main/home/example/WorkSpace/examplews/src/examplews/apache_conf/django.wsgi
</IfModule>
<Directory "/home/example/WorkSpace/examplews/src/examplews/apache_conf">
Order allow, deny
Allow de tous
</Directory>
texte DefaultType/plain
<IfModule mime_module>
TypesConfig/mime.types
conf AddType application/x-compress .Z Application AddType/x-gzip .gz .tgz</IfModule>
<IfModule ssl_module>
démarrage SSLRandomSeed builtin
SSLRandomSeed connecter builtin
</IfModule>
Est-ce que '/ usr/local/apache2/htdocs/api' existe réellement? Peut-être que quelque chose d'autre dans Apache est mal configuré. –
Non,/usr/local/apache2/htdocs/api cela n'existe pas. En fait, il s'agit d'une URL virtuelle qui devrait être accessible via django urls.py – green69
S'il vous plaît poster votre configuration complète d'Apache, et le fichier wsgi. –