2011-03-30 1 views
6

J'installe CKAN, une application Pylônes selon les instructions suivantes: http://packages.python.org/ckan/deployment.htmlPylônes mod_wsgi (ckan) l'installation ne fonctionne pas

Mais quand je signale au serveur (pas de configuration DNS encore) en utilisant IP ou nom d'hôte, je ne voir que la page de voeux d'apache, l'application ckan n'est pas chargée.

ici est mon script mod_wsgi:

import os 
instance_dir = '/home/flavio/var/srvc/ckan.emap.fgv.br' 
config_file = 'ckan.emap.fgv.br.ini' 
pyenv_bin_dir = os.path.join(instance_dir, 'pyenv', 'bin') 
activate_this = os.path.join(pyenv_bin_dir, 'activate_this.py') 
execfile(activate_this, dict(__file__=activate_this)) 
from paste.deploy import loadapp 
config_filepath = os.path.join(instance_dir, config_file) 
from paste.script.util.logging_config import fileConfig 
fileConfig(config_filepath) 
application = loadapp('config:%s' % config_filepath) 

ici est ma configuration d'hôte virtuel:

<VirtualHost *:80> 

ServerName dck093 

ServerAlias dck093 

WSGIScriptAlias//home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py 
# pass authorization info on (needed for rest api) 
WSGIPassAuthorization On 

ErrorLog /var/log/apache2/ckan.emap.fgv.br.error.log 
CustomLog /var/log/apache2/ckan.emap.fgv.br.custom.log combined 
<Directory /home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin> 
    Order deny,allow 
    Allow from all 
</Directory> 
</VirtualHost> 

J'essaie de désactiver le site 000 par défaut (avec a2dissite), mais dind't help.Après cela, je reçois une page d'erreur interne du serveur. Après avoir corrigé certaines permissions, j'ai réussi à obtenir ce journal d'erreurs Pylons:

sudo tail /var/log/apache2/ckan.emap.fgv.br.error.log 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110]  app_iter = self.application(environ, start_response) 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110] File "/usr/lib/pymodules/python2.6/repoze/who/middleware.py", line 107, in __call__ 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110]  app_iter = app(environ, wrapper.wrap_start_response) 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110] File "/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/lib/python2.6/site-packages/pylons/middleware.py", line 201, in __call__ 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110]  self.app, environ, catch_exc_info=True) 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110] File "/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/lib/python2.6/site-packages/pylons/util.py", line 94, in call_wsgi_application 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110]  app_iter = application(environ, start_response) 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110] File "/usr/lib/pymodules/python2.6/weberror/evalexception.py", line 226, in __call__ 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110]  "The EvalException middleware is not usable in a " 
[Wed Mar 30 12:38:32 2011] [error] [client 10.250.48.110] AssertionError: The EvalException middleware is not usable in a multi-process environment 

Quelqu'un peut-il préciser ce qui me manque?

+0

Un journal du journal des erreurs apache serait utile –

+0

Avez-vous essayé de spécifier complètement le nom du serveur? –

+0

Aucune entrée de journal n'a été produite, et oui j'ai complètement spécifié le nom du serveur – fccoelho

Répondre

14

Depuis votre déploiement sur Apache, vérifiez que vous n'êtes pas en mode de débogage interactif - qui utilise EvalException. Dans votre Pylônes fichier config (ckan.emap.fgv.br.ini) de vous assurer ceci:

[app:main] 
set debug = false 
+0

Vous êtes une bouée de sauvetage! – Odi

+0

Savez-vous s'il est possible de voir les stacktraces d'exception dans le journal Apache, quand le débogage est désactivé? Voir ma réponse/question ci-dessous. – Kangur

1

pas un expert sur le « environnement » pâte « », mais ne devrait pas être:

from paste.deploy.loadwsgi import loadapp 
+0

Je l'ai essayé et ça n'a fait aucune différence ... – fccoelho

3

Votre premier problème est que vous ne pouvez pas utiliser des hôtes virtuels basés sur le nom dans Apache sans avoir un nom d'hôte dans le DNS ou local/etc/hosts qui résout l'adresse IP du serveur sur lequel Apache est exécuté.

Le deuxième problème est dû au fait qu'EvalException ne peut pas être utilisé dans une configuration de serveur multi-processus. Lire:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Browser_Based_Debugger

Désactivez EvalException ou configurer mod_wsgi telle que vous utilisez le mode démon avec « défaillance » d'un processus unique (ne pas utiliser les processus = 1).

Pour des informations sur les différentes configurations processus/fil possibles pour Apache/mod_wsgi lire:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

Vous voulez utiliser celui par lequel 'wsgi.multiprocess' est faux.

+0

En fait, je viens de mettre debug = false dans le fichier ckan ini et ça fonctionne maintenant. – fccoelho

0

Je suis d'accord que le débogage de la production devrait être désactivé, mais je voudrais vraiment voir stacktraces d'exceptions.

En ce moment, si je reçois 500 Erreur de serveur dans CKAN (page CKAN belle avec des informations d'erreur est affiché) dans les journaux que je peux trouver seule description d'erreur sans stacktrace:

[Thu Feb 12 17:04:55.037785 2015] [:error] [pid 15293:tid 139979468994304] [remote 89.71.231.138:5513] Error - <type 'exceptions.TypeError'>: 'NoneType' object is not iterable

est-il un moyen de Activer la pile complète avec debug = false.

Questions connexes