Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am running moinmoin on Debian squeeze... this is a wiki I migrated from an old Debian Lenny machine whose power supply died a couple of years ago. I copied /opt/mydebianwiki to the new server and also copied /usr/share/moin/underlay to /opt/mydebianwiki/underlay to ensure I picked up the changes from Lenny to Squeeze.

When I run this under wsgi, I get:


data_underlay_dir "./underlay/" does not exist, or has incorrect ownership or

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.

My underlay directory and underlay/pages have 740 permissions with the same user as apache2 (as advised by ReimarBauer on the moin Installing page):

drwxr----- 3 www-data www-data 4096 Jun 21 14:39 underlay

For information, I included the following line in wikiconfig.py:

data_underlay_dir = '/opt/mydebianwiki/underlay/'

My apache config

<VirtualHost *:80>
  ServerName wwwin.pennington.net

  RewriteEngine   on
  RewriteCond     %{HTTPS} !=on
  RewriteRule     ^(.*)$ https://wwwin.pennington.net/$1 [L,R]

  DocumentRoot /opt/mydebianwiki/
  WSGIScriptAlias / /opt/mydebianwiki/moin.wsgi

<VirtualHost *:443>
  ServerName wwwin.pennington.net
  DocumentRoot /opt/mydebianwiki
  WSGIScriptAlias / /opt/mydebianwiki/moin.wsgi

  # Generate with...
  # openssl req -new -x509 -days 365 -nodes -out netwiki.pem -keyout wiki.key
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/wiki.pem
  SSLCertificateKeyFile /etc/apache2/ssl/wiki.key

How can I get past this error?

share|improve this question
up vote 0 down vote accepted

I resolved this after an IRC discussion with Thomas Waldmann. It was fixed by changing wikiconfig.py and then chown -R www-data:www-data underlay/

My wikiconfig.py in case it helps someone else...

import sys

#from MoinMoin.multiconfig import DefaultConfig
from MoinMoin.config.multiconfig import DefaultConfig

class Config(DefaultConfig):

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

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

    # Wiki logo. You can use an image, text or both. [Unicode]
    # Example: u'<img src="/wiki/mywiki.png" alt="My Wiki">My Wiki'
    # For no logo or text, use ''
    logo_string = sitename

    # The interwiki name used in interwiki links
    interwikiname = None

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

    # Misconfiguration here will render your wiki unusable. Check that
    # all directories are accessible by the web server or moin server.

    # If you encounter problems, try to set data_dir and data_underlay_dir
    # to absolute paths.

    # Where your mutable wiki pages are. You want to make regular
    # backups of this directory.
    #data_dir = '/var/local/lib/mydebianwiki/data/'
    data_dir = '/opt/mydebianwiki/data/'

    # Where read-only system and help page are. You might want to share
    # this directory between several wikis. When you update MoinMoin,
    # you can safely replace the underlay directory with a new one. This
    # directory is part of MoinMoin distribution, you don't have to
    # backup it.
    data_underlay_dir = '/opt/mydebianwiki/underlay/'

    # This must be '/wiki' for twisted and standalone. For CGI, it should
    # match your Apache Alias setting.
    url_prefix = '/wiki'

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

    # Security critical actions (disabled by default)
    # Uncomment to enable options you like.
    #allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage']
    allowed_actions = ['DeletePage', 'AttachFile', 'RenamePage']

    # Enable acl (0 to disable)
    acl_rights_default = u'Known:read,write,delete,revert All:read'

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

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

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

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

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

    # The return address, e.g "My Wiki <noreply@mywiki.org>"
    mail_from = "noreply@foo.com"

    # "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 = [
        # Will use page_front_page, (default FrontPage)

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

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

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

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

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

    # Show users hostnames in RecentChanges
    show_hosts = 1

    # Enumerate headlines?
    show_section_numbers = 0

    # Customization options --------------------------------------------
    bang_meta = 1
    trail_size = 10
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.