Как мне настроить 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