Moin, uWSGI & nginx - configurando no meu-domínio / wiki

3

Estou tentando configurar o Wiki do MoinMoin no nosso servidor nginx / uWSGI usando um subdiretório.

Já temos um aplicativo do Django rodando em: 80. Inicialmente eu configurei o aplicativo Moin com seu próprio bloco de servidores rodando em: 8000. Isto funcionou perfeitamente, no entanto, o que queremos é rodar o MoinMoin em / wiki.

O problema é que, quando tento fazê-lo, o MoinMoin ainda assume que é a raiz, de tal forma que pensa / wiki é uma página chamada wiki. Todos os links também são relativos, então clicar neles falha porque o nginx não vê um local para / FrontPage, etc.

Eu olhei, mas não consigo encontrar nenhum método óbvio de configurar o MoinMoin para usar / wiki. Isto é o que eu preciso, seja isso ou alguma forma de mapear / wiki para: 8000

Aqui está a seção http do nosso arquivo nginx.conf (NB: caminhos substituídos por / path / to prefix)

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;
        }
    }
}

E aqui está o arquivo wikiconfig.py, em geral não editado:

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}
    
por n0wl 11.02.2011 / 10:18

1 resposta

1

adicione

uwsgi_param SCRIPT_NAME / wiki;

uwsgi_modifier1 30;

na diretiva location / wiki

Em seguida, adicione

- ignore-script-name

na linha de comando do uWSGI

    
por 11.02.2011 / 10:41