簡體   English   中英

Mod_wsgi掛架(ckan)安裝不起作用

[英]Mod_wsgi pylons (ckan) installation not working

我正在根據以下說明設置CKAN(一種塔應用程序): http ://packages.python.org/ckan/deployment.html

但是,當我使用IP或主機名指向服務器(尚無DNS設置)時,我僅看到apache的問候頁面,這提示未加載ckan應用。

這是我的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)

這是我的虛擬主機配置:

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

我嘗試禁用000默認站點(使用a2dissite),但這沒有幫助。完成此操作后,我得到一個內部服務器錯誤頁面。 解決了一些權限后,我設法獲得了此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

誰能指出我在想什么?

由於您是在apache上進行部署,因此請確保您未處於交互式調試模式-該模式使用EvalException。 在您的Pylons配置文件(ckan.emap.fgv.br.ini)中,確保具有以下內容:

[app:main]
set debug = false

您的第一個問題是,如果沒有DNS或本地/ etc / hosts中解析為運行Apache服務器的IP的主機名,則無法在Apache中使用基於名稱的虛擬主機。

第二個問題是因為EvalException不能在多進程服務器配置中使用。 讀:

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

禁用EvalException或配置mod_wsgi,以使您使用帶有單個進程“默認”的守護程序模式(不要使用進程= 1)。

有關Apache / mod_wsgi可能的各種進程/線程配置的背景知識,請閱讀:

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

您想使用一種方法,其中“ wsgi.multiprocess”為False。

不是“粘貼”環境方面的專家,但不應是:

from paste.deploy.loadwsgi import loadapp

我同意應該在生產調試中禁用調試,但是我真的很想看到異常的堆棧跟蹤。

現在,如果我在日志中的CKAN中看到500服務器錯誤(顯示了帶有錯誤信息的CKAN頁面),我只能找到沒有堆棧跟蹤的錯誤描述:

[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

有沒有一種方法可以使用debug = false啟用完整的stacktrace。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM