Как мне настроить moinmoin 1.9.11 как подкаталог, а не как корневую установку?

Я установил moinmoin 1.9.11 на CentOS с nginx в качестве обратного прокси-сервера, подключающегося к wikiserver.py (который запускается systemctl).

Я могу получить доступ/вход/добавить/редактировать на https://my.example.com/wiki , и большинство вещей, похоже, работают,

но [,FindPage,HelpContents] всем не хватает ведущих/wikiв их файле href.

то есть щелчокRecentChangesпереходит на https://my.example.com/RecentChanges , а
не на https://my.example.com/wiki/RecentChanges

(Я знаю, что могу взломатьlocation /RecentChangesв nginx, чтобы получить/RecentChangesчтобы функционировать, но кажется, что должна быть простая конфигурация moinmoin, чтобы сообщить вики, что она не находится в корневом каталоге домена.

Я попытался создать wikiconfig_local.py.

      from wikiconfig import LocalConfig

class Config(LocalConfig):
    #properties = {'script_root': '/wiki/'}
    #properties = {'script_name': '/wiki/'}
    properties = {
        'url_prefix_local': '/wiki/',
        'script_root': '/wiki/',
        'script_name': '/wiki/'
    }
    url_prefix_local = '/wiki/'

Чтобы moinmoin знал, что он работает в подкаталоге базового URL-адреса, но все равно нет игральных костей.
http://moinmo.in/HelpOnConfiguration#urls упоминаетurl_prefix_localно мне не удалось заставить moinmoin использовать это для исправления встроенных hrefs.

Вот как я настроил его как единую вики:

викисерверconfig.py

          user = 'nginx'
    group= 'nginx'
    debug = 'off'
    hostname = '127.0.0.1'
    port = 8080

(Вероятно, это следует переместить в wikiserverconfig_local.py)

nginx

      
   location /wiki {
        try_files           $uri @wiki_home_rewrite;
    }
 
    # NOTE Temporary dirty hack! Undesirable, possibly dangerous
    # location /RecentChanges /FindPage /HelpContents
    # location /BadContent /MissingPage /LanguageSetup
    # location /FrontPage
    location ~ ^/[A-Z]+[a-z0-9]*([A-Z]*[a-z]*)* {
        try_files           $uri @wiki_home_rewrite;
    }
    location @wiki_home_rewrite {
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    Host $http_host;
        #proxy_set_header    SCRIPT_NAME /wiki;
        proxy_set_header    SCRIPT_NAME /;
        proxy_redirect      off;
        proxy_pass          http://127.0.0.1:8080;
    }

системный

/etc/systemd/system/moin.service

      [Unit]
Description = moin_wiki
After = network.target

[Service]
Type=simple
Restart=always
PermissionsStartOnly = true

User = nginx
Group = nginx
WorkingDirectory = /var/www/moin
ExecStart = /bin/python /var/www/moin/wikiserver.py
ExecReload = /bin/kill -s HUP $MAINPID
ExecStop = /bin/kill -s TERM $MAINPID
PrivateTmp = true

[Install]
WantedBy = multi-user.target

0 ответов

Другие вопросы по тегам