J'essaie de configurer MOD_WSGI sur ma boîte Ubuntu. J'ai trouvé des étapes qui indiquaient que je devais effectuer les étapes suivantes que j'ai trouvées sur http://ubuntuforums.org/showthread.php?t=833766
- sudo apt-get install libapache2-mod-wsgi
- sudo a2enmod mod-wsgi
- redémarrage sudo /etc/init.d/apache2
- sudo gedit / etc / apache2 / sites-available / default et mettre à jour le répertoire
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AddHandler cgi-script .cgi AddHandler wsgi-script .wsgi AllowOverride None Order allow,deny allow from all </Directory>
- redémarrage sudo /etc/init.d/apache2
Créé test.wsgi avec
def application(environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, response_headers) return [output]
L'étape 2 échoue car il dit qu'il ne peut pas trouver mod-wsgi même si apt-get l'a trouvé. Si je continue les étapes, l'application python s'affiche simplement en texte brut dans un navigateur.
Des idées sur ce que j'ai mal fait?
EDIT: Résultats des questions posées
automatedtester@ubuntu:~$ dpkg -l libapache2-mod-wsgi
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-======================================-======================================-============================================================================================
ii libapache2-mod-wsgi 2.5-1 Python WSGI adapter module for Apache
automatedtester@ubuntu:~$ dpkg -s libapache2-mod-wsgi
Package: libapache2-mod-wsgi
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 376
Maintainer: Ubuntu MOTU Developers <[email protected]>
Architecture: i386
Source: mod-wsgi
Version: 2.5-1
Depends: apache2, apache2.2-common, libc6 (>= 2.4), libpython2.6 (>= 2.6), python (>= 2.5), python (<< 2.7)
Suggests: apache2-mpm-worker | apache2-mpm-event
Conffiles:
/etc/apache2/mods-available/wsgi.load 06d2b4d2c95b28720f324bd650b7cbd6
/etc/apache2/mods-available/wsgi.conf 408487581dfe024e8475d2fbf993a15c
Description: Python WSGI adapter module for Apache
The mod_wsgi adapter is an Apache module that provides a WSGI (Web Server
Gateway Interface, a standard interface between web server software and
web applications written in Python) compliant interface for hosting Python
based web applications within Apache. The adapter provides significantly
better performance than using existing WSGI adapters for mod_python or CGI.
Original-Maintainer: Debian Python Modules Team <[email protected]>
Homepage: http://www.modwsgi.org/
automatedtester@ubuntu:~$ sudo a2enmod libapache2-mod-wsgi
ERROR: Module libapache2-mod-wsgi does not exist!
automatedtester@ubuntu:~$ sudo a2enmod mod-wsgi
ERROR: Module mod-wsgi does not exist!
PLUS DE MODIFICATION POUR RMYates
automatedtester@ubuntu:~$ apache2ctl -t -D DUMP_MODULES
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_worker_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgid_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
python_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
automatedtester@ubuntu:~$
ubuntu
apache-2.2
python
mod-wsgi
AutomatedTester
la source
la source
Réponses:
J'ai trouvé que c'est un bogue connu avec le paquet mod_wsgi apt-get qui a plus d'un an! Détails sur http://www.mail-archive.com/[email protected]/msg1147225.html . Le paquet apt-get n'avait pas le fichier wsgi.load donc il fallait le créer en suivant les étapes du lien ci-dessus.
Merci à tous ceux qui ont aidé!
la source
Voyez si le module est réellement chargé correctement avec:
la source
Pour autant que je sache, vous n'avez pas chargé le module mod_wsgi dans votre
httpd.conf
.J'essaierais d'abord d'ajouter les fichiers wsgi au
mods-enabled
répertoire d'Apache.Redémarrez ensuite Apache et cela devrait fonctionner.
la source
Vérifiez d'abord que le module WSGI est réellement installé:
Cela devrait vous donner la sortie, y compris le nom, la version, etc. - recherchez les lettres à gauche du nom, cela indique l'état actuel du paquet. Pour vérifier manuellement, regardez dans / etc / apache2 / mods-available / et vous devriez voir à la fois wsgi.conf et wsgi.load . Si ceux-ci existent, ils devraient avoir des liens symboliques correspondants dans / etc / apache2 / mods-enabled / .
Si l'un des ensembles n'existe pas , commencez par le corriger en premier - vous ne pouvez pas interpréter le code python via apache si apache ne peut pas trouver l'interpréteur. De plus, votre script test.py ne fonctionnera pas étant donné le directives AddHandler que vous avez configurées - cette directive indique à apache de transmettre les fichiers d'une certaine extension au gestionnaire concerné. Faites votre script test.wsgi ou changez la directive AddHandler .
la source
Avez-vous ajouté la ligne LoadModule pour provoquer le chargement de mod_wsgi? Quel est le message d'erreur réel et d'où vient-il? Voir:
http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
pour les instructions de bas niveau. Puisque vous utilisez des packages binaires, vous pouvez ignorer la compilation, mais vous devez toujours provoquer le chargement de mod_wsgi. Où / comment vous pouvez faire cela va être déterminé dans une certaine mesure par votre distribution Linux. Sur la base de ce guide, vous êtes censé avoir exécuté:
L'avez-vous réellement fait?
MODIFIER
En relisant votre question, c'est évident. Vous avez dit que les fichiers avec l'extension .wsgi sont gérés par mod_wsgi mais vous avez ensuite donné au fichier une extension .py. Utilisez plutôt .wsgi.
la source
Vous pouvez d'abord regarder la syntaxe de votre python. Vérifiez si vous avez vraiment 4 espaces après la définition de la fonction. Vérifiez le fichier python en l'exécutant d'abord via le terminal
puis si aucune erreur n'apparaît, exécutez-le via un navigateur Web.
http: // localhost / wsgi /
et au fait, vous semblez avoir manqué quelque chose pour votre fichier de configuration / virtualhost apache. Mettez cela dans les balises
d'ailleurs, apt n'a aucun problème lors de l'installation du module wsgi. Je l'ai testé tout à l'heure et j'ai réussi à exécuter un script python sur mon navigateur Web.
la source
Je ne sais pas si cela est pertinent, mais après l'exécution:
... les fichiers suivants n'existaient pas :
La réinstallation ne semble pas remplacer les fichiers manquants. Bizarre! Cependant,
purge
semblait faire l'affaire:la source