<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>MemberManual/WebApplications/MoinMoin</title><revhistory><revision><revnumber>41</revnumber><date>2018-10-04 03:09:37</date><authorinitials>ClintonEbadi</authorinitials><revremark>moin 1.9.10 disables newaccount and disallows editing by default!</revremark></revision><revision><revnumber>40</revnumber><date>2015-02-13 01:10:27</date><authorinitials>RobinTempleton</authorinitials><revremark>Revert to revision 38.</revremark></revision><revision><revnumber>39</revnumber><date>2015-02-12 12:21:32</date><authorinitials>adud203.neoplus.adsl.tpnet.pl</authorinitials></revision><revision><revnumber>38</revnumber><date>2014-04-14 07:24:46</date><authorinitials>ClintonEbadi</authorinitials><revremark>update moinMoin syntax</revremark></revision><revision><revnumber>37</revnumber><date>2013-01-29 06:46:37</date><authorinitials>ClintonEbadi</authorinitials><revremark>updated moin for the spam user thing, linked the binary in common.bin</revremark></revision><revision><revnumber>36</revnumber><date>2013-01-28 22:14:41</date><authorinitials>ClintonEbadi</authorinitials><revremark>always use textchas!</revremark></revision><revision><revnumber>35</revnumber><date>2013-01-26 01:08:16</date><authorinitials>ClintonEbadi</authorinitials><revremark>what about themes?</revremark></revision><revision><revnumber>34</revnumber><date>2013-01-14 07:18:27</date><authorinitials>ClintonEbadi</authorinitials><revremark>cat</revremark></revision><revision><revnumber>33</revnumber><date>2013-01-06 08:42:05</date><authorinitials>ClintonEbadi</authorinitials><revremark>clarify that permissions don't affect afs, but suexec is lame</revremark></revision><revision><revnumber>32</revnumber><date>2013-01-05 06:05:01</date><authorinitials>c-66-41-66-133.hsd1.mn.comcast.net</authorinitials></revision><revision><revnumber>31</revnumber><date>2012-12-18 08:50:34</date><authorinitials>ClintonEbadi</authorinitials><revremark>finish updating for new layout</revremark></revision><revision><revnumber>30</revnumber><date>2012-12-18 03:06:31</date><authorinitials>ClintonEbadi</authorinitials><revremark>updating to 1.9.x and navajos, part I</revremark></revision><revision><revnumber>29</revnumber><date>2012-12-17 21:05:14</date><authorinitials>ClintonEbadi</authorinitials><revremark>move to correct sub-page</revremark></revision><revision><revnumber>28</revnumber><date>2011-01-15 13:11:48</date><authorinitials>AdamChlipala</authorinitials><revremark>spam</revremark></revision><revision><revnumber>27</revnumber><date>2011-01-14 15:22:31</date><authorinitials>c915ba5f.virtua.com.br</authorinitials></revision><revision><revnumber>26</revnumber><date>2011-01-14 15:21:38</date><authorinitials>c915ba5f.virtua.com.br</authorinitials></revision><revision><revnumber>25</revnumber><date>2011-01-14 14:34:52</date><authorinitials>AdamChlipala</authorinitials><revremark>spam</revremark></revision><revision><revnumber>24</revnumber><date>2011-01-14 00:22:38</date><authorinitials>c915ba5f.virtua.com.br</authorinitials></revision><revision><revnumber>23</revnumber><date>2010-09-26 09:08:40</date><authorinitials>cpc1-dals15-2-0-cust426.hari.cable.virginmedia.com</authorinitials><revremark>Report broken llink</revremark></revision><revision><revnumber>22</revnumber><date>2009-05-27 19:07:55</date><authorinitials>iws-bc-ip-01-130.rmdatasystems.com</authorinitials><revremark>Added ! to MoinEditorBackup to prevent linking</revremark></revision><revision><revnumber>21</revnumber><date>2008-09-17 19:27:48</date><authorinitials>office4.tmcs.net</authorinitials><revremark>Update to new syntax</revremark></revision><revision><revnumber>20</revnumber><date>2008-07-08 16:03:58</date><authorinitials>MichaelOlson</authorinitials></revision><revision><revnumber>19</revnumber><date>2008-07-07 04:28:01</date><authorinitials>localhost</authorinitials><revremark>converted to 1.6 markup</revremark></revision><revision><revnumber>18</revnumber><date>2007-12-21 12:09:09</date><authorinitials>JustinLeitgeb</authorinitials><revremark>$HTDOCS setting is &quot;/moin&quot;, not &quot;moin&quot; for default wiki config</revremark></revision><revision><revnumber>17</revnumber><date>2007-12-06 01:03:35</date><authorinitials>MichaelOlson</authorinitials><revremark>Update instructions for new moinmoin-install script</revremark></revision><revision><revnumber>16</revnumber><date>2007-11-29 23:26:10</date><authorinitials>MichaelOlson</authorinitials><revremark>Add instructions for removing stale lock files and editor page backups</revremark></revision><revision><revnumber>15</revnumber><date>2007-11-19 03:47:15</date><authorinitials>MichaelOlson</authorinitials><revremark>update examples, bolden YOURDOMAIN</revremark></revision><revision><revnumber>14</revnumber><date>2007-11-18 16:46:00</date><authorinitials>AdamChlipala</authorinitials><revremark>New Domtool directives, plus comments on too much copy-and-paste</revremark></revision><revision><revnumber>13</revnumber><date>2007-11-16 13:24:44</date><authorinitials>AdamChlipala</authorinitials><revremark>Mention Domtool directives coming soon</revremark></revision><revision><revnumber>12</revnumber><date>2007-11-16 13:04:03</date><authorinitials>MichaelOlson</authorinitials></revision><revision><revnumber>11</revnumber><date>2007-11-16 13:03:10</date><authorinitials>MichaelOlson</authorinitials><revremark>Fix location to moin.cgi</revremark></revision><revision><revnumber>10</revnumber><date>2007-11-16 07:53:11</date><authorinitials>FrankBynum</authorinitials><revremark>wrong path to moin.cgi (??)</revremark></revision><revision><revnumber>9</revnumber><date>2007-11-16 04:52:00</date><authorinitials>MichaelOlson</authorinitials><revremark>Still more indicators</revremark></revision><revision><revnumber>8</revnumber><date>2007-11-16 04:50:15</date><authorinitials>MichaelOlson</authorinitials><revremark>More indicators</revremark></revision><revision><revnumber>7</revnumber><date>2007-11-16 04:49:14</date><authorinitials>MichaelOlson</authorinitials><revremark>Indicate command lines, since we have long commands</revremark></revision><revision><revnumber>6</revnumber><date>2007-11-16 04:47:56</date><authorinitials>MichaelOlson</authorinitials><revremark>Fix some typos</revremark></revision><revision><revnumber>5</revnumber><date>2007-11-16 04:44:18</date><authorinitials>MichaelOlson</authorinitials><revremark>Finish migration instructions</revremark></revision><revision><revnumber>4</revnumber><date>2007-11-16 04:08:16</date><authorinitials>MichaelOlson</authorinitials><revremark>Fix ACL</revremark></revision><revision><revnumber>3</revnumber><date>2007-11-16 04:07:38</date><authorinitials>MichaelOlson</authorinitials><revremark>Final step</revremark></revision><revision><revnumber>2</revnumber><date>2007-11-16 03:58:56</date><authorinitials>MichaelOlson</authorinitials><revremark>Fix omission</revremark></revision><revision><revnumber>1</revnumber><date>2007-11-16 03:58:00</date><authorinitials>MichaelOlson</authorinitials><revremark>Initial content</revremark></revision></revhistory></articleinfo><para>This page explains how to quickly set up a <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> wiki on one of your domains, and also how to migrate old <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> wiki instances to work with the current <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> release. </para><section><title>New wiki</title><para>We already have <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> installed on our system.  All you need to do is run a script, add some <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/DomTool#">DomTool</ulink> configuration, and edit your <code>wikiconfig.py</code> file. </para><section><title>Making a new MoinMoin instance</title><para>All you have to do is figure out which directory you want to use to store the wiki (we refer to it as <emphasis role="strong">$INSTANCE</emphasis> below), and then run: </para><screen><![CDATA[moinmoin-install $INSTANCE]]></screen><para>For the curious, the <code>moinmoin-install</code> script may be viewed <ulink url="http://git.hcoop.net/?p=hcoop/misc.git;a=blob_plain;f=bin/moinmoin-install;hb=HEAD">here</ulink> <emphasis role="strong">(FIXME: broken link)</emphasis>. </para></section><section><title>Adding to your Domtool configuration</title><para>The easiest thing is to set up a dedicated web site for serving a <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> wiki, like so: </para><screen><![CDATA[moinMoin "mymoin" where
  Script = home "$INSTANCE/moin.cgi"
