2011-03-30 3 views
6

मैं CKAN की स्थापना कर रहा हूँ, तो इन निर्देशों के अनुसार एक तोरणों आवेदन: http://packages.python.org/ckan/deployment.htmlMod_wsgi तोरणों (ckan) स्थापना काम नहीं कर रहा

लेकिन जब मैं सर्वर को इंगित (कोई DNS सेटअप अभी तक) आईपी या होस्टनाम का उपयोग कर, मैं केवल अपाचे के ग्रीटिंग पेज को देखें, सीकन ऐप को परेशान नहीं किया जा रहा है।

यहाँ मेरी mod_wsgi स्क्रिप्ट है:

<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 के साथ) को निष्क्रिय करने की कोशिश, लेकिन वह dind't:

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) 

यहाँ मेरी आभासी मेजबान विन्यास है मदद करें। ऐसा करने के बाद मुझे एक आंतरिक सर्वर त्रुटि पृष्ठ मिलता है। एक फिक्सिंग के बाद कुछ अनुमतियों मैं इस 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 

किसी को भी कर सकते हैं का कहना है कि मैं क्या याद आ रही है?

+0

अपाचे त्रुटि लॉग का एक लॉग उपयोगी होगा –

+0

क्या आपने सर्वर नाम को पूरी तरह से निर्दिष्ट करने का प्रयास किया था? –

+0

कोई लॉग प्रविष्टियां नहीं बनाई गई हैं, और हाँ मैंने पूरी तरह से सर्वर का नाम – fccoelho

उत्तर

14

चूंकि आप अपाचे पर तैनाती कर रहे हैं, सुनिश्चित करें कि आप इंटरैक्टिव डीबग मोड में नहीं हैं - जो EvalException का उपयोग करता है। अपने Pylons कॉन्फ़िग फ़ाइल (ckan.emap.fgv.br.ini) यह सुनिश्चित में आप इस राशि:

[app:main] 
set debug = false 
+0

आप एक lifesaver हैं! – Odi

+0

क्या आपको पता है कि डीबग अक्षम होने पर अपाचे लॉग में अपवाद के स्टैकट्रैक देखना संभव है? नीचे मेरा उत्तर/प्रश्न देखें। – Kangur

1

नहीं '' पेस्ट '' पर्यावरण पर एक विशेषज्ञ है, लेकिन नहीं होना चाहिए:

from paste.deploy.loadwsgi import loadapp 
+0

मैंने कोशिश की और इससे कोई फर्क नहीं पड़ता ... – fccoelho

3

आपका पहला समस्या यह है कि आप DNS में एक होस्ट नाम होने या बिना अपाचे में नाम आधारित आभासी मेजबान उपयोग नहीं कर सकते है स्थानीय/etc/होस्ट जो सर्वर के आईपी को हल करता है अपाचे चालू है।

दूसरी समस्या यह है क्योंकि EvalException को बहु प्रक्रिया सर्वर कॉन्फ़िगरेशन में उपयोग नहीं किया जा सकता है। पढ़ें:

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

या तो अक्षम EvalException या mod_wsgi ऐसी है कि आप एक ही प्रक्रिया के 'डिफ़ॉल्ट' के साथ डेमॉन मोड का उपयोग कर रहे हैं कॉन्फ़िगर (प्रक्रियाओं का उपयोग नहीं करते = 1)।

विभिन्न प्रक्रिया/धागा विन्यास अपाचे के लिए संभव/पर पृष्ठभूमि पढ़ mod_wsgi के लिए:

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

आप एक का उपयोग करने जिससे 'wsgi.multiprocess' झूठी है चाहता हूँ।

+0

मैं वास्तव में ckan ini फ़ाइल में डीबग = झूठी सेट करता हूं और यह अब काम कर रहा है। – fccoelho

0

मैं मानता हूँ कि उत्पादन डिबग में अक्षम है या नहीं, लेकिन मैं वास्तव में अपवाद की stacktraces देखना चाहेंगे।

अभी अगर मैं मुझे कोई स्टैकट्रेस के साथ ही त्रुटि विवरण प्राप्त कर सकते हैं (त्रुटि की जानकारी के साथ अच्छा CKAN पेज दिखाया गया है) CKAN अंदर 500 सर्वर त्रुटि मिलती लॉग में:

[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

वहाँ करने के लिए एक रास्ता है डीबग = झूठी के साथ पूर्ण stacktrace सक्षम करें।

संबंधित मुद्दे