После обновления дистрибутива Linux, Мойн под WSGI выдает 500 ошибок

501
Mike Pennington

У меня установлен экземпляр MoinMoin/opt/mydebianwiki ; вики работает под [wsgi] / [apache2]. Я недавно обновил Debian Linux 6 (squeeze) до Debian 7 (wheezy); до обновления мой экземпляр MoinMoin работал хорошо.

Однако после обновления до wheezy я начал получать ошибки http 500 при попытке получить доступ к сайту.

Поиск в Google привел меня к этой теме, в которой говорилось, что я могу просто запустить, su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-dataчтобы решить проблему; однако, это было одинаково неудачно (см. ошибки в нижней части вопроса).

Как я могу решить эту проблему?


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

1 ответ на вопрос

1
Mike Pennington

The problem is that my local moin configuration at /opt/mydebianwiki/wikiconfig.py was not found, even though I specified that directory in my moin ... maint cleancache command. It seems that debian's default directory (/etc/moin) was taking precedence when I ran su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data.

My solution, was to temporarily rename /etc/moin and run the command. This fixed the problem:

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 

Похожие вопросы