Nach dem Linux-Distro-Upgrade gibt Moin unter WSGI 500 Fehler aus
819
Mike Pennington
Ich habe eine MoinMoin- Instanz installiert bei /opt/mydebianwiki; Das Wiki läuft unter [wsgi] / [apache2]. Ich habe kürzlich ein Upgrade von Debian Linux 6 (Squeeze) auf Debian 7 (Wheezy) durchgeführt. Vor dem Upgrade funktionierte meine MoinMoin- Instanz gut.
Nach dem Upgrade auf Wheezy bekam ich jedoch HTTP 500-Fehler, als ich versuchte, auf die Website zuzugreifen.
Googeln führte mich zu diesem Moin-User-Thread, der besagte, dass ich einfach laufen könnte su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data, um das Problem zu beheben. Dies war jedoch ebenfalls nicht erfolgreich (siehe Fehler unten in der Frage).
Wie kann ich dieses Problem lösen?
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#
1 Antwort auf die Frage
1
Mike Pennington
Das Problem ist, dass meine lokale Moin-Konfiguration bei /opt/mydebianwiki/wikiconfig.pynicht gefunden wurde, obwohl ich dieses Verzeichnis in meinem moin ... maint cleancacheBefehl angegeben habe. Es scheint, dass das Standardverzeichnis ( /etc/moin) von debian beim Ausführen Vorrang hatte su -c "moin --config-dir=/opt/mydebianwiki maint cleancache" www-data.
Meine Lösung bestand darin, /etc/moinden Befehl vorübergehend umzubenennen und auszuführen. Das Problem wurde behoben:
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