with
end]]></screen><para>When this is done within <code>$YOURDOMAIN</code>, you get a new web virtual host <code>mymoin.$YOURDOMAIN</code> which expects your <code>moin.cgi</code> script to be in the base of your home directory.  Change the <code>Script</code> parameter to alter this expectation.  The static moin files are served out of <code>http://mymoin.$YOURDOMAIN/moin$VERSION/...</code>, and the wiki pages themselves are accessed at URLs like <code>http://mymoin.$YOURDOMAIN/PageName</code>. </para><para>You can also add a <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> wiki within a larger virtual host.  For example: </para><screen><![CDATA[web "other" where
  alias "/something" "/something_else";
]]><![CDATA[
  addMoinMoin where
    Htdocs = "/wikidata";
    Script = home "$INSTANCE/moin.cgi";
    Prefix = "/mywiki"
  end
end]]></screen><para>Here, we add a wiki to a vhost <code>other.$YOURDOMAIN</code> that also has some other config.  We ask to serve the static files with the URL prefix <code>wikidata</code> instead of <code>moin$VERSION</code>, we say that <code>moin.cgi</code> file is found in the <code>other</code> subdirectory of our home directory, and we ask to serve wiki pages at <code>http://other.$YOURDOMAIN/mywiki/PageName</code>. If you want to use the default <code>HtDocs</code> (recommended), set it to <code>moin_default_htdocs</code> which will use the appropriate versioned static files path for the current <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> release. </para></section><section><title>Modifying wikiconfig.py</title><para>As the final step, you will want to edit <code>wikiconfig.py</code>, which resides in your <code>$INSTANCE</code> folder. You must at least set <code>sitename</code>, and will want to configure the <code>superuser</code> and <code>acl_rights_before</code> settings to be able to administer your wiki. </para><para>Your new wiki's local <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/HelpOnConfiguration#">HelpOnConfiguration</ulink> page or <ulink url="http://moinmoin.wikiwikiweb.de/HelpOnConfiguration#">HelpOnConfiguration</ulink> should explain the rest. </para><para>If you customized the <code>HtDocs</code> location, you must edit the <code>url_prefix_static</code>. This is almost always a bad idea, however, since the default will result in the best cache policy and avoid problems with loading incorrect static files when we upgrade the shared files. </para><para>At this point, check out the rest of that file to set, for example, your site name.  When done, tell <code>domtool</code> to update your configuration, and point a browser at your new wiki installation. </para><section><title>Setting the Default Access Control List</title><para>See <ulink url="http://moinmoin.wikiwikiweb.de/HelpOnAccessControlLists#">HelpOnAccessControlLists</ulink> for detailed instructions on setting access control lists. </para><para>As of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.9.10, the default ACL only allows <code>Trusted</code> users to edit pages (<code>acl_rights_default = u&quot;Trusted:read,write,delete,revert Known:read All:read&quot;</code>). Earlier versions allowed users with accounts (<code>Known</code>) and without accounts (<code>All</code>) to edit by default, but would show a TextCHA (if enabled) to <code>Known</code>/<code>All</code> members. </para><para>If you'd like all users with accounts to edit, and anyone without an account to be able to read pages you can override the default acl: <code>acl_rights_default = u&quot;Trusted:read,write,delete,revert Known:read,write,revert All:read&quot;</code>. If you decide to allow users without accounts to edit pages, it is recommended to only grant <code>All:read,write</code> and not grant anonymous users delete or revert permissions (delete in particular can do irreversible damage). Only allowing trusted users to delete pages is recommended, especially if you allow open account registration. </para></section><section><title>Allowing Account Creation</title><para>Starting with <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.9.10, the <code>newaccount</code> action is disabled by default, and users will need to manually request accounts to be created by a wiki superuser. It is recommended to leave <code>newaccount</code> disabled, and document how to request an account on your <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/WelcomePage#">WelcomePage</ulink>. Users will need to provide you with their requested <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/WikiName#">WikiName</ulink> and email address. A superuser then creates the account by using <code>Settings -&gt; Switch User</code>, and entering the new username and email address. The user that requested the account can then claim the account by using the <code>recoverpass</code> action and setting a password. </para><para>If your wiki is for internal use only, or if you will be enabling a TextCHA for <code>newaccount</code> on a public wiki, you can enable public account creation by overriding <code>actions_superuser</code> in your configuration. For a wiki using <code>multiconfig</code> (default at HCoop): </para><screen><![CDATA[    actions_superuser = multiconfig.DefaultConfig.actions_superuser[:]
    actions_superuser.remove('newaccount')]]></screen><para>If you have set up a <ulink url="http://moinmoin.wikiwikiweb.de/FarmQuestions#">wiki farm</ulink>, the configuration suggested by <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> will work: </para><screen><![CDATA[   actions_superuser = FarmConfig.actions_superuser[:]
   actions_superuser.remove('newaccount')]]></screen><para>If you allow the <code>newaccount</code> action, you <emphasis role="strong">must</emphasis> set a TextCHA on the action, or spammers will inundate your wiki with fake accounts. </para></section><section><title>Anti-Spam</title><para>If you override the defaults and allow new account creation on your wiki, <emphasis role="strong">you must enable TextCHAs on your login form or your wiki will eventually grind to a halt</emphasis> </para><para>Unfortunately, spammers have figured out how to register <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> accounts, and, even if you only allow editing by a trusted group, will register hundreds of accounts per month on your wiki after they've found it. Over time, you will notice the wiki slowing down since moin stores account information in individual files (finding a file in a UNIX directory becomes linearly more expensive as the number of files increases). </para><para>See <ulink url="http://moinmoin.wikiwikiweb.de/HelpOnSpam#">HelpOnSpam</ulink> for details on configuring TextCHA. Enabling TextCHAs will automatically place one onto the user registration form; if you choose a reasonable question/answer this will prevent shotgun spammers from silently slowing down your wiki. </para></section></section></section><section><title>Migrating old MoinMoin wikis</title><para>Depending on the last version of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> you used, this could be tricky.  The good news is that once you migrate your wiki instance to the version of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> that we have installed, migration should be a lot easier in the future. </para><para>If you know what version of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> you used previously, then skip to the appropriate section.  Otherwise read on, and we will try to help you figure it out. </para><para>We will call your <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> data directory <emphasis role="strong">$DATA</emphasis>. </para><section><title>Before MoinMoin 1.2</title><para>Good luck.  You'll have to download <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.2.4 yourself, upgrade to it first, and then remove <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.2.4 and proceed with the next sections.  If you have hosted a <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> on an old HCoop server, you almost certainly had a later version of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> than this. </para></section><section><title>MoinMoin 1.2 through 1.3.4</title><para>If you want to know whether you have at least <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.3.4, check for the existence of the <code>$DATA/plugin/__init__.py</code> file.  If you have it, skip this section.  Otherwise, continue on. </para><para>First, back up your data by making a copy of it. </para><para>Then, change to the directory where the migration scripts are located: </para><screen><![CDATA[$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/]]></screen><para>Then, consult <code>/usr/share/doc/moinmoin-common/README.Migration.gz</code>, and figure out which scripts you need to run.  Unfortunately, you'll have to either know exactly which version of <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> you were last using, or do some detective work by looking at the migration scripts themselves. </para><para>To run an individual script (in this example, the 12_to_13_mig11.py script), do: </para><screen><![CDATA[$ ./12_to_13_mig11.py $DATA]]></screen><para>This brings you up to <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.3.5. </para></section><section><title>MoinMoin 1.3.5</title><para>If you have previously used an old HCoop server, this is most likely the version you last used. </para><para>First, change to the directory where the migration scripts are located: </para><screen><![CDATA[$ cd /usr/share/python-support/python-moinmoin/MoinMoin/script/old/migration/]]></screen><para>Then, run just this one migration script: </para><screen><![CDATA[$ ./152_to_1050300.py $DATA]]></screen><para>This brings you up to <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> 1.5.3. </para></section><section><title>MoinMoin 1.5.3</title><para>You have it easy.  Just run the following, from any directory. </para><para><emphasis role="strong">$CONFIGDIR</emphasis> is the full path to the directory that has your <code>wikidata.py</code> file, without any &quot;~&quot; characters.  We will call your Wiki URL (example: <code>wiki.DOMAIN.TLD/</code>) <emphasis role="strong">$WIKIURL</emphasis>. </para><screen><![CDATA[$ cd $CONFIGDIR
