安装DB时Paster不起作用

时间:2014-11-14 05:57:54

标签: python database runtime-error ckan paster

我曾尝试使用以下论坛来修复问题,但它并没有找到适用于我的工作

https://stackoverflow.com/questions/21955234/ckan-install-paster-error

令人惊讶的是,当我尝试在Windows上安装CKAN时,我遇到了同样的问题。

paster db init -c XXXX/development.ini not working for CKAN-command 'db' not know 这次我试图按照

中的指示在Ubuntu 12.04上安装CKAN(实际上是12.04.5,因为我无法得到12.0.4)

http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html

我必须使用PROXY

安装所有内容

我已将密码添加到SQL Chemistry中,并且Development.ini确实存在。这是我的错误(下面)

这是代理问题吗?我已经使用chmod来改变对其他论坛推荐的ini文件的访问权限。我还设置了虚拟路径。我检查它时确实存在数据库库。 :

(default)root@UbuntaDataServer:/usr/lib/ckan/default/src/ckan# paster db init -c /etc/ckan/default/development.ini
    Traceback (most recent call last):
      File "/usr/lib/ckan/default/bin/paster", line 9, in <module>
        load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
      File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 104, in run
        invoke(command, command_name, options, args[1:])
      File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 143, in invoke
        exit_code = runner.run(args)
      File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 238, in run
        result = self.command()
      File "/root/ckan/lib/default/src/ckan/ckan/lib/cli.py", line 156, in command
        self._load_config()
      File "/root/ckan/lib/default/src/ckan/ckan/lib/cli.py", line 98, in _load_config
        load_environment(conf.global_conf, conf.local_conf)
      File "/root/ckan/lib/default/src/ckan/ckan/config/environment.py", line 232, in load_environment
        p.load_all(config)
      File "/root/ckan/lib/default/src/ckan/ckan/plugins/core.py", line 124, in load_all
        unload_all()
      File "/root/ckan/lib/default/src/ckan/ckan/plugins/core.py", line 182, in unload_all
        unload(*reversed(_PLUGINS))
      File "/root/ckan/lib/default/src/ckan/ckan/plugins/core.py", line 210, in unload
        plugins_update()
      File "/root/ckan/lib/default/src/ckan/ckan/plugins/core.py", line 116, in plugins_update
        environment.update_config()
      File "/root/ckan/lib/default/src/ckan/ckan/config/environment.py", line 270, in update_config
        search.check_solr_schema_version()
      File "/root/ckan/lib/default/src/ckan/ckan/lib/search/__init__.py", line 291, in check_solr_schema_version
        res = urllib2.urlopen(req)
      File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
        return _opener.open(url, data, timeout)
      File "/usr/lib/python2.7/urllib2.py", line 406, in open
        response = meth(req, response)
      File "/usr/lib/python2.7/urllib2.py", line 519, in http_response
        'http', request, response, code, msg, hdrs)
      File "/usr/lib/python2.7/urllib2.py", line 444, in error
        return self._call_chain(*args)
      File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
        result = func(*args)
      File "/usr/lib/python2.7/urllib2.py", line 527, in http_error_default
        raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    urllib2.HTTPError: HTTP Error 503: Service Unavailable

4 个答案:

答案 0 :(得分:1)

stacktrace的这一部分:

  

文件“/root/ckan/lib/default/src/ckan/ckan/lib/search/init.py”,第291行,在check_solr_schema_version中

     

res = urllib2.urlopen(req)

建议连接到Solr时出现问题。您应确保solr正在运行,您可以连接到它,并且.ini文件中有关运行solr的位置和端口的设置是正确的。

答案 1 :(得分:0)

这不是完整的答案。也许关闭。

这是我在http:|| localhost | solr |

上看到的
Solr Admin (ckan)
UbuntaDataServer:8983
cwd=/var/cache/jetty/tmp SolrHome=/usr/share/solr/

这是在URL上运行的内容。我认为这是接近还是正确?

还有其他建议吗?

答案 2 :(得分:0)

使用CKAN 2.2我对需要身份验证的代理有同样的问题

如果您从源代码安装CKAN,我建议转到2.2.1版本(或更新版本)。 在这些版本中,我发现auth proxy没有问题。

无论如何,如果您绑定到特定的旧版CKAN,您可以手动添加代理处理程序。

首先,设置你的http_proxy env变种(大写和小写)

现在你可以编辑文件 ckan / ckan / lib / search / __ init __。py 并弄脏你的手。

我们需要声明一个handle_proxy()函数:

import os
def handle_proxy():
    proxy_settings = dict()
    for k,v in os.environ.items():
        if k.rfind('_proxy') > -1:
            proxy_settings[k] = v
    proxy_handler = urllib2.ProxyHandler(proxy_settings)
    opener = urllib2.build_opener(proxy_handler)
    urllib2.install_opener(opener)

现在我们可以在发送请求之前在check_solr_schema_version()函数中调用它 取代

res = urllib2.urlopen(req)

handle_proxy()
res = urllib2.urlopen(req)

注意:这是一种临时解决方法,以防升级到较新版本(我目前使用2.2.2分支)并不能解决您的问题。我不建议在生产环境中使用它:)

答案 3 :(得分:0)

我找到了另一个答案,如果上述方法不起作用,请尝试: 再次安装:

sudo -E apt-get install python-pastescript

。 / usr / lib中/ CKAN /默认/ bin中/激活

cd / usr / lib / ckan / default / src / ckan

paster make-config ckan /etc/ckan/default/development.ini

将SOLR更改为您的IP号码而不是localhost

paster db init -c /etc/ckan/default/development.ini

希望能解决您的问题