welcome: please sign in

Diff for "MemberManual/WebApplications/MoinMoin"

Differences between revisions 1 and 22 (spanning 21 versions)
Revision 1 as of 2007-11-16 03:58:00
Size: 2168
Editor: MichaelOlson
Comment: Initial content
Revision 22 as of 2009-05-27 19:07:55
Size: 5716
Editor: iws-bc-ip-01-130
Comment: Added ! to MoinEditorBackup to prevent linking
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
This page explains how to quickly set up a MoinMoin wiki on one of your domains. This page explains how to quickly set up a MoinMoin wiki on one of your domains, and also how to migrate old MoinMoin wiki instances to work with the current MoinMoin release.
Line 5: Line 5:
[[TableOfContents]] <<TableOfContents>>
Line 9: Line 9:
We already have MoinMoin installed on our system. All you need to do is copy a few files over, make a {{{moin.cgi}}} file, and add some DomTool configuration. We already have MoinMoin installed on our system. All you need to do is run a script, add some DomTool configuration, and edit your {{{wikiconfig.py}}} file.
Line 11: Line 11:
== Copying files == == Making a new MoinMoin instance ==
Line 13: Line 13:
Here's what you need to do to copy the files over. We assume that '''$INSTANCE''' is where you'd like to store the wiki data, and '''$USER''' is your username. All you have to do is figure out which directory you want to use to store the wiki (we refer to it as '''$INSTANCE''' below), and then run:
Line 16: Line 16:
mkdir -p $INSTANCE
cp -r /usr/share/moin/data $INSTANCE
cp -r /usr/share/moin/underlay $INSTANCE
cp /usr/share/moin/config/wikiconfig.py $INSTANCE
fs setacl $INSTANCE $USER.daemon read
fsr setacl $INSTANCE/data $USER.daemon write
fsr setacl $INSTANCE/underlay $USER.daemon read
moinmoin-install $INSTANCE
Line 25: Line 19:
Thanks to jdrake for figuring this out.

== Making a moin.cgi file ==

You can find an existing {{{moin.cgi}}} file at {{{/usr/share/moin/htdocs/moin.cgi}}}. Copy it into the same directory as the other MoinMoin stuff.

{{{
cp /usr/share/moin/htdocs/moin.cgi $INSTANCE
}}}

Then, you'll want to comment out the following line, by placing a "#" in front of it.

{{{
sys.path.insert(0, '/etc/moin')
}}}
For the curious, the {{{moinmoin-install}}} script may be viewed [[http://git.hcoop.net/?p=hcoop/misc.git;a=blob_plain;f=bin/moinmoin-install;hb=HEAD|here]].
Line 43: Line 23:
There are several ways to do this, depending on what URL you want to use to access your wiki. What you place on your "alias" line, we will call '''$HTDOCS''': people commonly use either {{{moin}}} or {{{wikidata}}} there.

Here's an example of putting the wiki on a new subdomain called "wiki", with a typical page in the wiki looking like {{{http://wiki.DOMAIN.TLD/SomePage}}}.
The easiest thing is to set up a dedicated web site for serving a MoinMoin wiki, like so:
Line 48: Line 26:
  web "wiki" with
    alias "$HTDOCS" "/usr/share/moin/htdocs";
    scriptAlias "/" (home "$INSTANCE/moin.cgi/");
  end;
moinMoin "mymoin" where
  Script = home "$INSTANCE/moin.cgi"
end
Line 54: Line 31:
Here's an example of putting the wiki into an existing domain, under the path "/wiki". A typical page in the wiki will look like {{{http://www.DOMAIN.TLD/wiki/SomePage}}}. When this is done within '''$YOURDOMAIN''', you get a new web virtual host `mymoin.$YOURDOMAIN` which expects your `moin.cgi` script to be in the base of your home directory. Change the `Script` parameter to alter this expectation. The static moin files are served out of `http://mymoin.$YOURDOMAIN/moin/...`, and the wiki pages themselves are accessed at URLs like `http://mymoin.$YOURDOMAIN/PageName`. If you do this, your '''$HTDOCS''' setting will be "/moin".

You can also add a MoinMoin wiki within a larger virtual host. For example:
Line 57: Line 36:
  web "www" with
    (* Some other stuff ... *)
web "other" where
  alias "/something" "/something_else";
Line 60: Line 39:
    alias "$HTDOCS" "/usr/share/moin/htdocs";
    scriptAlias "/" (home "$INSTANCE/moin.cgi/");
  end;
  addMoinMoin where
Htdocs = "/wikidata";
    Script = home "$INSTANCE/moin.cgi";
    Prefix = "
/mywiki"
  end
end
Line 65: Line 47:
Here, we add a wiki to a vhost `other.$YOURDOMAIN` that also has some other config. We ask to serve the static files with the URL prefix `wikidata` instead of `moin`, we say that `moin.cgi` file is found in the `other` subdirectory of our home directory, and we ask to serve wiki pages at `http://other.$YOURDOMAIN/mywiki/PageName`.

== Modifying wikiconfig.py ==

As the final step, you will want to edit {{{wikiconfig.py}}}, which resides in your '''$INSTANCE''' folder. Remember the directory that you called '''$HTDOCS''' from the previous section, and use it below.

Change the line:

{{{
    url_prefix = '/wiki'
}}}

to:

{{{
    url_prefix = '$HTDOCS'
}}}

At this point, check out the rest of that file to set, for example, your site name. When done, tell {{{domtool}}} to update your configuration, and point a browser at your new wiki installation.
Line 66: Line 68:

Depending on the last version of MoinMoin you used, this could be tricky. The good news is that once you migrate your wiki instance to the version of MoinMoin that we have installed, migration should be a lot easier in the future.

If you know what version of MoinMoin you used previously, then skip to the appropriate section. Otherwise read on, and we will try to help you figure it out.

We will call your MoinMoin data directory '''$DATA'''.

== Before MoinMoin 1.2 ==

Good luck. You'll have to download MoinMoin 1.2.4 yourself, upgrade to it first, and then remove MoinMoin 1.2.4 and proceed with the next sections. If you have hosted a MoinMoin on an old HCoop server, you almost certainly had a later version of MoinMoin than this.

== MoinMoin 1.2 through 1.3.4 ==

If you want to know whether you have at least MoinMoin 1.3.4, check for the existence of the {{{$DATA/plugin/__init__.py}}} file. If you have it, skip this section. Otherwise, continue on.

First, back up your data by making a copy of it.

Then, change to the directory where the migration scripts are located:

{{{
$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/
}}}

Then, consult {{{/usr/share/doc/moinmoin-common/README.Migration.gz}}}, and figure out which scripts you need to run. Unfortunately, you'll have to either know exactly which version of MoinMoin you were last using, or do some detective work by looking at the migration scripts themselves.

To run an individual script (in this example, the 12_to_13_mig11.py script), do:

{{{
$ ./12_to_13_mig11.py $DATA
}}}

This brings you up to MoinMoin 1.3.5.

== MoinMoin 1.3.5 ==

If you have previously used an old HCoop server, this is most likely the version you last used.

First, change to the directory where the migration scripts are located:

{{{
$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/
}}}

Then, run just this one migration script:

{{{
$ ./152_to_1050300.py $DATA
}}}

This brings you up to MoinMoin 1.5.3.

== MoinMoin 1.5.3 or later ==

You have it easy. Just run the following, from any directory.

'''$CONFIGDIR''' is the full path to the directory that has your {{{wikidata.py}}} file, without any "~" characters. We will call your Wiki URL (example: {{{wiki.DOMAIN.TLD/}}}) '''$WIKIURL'''.

{{{
$ cd $CONFIGDIR
$ moin --wiki-url=$WIKIURL migration data
}}}

== Removing stale editor backups ==

If you want to remove the "!MoinEditorBackup" files from your wiki instance, then do the following.

{{{
for i in $(find $DATA/pages -type d \
  -name '*(2f)MoinEditorBackup'); do
    rm -fr $i
done
}}}

== Unlock locked files ==

If your wiki instance still isn't working, then you might have a stale lock file or two. Do the following to remove stale lockfiles.

{{{
for i in $(find $DATA/pages -type f -name current-locked); do
    echo "Removing stale lockfile in $(dirname $i) ..."
    mv $i $(dirname $i)/current
done
}}}

This page explains how to quickly set up a MoinMoin wiki on one of your domains, and also how to migrate old MoinMoin wiki instances to work with the current MoinMoin release.

New wiki

We already have MoinMoin installed on our system. All you need to do is run a script, add some DomTool configuration, and edit your wikiconfig.py file.

Making a new MoinMoin instance

All you have to do is figure out which directory you want to use to store the wiki (we refer to it as $INSTANCE below), and then run:

moinmoin-install $INSTANCE

For the curious, the moinmoin-install script may be viewed here.

Adding to your Domtool configuration

The easiest thing is to set up a dedicated web site for serving a MoinMoin wiki, like so:

moinMoin "mymoin" where
  Script = home "$INSTANCE/moin.cgi"
end

When this is done within $YOURDOMAIN, you get a new web virtual host mymoin.$YOURDOMAIN which expects your moin.cgi script to be in the base of your home directory. Change the Script parameter to alter this expectation. The static moin files are served out of http://mymoin.$YOURDOMAIN/moin/..., and the wiki pages themselves are accessed at URLs like http://mymoin.$YOURDOMAIN/PageName. If you do this, your $HTDOCS setting will be "/moin".

You can also add a MoinMoin wiki within a larger virtual host. For example:

web "other" where
  alias "/something" "/something_else";

  addMoinMoin where
    Htdocs = "/wikidata";
    Script = home "$INSTANCE/moin.cgi";
    Prefix = "/mywiki"
  end
end

Here, we add a wiki to a vhost other.$YOURDOMAIN that also has some other config. We ask to serve the static files with the URL prefix wikidata instead of moin, we say that moin.cgi file is found in the other subdirectory of our home directory, and we ask to serve wiki pages at http://other.$YOURDOMAIN/mywiki/PageName.

Modifying wikiconfig.py

As the final step, you will want to edit wikiconfig.py, which resides in your $INSTANCE folder. Remember the directory that you called $HTDOCS from the previous section, and use it below.

Change the line:

    url_prefix = '/wiki'

to:

    url_prefix = '$HTDOCS'

At this point, check out the rest of that file to set, for example, your site name. When done, tell domtool to update your configuration, and point a browser at your new wiki installation.

Migrating old MoinMoin wikis

Depending on the last version of MoinMoin you used, this could be tricky. The good news is that once you migrate your wiki instance to the version of MoinMoin that we have installed, migration should be a lot easier in the future.

If you know what version of MoinMoin you used previously, then skip to the appropriate section. Otherwise read on, and we will try to help you figure it out.

We will call your MoinMoin data directory $DATA.

Before MoinMoin 1.2

Good luck. You'll have to download MoinMoin 1.2.4 yourself, upgrade to it first, and then remove MoinMoin 1.2.4 and proceed with the next sections. If you have hosted a MoinMoin on an old HCoop server, you almost certainly had a later version of MoinMoin than this.

MoinMoin 1.2 through 1.3.4

If you want to know whether you have at least MoinMoin 1.3.4, check for the existence of the $DATA/plugin/__init__.py file. If you have it, skip this section. Otherwise, continue on.

First, back up your data by making a copy of it.

Then, change to the directory where the migration scripts are located:

$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/

Then, consult /usr/share/doc/moinmoin-common/README.Migration.gz, and figure out which scripts you need to run. Unfortunately, you'll have to either know exactly which version of MoinMoin you were last using, or do some detective work by looking at the migration scripts themselves.

To run an individual script (in this example, the 12_to_13_mig11.py script), do:

$ ./12_to_13_mig11.py $DATA

This brings you up to MoinMoin 1.3.5.

MoinMoin 1.3.5

If you have previously used an old HCoop server, this is most likely the version you last used.

First, change to the directory where the migration scripts are located:

$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/

Then, run just this one migration script:

$ ./152_to_1050300.py $DATA

This brings you up to MoinMoin 1.5.3.

MoinMoin 1.5.3 or later

You have it easy. Just run the following, from any directory.

$CONFIGDIR is the full path to the directory that has your wikidata.py file, without any "~" characters. We will call your Wiki URL (example: wiki.DOMAIN.TLD/) $WIKIURL.

$ cd $CONFIGDIR
$ moin --wiki-url=$WIKIURL migration data

Removing stale editor backups

If you want to remove the "MoinEditorBackup" files from your wiki instance, then do the following.

for i in $(find $DATA/pages -type d \
  -name '*(2f)MoinEditorBackup'); do
    rm -fr $i
done

Unlock locked files

If your wiki instance still isn't working, then you might have a stale lock file or two. Do the following to remove stale lockfiles.

for i in $(find $DATA/pages -type f -name current-locked); do
    echo "Removing stale lockfile in $(dirname $i) ..."
    mv $i $(dirname $i)/current
done

MemberManual/WebApplications/MoinMoin (last edited 2018-10-04 03:09:37 by ClintonEbadi)