$ moin --wiki-url=$WIKIURL migration data]]></screen></section><section><title>Moin 1.7.x</title><para><emphasis role="strong">Remember to make a backup</emphasis>. The 1.7 to 1.9 update is slightly more intrusive than previous updates, and you cannot go back if you screw up! </para><para>If you installed moin using <code>moinmoin-install</code> on mire, this is the version you are using. The next version we offer is 1.9.5. To make things easier in the future, we moved the moin install from the local machine to afs. Upgrading your data is similar to previous version, where <code>$CONFIGDIR</code> is the directory containing your <code>wikiconfig.py</code>. </para><screen><![CDATA[cd $CONFIGDIR
/afs/hcoop.net/common/bin/moin --config-dir=`pwd` --wiki-url=$WIKIURL maint cleancache
/afs/hcoop.net/common/bin/moin --config-dir=`pwd` --wiki-url=$WIKIURL migration data]]></screen><para><ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MoinMoin#">MoinMoin</ulink> made a number of changes to their module hiearchy in 1.9, so you'll also need to replace your copy of <code>moin.cgi</code> with the latest version: </para><screen><![CDATA[cp /afs/hcoop.net/common/app/moin/installed/moin19/share/moin/server/moin.cgi $LOCATION-OF-YOUR-MOIN.CGI]]></screen><para>For this release, it is recommended that you copy a new version of the system-wide <code>wikiconfig.py</code> from <code>/afs/hcoop.net/common/app/moin/installed/moin19/share/moin/config/wikiconfig.py</code> and merge the minimal settings needed from your current config. Things to look out for: </para><itemizedlist><listitem><para><code>url_static_prefix</code> is now automatically generated, so you should unset it </para></listitem><listitem><para>You really ought to use a TextCHA, at the very least to prevent account registration spam </para></listitem></itemizedlist></section></section><section><title>Tips and Tricks</title><para>The <code>moin</code> command line program is installed at <code>/afs/hcoop.net/common/bin</code> (which is in the default path for bash users). It is quite useful for managing your wiki; see <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/HelpOnMoinCommand#">HelpOnMoinCommand</ulink> for its documentation. You will need to provide at least <code>--config-dir</code> and <code>--wiki-url</code> as arguments (represented by <code>...</code> in our examples). </para><section><title>Managing Inactive Users</title><para>You may find yourself with a large number of inactive users; a likely cause is registration spam if you have a wiki relying on a trusted editors group instead of TextCHA. Moin handily provides a command to list and remove inactive users. </para><para>The process of removing inactive users occurs in two steps. First you gather the list of active and inactive users in a file (substitute <code>$KEEP</code> with a name of your choosing) </para><screen><![CDATA[moin ... acount inactive --py-append=$KEEP]]></screen><para><code>$FILE</code> will contain the set of users that are to be <emphasis role="strong">kept</emphasis>. If you see any bogus accounts in the file, remove the line containing them. Next, using the file of users to keep, review which members would be deleted were you to proceed: </para><warning><para><emphasis role="strong">Make a backup of your wiki before continuing</emphasis> (or at least the <code>data/user</code> directory). If you forget the <code>--show</code> argument <emphasis role="strong">you will initiate an irrevocable change</emphasis>. </para><para>If you do screw your wiki up, <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/MemberManual/Backups#">MemberManual/Backups</ulink> might help you recover, but don't rely on it! </para></warning><screen><![CDATA[moin ... account inactive --py-exec=$KEEP --show]]></screen><para>This will result in output like: </para><screen><![CDATA[1239843008.83.54402     u'FooBar'    u'email@domain.tld'        0
...]]></screen><para>You probably want to redirect this to a file to analyze in a text editor since there will likely be at least a few users you do not want to prune. When you encounter a user you do not want to delete, note the uid (the first field in a line, e.g. <code>1239843008.83.54402</code> in the example above). You will need to add a new line to <code>$KEEP</code> in the format: </para><screen><![CDATA[editlog_uids.add(u'$UID') ]]></screen><para>If you copy all of the lines from the list you want to keep into a new file, you can pipe it through <code>cut -f1</code> to extract the UID. </para><para><emphasis>FIXME: Trivial script to take list of lines from <code>$KEEP</code> and generate editlog commands to keep additional users</emphasis> </para><para><emphasis>FIXME: document actually removing inactive users</emphasis> </para></section><section><title>Removing stale editor backups</title><caution><para>This recipe has not been tested with Moin after 1.7.x, proceed at your own risk. If you know a better way or that it does still work, update the page! </para></caution><para>If you want to remove the &quot;MoinEditorBackup&quot; files from your wiki instance, then do the following. </para><screen><![CDATA[for i in $(find $DATA/pages -type d \
  -name '*(2f)MoinEditorBackup'); do
    rm -fr $i
done]]></screen></section><section><title>Unlock locked files</title><caution><para>This recipe has not been tested with Moin after 1.7.x, proceed at your own risk. If you know a better way or that it does still work, update the page! </para></caution><para>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. </para><screen><![CDATA[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]]></screen></section><section><title>500 Server Error</title><para>If you get a 500 server error when running your wiki, one likely cause is permissions on your <emphasis role="strong">$INSTANCE</emphasis> directory.  The directory which contains <code>moin.cgi</code> needs to have permissions 755, because <code>suexec</code> will refuse to run the cgi if its parent directory is writeable by others. Note that the directory permissions do not actually affect anything (since we're using <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/AndrewFileSystem#">AndrewFileSystem</ulink>), but modifying the suexec code to skip the checks is considered too risky. </para></section><section><title>Installing Themes</title><para>You can install most plugins with no problem, but themes at least require that you place files into the shared htdocs. You have two options: </para><orderedlist numeration="arabic"><listitem><para>Request that we install the static files site-wide (no problem for things in the theme market) </para></listitem><listitem><para>Copy the static files into your own directory, and change <code>HtDocs</code> (this requires that you keep up to date with upgrades) </para></listitem></orderedlist><para>We are serving the css and images for at least the following themes: </para><itemizedlist><listitem><para>Moniker </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> <ulink url="https://wiki.hcoop.net/MemberManual/WebApplications/MoinMoin/CategoryMemberManual#">CategoryMemberManual</ulink> </para></section></section></article>