##language:en HelpContents > HelpOnAdministration > HelpOnUpdating '''Index''' [[TableOfContents]] == General procedures == /!\ '''Before you update an existing wiki, MAKE A BACKUP!''' You have been warned, and it's not my fault when you end up like this... @) === Configuration update === After upgrading, your existing wiki should continue to work (the goal is to have sane defaults for any new config values, but then there can be bugs). Check that this is indeed the case, and then take the time to check the CHANGES file in your distribution. Often, new features will be invisible unless your extend your configuration in "moin.config.py". This is especially true for: * somewhat dangerous macros that won't be activated by default, because they're not advisable for public wikis. You need to explicitely activate those by adding an {{{allowed_actions}}} list to the config. Currently, the actions {{{DeletePage}}} and {{{AttachFile}}} are considered unsafe. * email features: you need to provide {{{mail_smarthost}}} and {{{mail_from}}}. * new pages icons: to get new icons like "XML", "Subscribe" etc. it's best to just delete the {{{page_icons}}} setting, now that "config.py" has a default for it. If you changed it in the past, add new icons from the "config.py" default to your "moin_config.py". === Updating files === Images:: On every update, you should copy the content of the "share/moin/htdocs/img" directory to the image directory visible to your web server, normally a new release has some new GIFs in it. If you use the default distutils setup scheme, this is no longer necessary (distutils updates the files for you, and your webserver gets the files from the installed images). System pages:: When upgrading to a new version, copy at least the help pages ("Help*") to your existing directory. Then check whether you miss any new system pages. InterWiki:: Check that you have the newest entries in the "intermap.txt" file; if you have "private" entries, add them to the distribution file, then copy the result over your current file. Note that starting with version 0.11, you can point "shared_intermap" at a file loaded ''before'' the file in your data directory, which takes precedence (i.e. have global entries in the shared one, private entries the data dir file). === Troubleshooting === To make UserPreferences work, you should "mkdir -m707 user" in your "data" directory. A good idea is to do a request for "moin.cgi?test" (which calls an internal diagnosis feature) after you installed a new release, which will spot some common errors. Depending on your installation, more tightly secured permissions are a good idea. Ideally, you assign all files in the data directory to the user the web server runs under, and then you use `700` or `755`. == Upgrade information for specfic versions == The following sections provide information pertaining to specific versions of the software; if you jump several versions, read all the sections applying to your situation. [[Anchor(update-0-11)]] === Version 0.11 === (!) It is strongly recommended that you change any installation prior to 0.11 to the new distutils scheme, this will make any future upgrades much easier. You should follow the instructions on HelpOnInstalling regarding basic installation, until you come to the "Creating a wiki instance" step. Then you have two options: 1. simply adapt your old instance to the new situation, this especially means to create an alias that points to the `.../share/moin/htdocs` directory; you have to change `url_prefix` to `/wiki` then. The positive effect is that you automatically get any new icons and CSS files of version 0.11 and any future version, because distutils will update them in that location. 1. create a new instance as per the instructions, copy the data directory from your old instance, and merge the configuration files. Check your configuration against the provided default `moin_config.py` that you find in `.../share/moin/cgi-bin/moin_config.py` after installation with distutils. You should add the `sitename` setting, which gets added to the page title, to RSS feeds and the like. When you are offically a part of the InterWiki system, then also add `interwikiname`, which should contain your own InterWiki moniker (for example "`MoinMoin`" for the MoinMoin wiki itself). To get new icons, and also to allow I18N customization of the menu and icon links, you should either delete or adapt[[FootNote(Adapting means to compare your settings and the default values found in the MoinMoin/config.py file.)]] your settings for `page_icons` and `navi_bar`. Note that the new `navi_bar` default setting gets the wiki's name from the new `sitename` setting, which previously was the main reason to have your own modified `navi_bar`. Due to I18N support for system pages, the only remaining configurable page name is that of the front page, which can be set by `page_front_page` (the old name `front_page` for that setting is also no longer supported); the reasoning behind this is that page name customization was mainly added and used for localization issues, while changing the front page name is rather common, often the front page is named like the whole wiki. Finally, copy any new system pages to your wiki data directory. The current system pages are in the directory `.../share/moin/data/text`. The minimal set to copy is the new help pages ("`Help*`"). If you are sure you have not modified any system pages, you can simply copy all of them to your instance `data/text` directory. /!\ '''When copying all system pages with one command, be sure to delete pages from the following list of pages that are likely changed by your users.''' The following pages are very likely to change once a wiki is in use, and it is advisable to delete them from the master system page directory `.../share/moin/data/text` before any instance update; they are only included to seed new wikis: {{{ CategoryCategory CategoryHomepage FrontPage HomepageTemplate LocalSpellingWords PythonLanguage WikiHomePage WikiName WikiSandBox }}} The recommended set is in the following list: {{{ Help* AbandonedPages EventStats EventStats_2fHitCounts EventStats_2fUserAgents FindPage InterWiki MoinMoin OrphanedPages PageSize Python4Suite RandomPage RecentChanges SiteNavigation StructuredText SystemInfo TitleIndex UserPreferences WantedPages WikiWikiWeb WordIndex XsltVersion }}} If you want to do German visitors a favour, also copy the new German system and help pages, they will be automatically activated as long as you use the default `page_icons` and `navi_bar` settings: {{{ Hilfe* AktuelleÄnderungen (Aktuelle_c4nderungen) AufgegebeneSeiten BenutzerEinstellungen GesuchteSeiten SeiteFinden SeitenGröße (SeitenGr_f6_dfe) StartSeite TitelIndex VerwaisteSeiten WegWeiser WortIndex ZufallsSeite }}} The next version will include an admin interface that will allow interactive upgrades. [[FootNote]] [[Anchor(update-1-0)]] === Version 1.0 === Do we have anything for 1.0 (in retrospect)? [[Anchor(update-1-1)]] === Version 1.1 === Be sure to read the above section on ''General procedures'' before you start upgrading. '''Upgrading your configuration''' * If you changed the default for `page_template_ending`, this is now called `page_template_regex` and must contain a regex (defaults to '[a-z]Template$'). * Same applies to `page_form_ending` now called `page_form_regex` (default: '[a-z]Form$') * Not a new feature, but configurable now: `page_category_regex` (default: '^Category[A-Z]') * If you have added your own `SecurityPolicy`, the class interface for that has changed (see `security.py`) '''Enabling new features''' * `default_lang` (default: 'en') - If user does not set a language in his user settings, this will be used. * `edit_locking` (default: `'warn 10'`) - Editor locking policy: None, 'warn ', or 'lock '. * `hosts_deny` (default: `[]`) - a list of denied IPs; if an IP ends with a dot, it denies a whole subnet (class A, B or C). * `html_pagetitle` (default: `None`) - Allows you to set a specific HTML page title (if not set, it defaults to the value of sitename). * `mail_login` (default: `None`) - This is only needed when you use SMTP AUTH to send mail; in that case, set this to the username and password separated by a space, i.e. "user pwd". * `smileys` (default: `{}`) - User-defined smileys (a dict with the markup as the key and a tuple of width, height, border, image name as the value).