Je rencontre un problème avec la définition d'un WSGIScriptAlias dans Apache, où tenter d'utiliser l'alias donne une erreur 404 en raison d'essayer d'atteindre l'URL "littérale". Voici la mise en place de test dans mon Apache2 sites-available/000-default.conf
(mimant le mod_wsgi Quick Start Guide):Pourquoi WSGIScriptAlias n'a-t-il aucun effet?
DocumentRoot /var/www/html
WSGIScriptAlias /wsgi_test /var/www/html/test.wsgi
<Directory /var/www/html>
Order allow,deny
Allow from all
</Directory>
Après avoir redémarré Apache2 et va mydomain.com/wsgi_test
, une page 404 est affichée. La première ligne du fichier error.log
d'Apache ci-dessous indique le serveur tente d'accéder au chemin d'URL wsgi_test
dans DocumentRoot
, non le chemin du fichier crénelage:
AH00128: File does not exist: /var/www/html/wsgi_test
AH01964: Connection to child 1 established (server nathanclonts.com:443)
(70007)The timeout specified has expired: [client 67.161.148.188:33883] AH01991: SSL input filter read failed.
Le fichier /var/www/html/test.wsgi
a le même code que mentionné ci-dessus Guide de démarrage rapide:
def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
avec des autorisations modifiee:
-rwxrw-r-- 1 username www-data 278 Apr 16 11:31 test.wsgi
quelqu'un at-il suggéré s sur où chercher d'autres configurations qui peuvent affecter cela, ou d'autres conseils de débogage? Ce qui est bizarre, c'est que j'ai configuré une autre application (Django) avec mod_wsgi qui fonctionne actuellement dans le même VirtualHost, mais il me manque évidemment quelque chose dans ce test.
Où est la configuration de Django définie par rapport à ce que vous avez ajouté? Si l'application Django est au chemin de '/', alors ce que vous ajoutez ici doit être avant cela, sinon la correspondance de '/' pour l'application Django aura la priorité. –
Il s'est avéré que c'était juste un problème avec la configuration générale d'Alias: les alias [WSGIScript] ont été définis pour 'VirtualHost *', mais pas pour 'VirtualHost *: 433' (le serveur utilise SSL). Les ajouter au fichier 'VirtualHost *: 433 l'a corrigé. Merci pour la suggestion cependant, bonne chose à garder à l'esprit! – Nathan