2011-03-30 17 views
6

Yo soy la creación de CKAN, una aplicación de torres de alta tensión de acuerdo con estas instrucciones: http://packages.python.org/ckan/deployment.htmlpilones mod_wsgi (CKAN) la instalación no funciona

Pero cuando señalo al servidor (sin configuración DNS aún) usando IP o nombre de host, lo solo vea la página de saludo de apache, no se está cargando la aplicación ckan.

aquí es mi guión 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) 

aquí es mi configuración de host virtual:

<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> 

trato de desactivar el sitio 000-default (con a2dissite), pero que DIND'T help.Después de hacer esto, obtengo una página de error interno del servidor. Después de una fijación de algunos permisos que lograron obtener este registro de errores Pilones:

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 

Puede alguien señalar lo que me estoy perdiendo?

+0

Un registro del registro de errores de apache sería útil –

+0

¿Intentó especificar completamente el nombre del servidor? –

+0

No se han producido entradas de registro, y sí, especifiqué por completo el nombre del servidor – fccoelho

Respuesta

14

Como está implementando en apache, asegúrese de que no se encuentre en modo de depuración interactiva, que usa EvalException. En sus Pilones archivo de configuración (ckan.emap.fgv.br.ini) asegurarse de que tiene esto:

[app:main] 
set debug = false 
+0

¡Eres un salvavidas! – Odi

+0

¿Sabes si es posible ver las stacktraces de una excepción en el registro de Apache, cuando la depuración está deshabilitada? Ver mi respuesta/pregunta a continuación. – Kangur

1
No

un experto en el medio ambiente '' pegar '', pero no debe ser:

from paste.deploy.loadwsgi import loadapp 
+0

Lo probé y no hizo ninguna diferencia ... – fccoelho

3

Su primer problema es que no se puede usar máquinas virtuales basadas en nombre de Apache sin tener un nombre de host en el DNS o local/etc/hosts que se resuelve en la IP del servidor en el que Apache se está ejecutando.

El segundo problema se debe a que EvalException no se puede usar en una configuración de servidor de proceso múltiple. Lea:

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

De cualquier EvalException desactivar o configurar mod_wsgi tal que está utilizando el modo demonio con el 'default' de un solo proceso (no utilice procesos = 1).

Para información sobre varias configuraciones de proceso/hilo posibles para Apache/mod_wsgi leer:

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

que desea utilizar aquel por el cual 'wsgi.multiprocess' es falso.

+0

De hecho acabo de establecer debug = false en el archivo ckan ini y ahora está funcionando. – fccoelho

0

Me acuerdo que en la producción de depuración debe ser inhabilitado, pero realmente me gustaría ver stacktraces de excepciones.

Ahora si me da error 500 de servidor dentro de CKAN (página agradable CKAN con la información de error se muestra) en los registros ido solo un descripción del error sin 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

¿Hay una manera de habilitar stacktrace completo con debug = false.

Cuestiones relacionadas