Moin、uWSGI 和 nginx - 设置于/维基

Moin、uWSGI 和 nginx - 设置于/维基

我正在尝试使用子目录在我们的 nginx/uWSGI 服务器上设置 MoinMoin Wiki 安装。

我们已经有一个在 :80 上运行的 Django 应用。最初,我设置了 Moin 应用,并在 :8000 上运行其自己的服务器块。这运行得很好,但是,我们想要在 /wiki 下运行 MoinMoin。

问题是,当我尝试这样做时,MoinMoin 仍然认为这是它的根目录,因此它认为 /wiki 是一个名为 wiki 的页面。所有链接也与此相关,因此单击它们会失败,因为 nginx 看不到 /FrontPage 等的位置。

我找了找,但找不到任何明显的方法来配置 MoinMoin 以使用 /wiki。这就是我需要的,要么这样,要么以某种方式将 /wiki 映射到 :8000

这是我们的 nginx.conf 文件的 http 部分(注意:路径用 /path/to 前缀替换)

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" t=$request_time';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /media {
            alias /path/to/lib/python2.6/site-packages/django/contrib/admin/media/;
        }

        location /static {
            alias           /path/to/static/;
        }

        location /tmp/reports {
        internal;
        alias   /tmp/reports;
        }

        location / {
            include        uwsgi_params;
            uwsgi_pass     127.0.0.1:9001;
        }

        location /wiki/moin_static193 {
            alias /path/to/lib/python2.6/site-packages/MoinMoin/web/static/htdocs;
        }

        location /wiki {
            uwsgi_pass  127.0.0.1:9002;
            include     wiki_params;
        }
    }
}

以下是大部分未经编辑的 wikiconfig.py 文件:

import os

from MoinMoin.config import multiconfig, url_prefix_static


class Config(multiconfig.DefaultConfig):

# Critical setup  ---------------------------------------------------

# Directory containing THIS wikiconfig:
wikiconfig_dir = os.path.abspath(os.path.dirname(__file__))

# We assume that this config file is located in the instance directory, like:
# instance_dir/
#              wikiconfig.py
#              data/
#              underlay/
# If that's not true, feel free to just set instance_dir to the real path
# where data/ and underlay/ is located:
#instance_dir = '/where/ever/your/instance/is'
instance_dir = wikiconfig_dir

# Where your own wiki pages are (make regular backups of this directory):
data_dir = os.path.join(instance_dir, 'data', '') # path with trailing /

# Where system and help pages are (you may exclude this from backup):
data_underlay_dir = os.path.join(instance_dir, 'underlay', '') # path with trailing /

# The URL prefix we use to access the static stuff (img, css, js).
# Note: moin runs a static file server at url_prefix_static path (relative
# to the script url).
# If you run your wiki script at the root of your site (/), just do NOT
# use this setting and it will automatically work.
# If you run your wiki script at /mywiki, you need to use this:
url_prefix_static = '/wiki' + url_prefix_static


# Wiki identity ----------------------------------------------------

# Site name, used by default for wiki name-logo [Unicode]
sitename = u'Our Wiki'

# Wiki logo. You can use an image, text or both. [Unicode]
# For no logo or text, use '' - the default is to show the sitename.
# See also url_prefix setting below!
logo_string = u'<img src="%s/common/moinmoin.png" alt="MoinMoin Logo">' % url_prefix_static

# name of entry page / front page [Unicode], choose one of those:

# a) if most wiki content is in a single language
#page_front_page = u"MyStartingPage"

# b) if wiki content is maintained in many languages
#page_front_page = u"FrontPage"

# The interwiki name used in interwiki links
#interwikiname = u'UntitledWiki'
# Show the interwiki name (and link it to page_front_page) in the Theme,
# nice for farm setups or when your logo does not show the wiki's name.
#show_interwiki = 1


# Security ----------------------------------------------------------

# This is checked by some rather critical and potentially harmful actions,
# like despam or PackageInstaller action:
superuser = [u"UserName", ]

# IMPORTANT: grant yourself admin rights! replace YourName with
# your user name. See HelpOnAccessControlLists for more help.
# All acl_rights_xxx options must use unicode [Unicode]
acl_rights_before = u"UserName:read,write,delete,revert,admin"

# The default (ENABLED) password_checker will keep users from choosing too
# short or too easy passwords. If you don't like this and your site has
# rather low security requirements, feel free to DISABLE the checker by:
#password_checker = None # None means "don't do any password strength checks"

# Link spam protection for public wikis (Uncomment to enable)
# Needs a reliable internet connection.
#from MoinMoin.security.antispam import SecurityPolicy


# Mail --------------------------------------------------------------

# Configure to enable subscribing to pages (disabled by default)
# or sending forgotten passwords.

# SMTP server, e.g. "mail.provider.com" (None to disable mail)
#mail_smarthost = ""

# The return address, e.g u"J?rgen Wiki <[email protected]>" [Unicode]
#mail_from = u""

# "user pwd" if you need to use SMTP AUTH
#mail_login = ""


# User interface ----------------------------------------------------

# Add your wikis important pages at the end. It is not recommended to
# remove the default links.  Leave room for user links - don't use
# more than 6 short items.
# You MUST use Unicode strings here, but you need not use localized
# page names for system and help pages, those will be used automatically
# according to the user selected language. [Unicode]
navi_bar = [
    # If you want to show your page_front_page here:
    #u'%(page_front_page)s',
    u'RecentChanges',
    u'FindPage',
    u'HelpContents',
]

# The default theme anonymous or new users get
theme_default = 'modern'


# Language options --------------------------------------------------

# See http://moinmo.in/ConfigMarket for configuration in
# YOUR language that other people contributed.

# The main wiki language, set the direction of the wiki pages
language_default = 'en'

# the following regexes should match the complete name when used in free text
# the group 'all' shall match all, while the group 'key' shall match the key only
# e.g. CategoryFoo -> group 'all' ==  CategoryFoo, group 'key' == Foo
# moin's code will add ^ / $ at beginning / end when needed
# You must use Unicode strings here [Unicode]
page_category_regex = ur'(?P<all>Category(?P<key>(?!Template)\S+))'
page_dict_regex = ur'(?P<all>(?P<key>\S+)Dict)'
page_group_regex = ur'(?P<all>(?P<key>\S+)Group)'
page_template_regex = ur'(?P<all>(?P<key>\S+)Template)'

# Content options ---------------------------------------------------

# Show users hostnames in RecentChanges
show_hosts = 1

# Enable graphical charts, requires gdchart.
#chart_options = {'width': 600, 'height': 300}

答案1

添加

uwsgi_param SCRIPT_NAME /wiki;

uwsgi_modifier1 30;

在位置 /wiki 指令中

然后加

–ignore-脚本名称

在 uWSGI 命令行中

相关内容