How to deal with common errors

First follow the instructions

Moin has provided instructions for common usage. Try creating a wiki using the default values within the instructions. Your wiki would then be stored where ours is, and named mywiki ... but you can change that place, and this name, AFTER you have a working wiki. The default values have been chosen carefully to work for most people on most platforms, or at least be a good start.

  • First follow the instructions
  • Do not change any configuration option unless you must.
  • Play with a working wiki before you try to customize it.

Change one thing at a time

When your wiki is running, go and customize it to your needs, but remember to change only one option at a time. You probably don't fully understand how all options work, and if you go and break few things in the same step, you will have hard time to fix it.

Check That Your Webserver Can Use Python

This is also in HelpOnInstalling/BasicInstallation. Use this script:

echo Content-Type: text/plain
echo
echo "Your web server is running as:"
id
echo "CGI scripts work"
echo "Now we try to invoke Python interpreters and get their versions:"
python -V 2>&1
python2.3 -V 2>&1
python2.4 -V 2>&1
python2.5 -V 2>&1
echo "Finished."

to see if you can get it to announce that cgi works. Then you will also know which versions of python are usable. This is especially handy for users with no root access.

Duelling Pythons

The most common problem you might encounter is when you have an old Python version installed into "/usr", and a newer Python distribution into "/usr/local"; this is typical for GNU/Linux distributions that still come bundled with an old Python version.

In that case, if you enter "python" on your prompt, you will usually get the more recent Python interpreter, because "/usr/local/bin" is in your PATH. The situation is different in your webserver environment, and thus you might have to change the bang path of "moin.cgi", like this:

"""
    MoinMoin - CGI Driver Script
...
"""
  • When installing, make sure you install with the version of python you want to run moin with. python setup.py install will install with the first python in the path, which may be the version you expect or not! /usr/local/bin/python2.4 will install in specific python. You will have to use the same path in the moin server script.

Missing file permissions

If you are root, the installed files may be readable only by root, but they must also be readable by the web server before the wiki will work. This includes both the Python modules and the site itself. For the data directory, the wiki engine also needs write access. To fix this, first find out where the Python module directory is; look in install.log, or run the command:

python -c "import sys; print '%s/lib/python%s/site-packages' % ( sys.prefix, sys.version[:3] )"

For the example below, we'll assume that the Python module directory is /usr/local/lib/python2.4/site-packages. Make the files world-readable using the following commands:

cd /usr/local
chmod -R a+rX lib/python2.4/site-packages/MoinMoin

Set Your Variables Carefully

Be especially careful when you retype instead of cut and paste. Quoting errors in wikiconfig.py can cause things to fail. The following items are also variable issues. Also, some features only work if they are enabled by their option in either wikiconfig.py or farmconfig.py.

moin.cgi found, Moin doesn't run

If you have to add the moin code location into the system path, make sure to specify the place above MoinMoin itself, so that the word MoinMoin is recognized during the import request.

CSS files do not work

A very common error is missing CSS styles. Your wiki looks bare and ugly, unlike this nice wiki. In most cases, you did break the configuration by not reading the instructions.

The fix is very easy: make sure your Apache Alias and ScriptAlias are NOT the same.

This Apache setup will never work:

Alias /wiki/ "/prefix/share/moin/htdocs/"
ScriptAlias /wiki/ "/var/www/wiki/moin.cgi"

The Alias is used to serve static files: css, images, etc. ScriptAlias is used to hide moin.cgi from the url. You must use different values! You can use anything you like for ScriptAlias, or Alias, but Alias must match the url_prefix_static configuration option.

Here is an example that works (the default):

# Apache config
Alias /moin_static170/ "/prefix/share/moin/htdocs/"

# Wiki config
    url_prefix_static = '/moin_static170'