Após a atualização da distribuição do Linux, o Moin no WSGI gera 500 erros

0

Eu tenho uma instância MoinMoin instalada em /opt/mydebianwiki ; o wiki é executado sob [wsgi] / [apache2]. Eu recentemente atualizei do Debian Linux 6 (squeeze) para o Debian 7 (wheezy); antes da atualização, minha instância do MoinMoin funcionou bem.

No entanto, após a atualização para o wheezy, comecei a receber erros do HTTP 500 quando tentei acessar o site.

Pesquisando no Google, leve-me a este tópico sobre usuários moin , que dizia que Eu poderia apenas executar su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data para corrigir o problema; no entanto, isso foi igualmente mal sucedido (ver erros na parte inferior da pergunta).

Como posso resolver este problema?

root@tsunami:/opt/mydebianwiki# su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data
2014-03-01 04:14:46,749 WARNING MoinMoin.log:139 using logging configuration read from built-in fallback in MoinMoin.log module!
2014-03-01 04:14:46,887 INFO MoinMoin.config.multiconfig:93 using farm config: /etc/moin/farmconfig.pyc
Traceback (most recent call last):
  File "/usr/bin/moin", line 5, in <module>
    run()
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/moin.py", line 15, in run
    MoinScript().run(showtime=0)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/__init__.py", line 138, in run
    self.mainloop()
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/__init__.py", line 261, in mainloop
    plugin_class(args[2:], self.options).run() # all starts again there
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/__init__.py", line 138, in run
    self.mainloop()
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/maint/cleancache.py", line 39, in mainloop
    self.init_request()
  File "/usr/lib/python2.7/dist-packages/MoinMoin/script/__init__.py", line 185, in init_request
    self.request = ScriptContext(url, self.options.page)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/web/contexts.py", line 439, in __init__
    wsgiapp.init(self)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py", line 51, in init
    context.lang = setup_i18n_preauth(context)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/wsgiapp.py", line 233, in setup_i18n_preauth
    i18n.i18n_init(context)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/i18n/__init__.py", line 72, in i18n_init
    meta_cache = caching.CacheEntry(request, 'i18n', 'meta', scope='wiki', use_pickle=True)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/caching.py", line 71, in __init__
    self.arena_dir = get_arena_dir(request, arena, scope)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/caching.py", line 32, in get_arena_dir
    return os.path.join(request.cfg.cache_dir, request.cfg.siteid, arena)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/web/contexts.py", line 56, in get
    res = obj.environ.setdefault(self.name, factory(obj))
  File "/usr/lib/python2.7/dist-packages/MoinMoin/web/contexts.py", line 128, in cfg
    cfg = multiconfig.getConfig(self.request.url)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/config/multiconfig.py", line 193, in getConfig
    cfg = _makeConfig(cfgName)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/config/multiconfig.py", line 125, in _makeConfig
    cfg = configClass(name)
  File "/usr/lib/python2.7/dist-packages/MoinMoin/config/multiconfig.py", line 277, in __init__
    self._check_directories()
  File "/usr/lib/python2.7/dist-packages/MoinMoin/config/multiconfig.py", line 604, in _check_directories
    raise error.ConfigurationError(msg)
MoinMoin.error.ConfigurationError:
data_dir "/org/mywiki/data" does not exist, or has incorrect ownership or
permissions.

Make sure the directory and the subdirectory "pages" are owned by the web
server and are readable, writable and executable by the web server user
and group.

It is recommended to use absolute paths and not relative paths. Check
also the spelling of the directory name.

root@tsunami:/opt/mydebianwiki#
    
por Mike Pennington 01.03.2014 / 11:41

1 resposta

1

O problema é que minha configuração moin local em /opt/mydebianwiki/wikiconfig.py não foi encontrada, mesmo que eu tenha especificado esse diretório no meu comando moin ... maint cleancache . Parece que o diretório padrão do debian ( /etc/moin ) estava tomando precedência quando eu corri su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data .

Minha solução foi renomear temporariamente /etc/moin e executar o comando. Isso resolveu o problema:

root@tsunami:/opt/mydebianwiki# mv /etc/moin/ /etc/antimoin

root@tsunami:/opt/mydebianwiki# su -c "moin --config-dir=/opt/mydebianwiki maint 
 cleancache" www-data
2014-03-01 04:17:11,922 WARNING MoinMoin.log:139 using logging configuration read 
from built-in fallback in MoinMoin.log module!
2014-03-01 04:17:12,067 INFO MoinMoin.config.multiconfig:127 using wiki config: 
/opt/mydebianwiki/wikiconfig.pyc

root@tsunami:/opt/mydebianwiki# apachectl restart
root@tsunami:/opt/mydebianwiki# mv /etc/antimoin/ /etc/moin
    
por 01.03.2014 / 11:41