====== Upgrading ====== Before upgrading, you should always read the [[..changes|changelog]] to see if something changed you should be aware of when upgrading. To see which version you are running, log in and check the Admin page. The easiest way to upgrade is by performing the following steps: - **Make a full backup of your wiki** (better safe than sorry) * cp -a /path/to/wiki/ /path/to/wikibackup - [[http://splitbrain.org/go/dokuwiki|Download]] and unpack the new version. Below are instructions for a Linux environment. For Windows and other environments, see [[unpacking]]. - **Either** download dokuwiki tarball into a directory of choice: * cd ~ wget http://.../dokuwiki-xxxx-xx-xx.tgz * Extract it into a subfolder named ''dokuwiki-xxxx-xx-xx'': * tar -xzvf dokuwiki-xxxx-xx-xx.tgz * Then copy/upload all its files over your old DokuWiki installation overwriting all existing files: * 'cp' -rf dokuwiki-xxxx-xx-xx/{*,.??*} /path/to/wiki/ * The quotes around cp ensures the command works even when cp is aliased to cp -i * The .??* ensures the hidden files (e.g.: the .htaccess.dist) are also copied - **Or** download directly into your dokuwiki's folder: * cd /path/to/wiki/ wget http://.../dokuwiki-xxxx-xx-xx.tgz * Extract it into dokuwiki root overwriting existing files: * tar -xzvf dokuwiki-xxxx-xx-xx.tgz --strip-components=1 * Remove the downloaded archive: * rm dokuwiki-xxxx-xx-xx.tgz - Check [[..changes|Changelog]] - Remove install.php : rm /path/to/wiki/install.php - Remove old files that are not used anymore (See below for a list of files) - Fix [[install:permissions | permissions]] if needed; including possibly new directories under ''data/'' - Compare your .htaccess with the delivered .htaccess.dist for needed changes - Update your plugins and template. **Angua release** no longer supports plugins with underscores in their name. - make sure your cache is invalidated by touching ''conf/local.php'' and/or ''doku.php'' (eg. by resaving your configuration). - updating your index may be necessary; see [[:cli#indexer.php|Command Line Tools]] - verify all needed directories exist inside the data/ directory and have good permissions **Angua release**, add two new directories for media versioning: * ''data/media_attic'' * ''data/media_meta'' The above steps are safe when you always adhered to the advice to only change local versions of your config files (like ''conf/local.php'' instead of ''conf/dokuwiki.php''). DokuWiki will not overwrite those local files. If you always used the [[plugin:config|config manager]] you're on the safe side as it always saves to local.php. Also user data and [[:ACL]] information are never overwritten because DokuWiki only ships examples (with a ''.dist'' extension). ===== Files to remove ===== Here is a list of files that were removed in recent releases. You should check if they still exist in your install. If they do, delete them. # removed in 2011-05-25 conf/words.aspell.dist lib/styles/style.css # removed in 2010-11-07 inc/lang/ar/subscribermail.txt inc/lang/az/subscribermail.txt inc/lang/bg/subscribermail.txt inc/lang/ca/subscribermail.txt inc/lang/ca-valencia/subscribermail.txt inc/lang/cs/subscribermail.txt inc/lang/da/subscribermail.txt inc/lang/de-informal/subscribermail.txt inc/lang/el/subscribermail.txt inc/lang/eo/subscribermail.txt inc/lang/es/subscribermail.txt inc/lang/et/subscribermail.txt inc/lang/eu/subscribermail.txt inc/lang/fa/subscribermail.txt inc/lang/fi/subscribermail.txt inc/lang/fo/subscribermail.txt inc/lang/fr/subscribermail.txt inc/lang/gl/subscribermail.txt inc/lang/he/subscribermail.txt inc/lang/hr/subscribermail.txt inc/lang/hu/subscribermail.txt inc/lang/id/subscribermail.txt inc/lang/is/subscribermail.txt inc/lang/it/subscribermail.txt inc/lang/ja/subscribermail.txt inc/lang/ko/subscribermail.txt inc/lang/ku/subscribermail.txt inc/lang/lt/subscribermail.txt inc/lang/lv/subscribermail.txt inc/lang/mr/subscribermail.txt inc/lang/ne/subscribermail.txt inc/lang/nl/subscribermail.txt inc/lang/no/subscribermail.txt inc/lang/pl/subscribermail.txt inc/lang/pt-br/subscribermail.txt inc/lang/pt/subscribermail.txt inc/lang/ro/subscribermail.txt inc/lang/ru/subscribermail.txt inc/lang/sk/subscribermail.txt inc/lang/sr/subscribermail.txt inc/lang/sv/subscribermail.txt inc/lang/th/subscribermail.txt inc/lang/tr/subscribermail.txt inc/lang/uk/subscribermail.txt inc/lang/zh/subscribermail.txt inc/lang/zh-tw/subscribermail.txt # removed in rc2010-10-07 conf/msg inc/lang/bg/wordblock.txt inc/lang/ca-valencia/wordblock.txt inc/lang/ca/wordblock.txt inc/lang/cs/wordblock.txt inc/lang/da/wordblock.txt inc/lang/de-informal/wordblock.txt inc/lang/de/subscribermail.txt inc/lang/de/wordblock.txt inc/lang/el/wordblock.txt inc/lang/en/subscribermail.txt inc/lang/en/wordblock.txt inc/lang/eo/wordblock.txt inc/lang/es/wordblock.txt inc/lang/et/wordblock.txt inc/lang/eu/wordblock.txt inc/lang/fa/wordblock.txt inc/lang/fi/wordblock.txt inc/lang/fo/wordblock.txt inc/lang/fr/wordblock.txt inc/lang/he/wordblock.txt inc/lang/hr/wordblock.txt inc/lang/hu/wordblock.txt inc/lang/id/wordblock.txt inc/lang/it/wordblock.txt inc/lang/ja/wordblock.txt inc/lang/ko/wordblock.txt inc/lang/ku/wordblock.txt inc/lang/lt/wordblock.txt inc/lang/lv/wordblock.txt inc/lang/mg/wordblock.txt inc/lang/mr/wordblock.txt inc/lang/nl/wordblock.txt inc/lang/no/wordblock.txt inc/lang/pl/wordblock.txt inc/lang/pt-br/wordblock.txt inc/lang/pt/wordblock.txt inc/lang/ro/wordblock.txt inc/lang/sk/wordblock.txt inc/lang/sl/wordblock.txt inc/lang/sr/wordblock.txt inc/lang/sv/wordblock.txt inc/lang/th/wordblock.txt inc/lang/tr/wordblock.txt inc/lang/uk/wordblock.txt inc/lang/vi/wordblock.txt inc/lang/zh-tw/wordblock.txt inc/lang/zh/wordblock.txt lib/scripts/pngbehavior.htc # removed in rc2009-12-02 inc/lang/ar/wordblock.txt inc/lang/ca-va/ lib/plugins/acl/lang/ca-va/ lib/plugins/config/lang/ca-va/ lib/plugins/plugin/lang/ca-va/ lib/plugins/popularity/lang/ca-va/ lib/plugins/revert/lang/ca-va/ lib/plugins/usermanager/lang/ca-va/ # removed in rc2009-01-30 lib/plugins/upgradeplugindirectory lib/plugins/upgradeplugindirectory/action.php # removed in rc2009-01-26 inc/auth/punbb.class.php inc/lang/ko/edit.txt_bak inc/lang/ko/lang.php_bak inc/lang/ku/admin_acl.txt inc/lang/mg/admin_acl.txt lib/plugins/importoldchangelog lib/plugins/importoldchangelog/action.php lib/plugins/importoldindex lib/plugins/importoldindex/action.php lib/plugins/usermanager/images/no_user_edit.png lib/plugins/usermanager/images/user_edit.png lib/tpl/default/UWEB.css # removed in rc2008-03-31 inc/aspell.php inc/geshi/css-gen.cfg inc/lang/fr/admin_acl.txt lib/exe/spellcheck.php lib/images/toolbar/spellcheck.png lib/images/toolbar/spellnoerr.png lib/images/toolbar/spellstop.png lib/images/toolbar/spellwait.gif lib/plugins/acl/lang/ar/intro.txt lib/plugins/acl/lang/bg/intro.txt lib/plugins/acl/lang/ca/intro.txt lib/plugins/acl/lang/cs/intro.txt lib/plugins/acl/lang/da/intro.txt lib/plugins/acl/lang/de/intro.txt lib/plugins/acl/lang/el/intro.txt lib/plugins/acl/lang/en/intro.txt lib/plugins/acl/lang/es/intro.txt lib/plugins/acl/lang/et/intro.txt lib/plugins/acl/lang/eu/intro.txt lib/plugins/acl/lang/fi/intro.txt lib/plugins/acl/lang/fr/intro.txt lib/plugins/acl/lang/gl/intro.txt lib/plugins/acl/lang/he/intro.txt lib/plugins/acl/lang/id/intro.txt lib/plugins/acl/lang/it/intro.txt lib/plugins/acl/lang/ja/intro.txt lib/plugins/acl/lang/ko/intro.txt lib/plugins/acl/lang/lt/intro.txt lib/plugins/acl/lang/lv/intro.txt lib/plugins/acl/lang/nl/intro.txt lib/plugins/acl/lang/no/intro.txt lib/plugins/acl/lang/pl/intro.txt lib/plugins/acl/lang/pt/intro.txt lib/plugins/acl/lang/ru/intro.txt lib/plugins/acl/lang/sk/intro.txt lib/plugins/acl/lang/sr/intro.txt lib/plugins/acl/lang/sv/intro.txt lib/plugins/acl/lang/tr/intro.txt lib/plugins/acl/lang/uk/intro.txt lib/plugins/acl/lang/vi/intro.txt lib/plugins/acl/lang/zh/intro.txt lib/plugins/acl/lang/zh-tw/intro.txt lib/scripts/spellcheck.js lib/styles/spellcheck.css # removed in 2007-06-26 inc/parser/wiki.php lib/images/interwiki/bug.gif lib/plugins/base.php lib/plugins/plugin/inc lib/plugins/plugin/inc/tarlib.class.php lib/plugins/plugin/inc/zip.lib.php lib/scripts/domLib.js lib/scripts/domTT.js # removed in 2006-11-06 inc/admin_acl.php inc/lang/lt/stopwords.txt inc/magpie inc/magpie/rss_cache.inc inc/magpie/rss_fetch.inc inc/magpie/rss_parse.inc inc/magpie/rss_utils.inc lib/exe/media.php lib/tpl/default/mediaedit.php lib/tpl/default/media.php lib/tpl/default/mediaref.php # removed in 2006-03-09 data/pages/wiki/playground.txt inc/auth/ldap.php inc/auth/mysql.php inc/auth/pgsql.php inc/auth/plain.php inc/lang/ca/admin_acl.txt inc/lang/cs/admin_acl.txt inc/lang/da/admin_acl.txt inc/lang/de/admin_acl.txt inc/lang/en/admin_acl.txt inc/lang/et/admin_acl.txt inc/lang/eu/admin_acl.txt inc/lang/fr/admin_acl.txt inc/lang/it/admin_acl.txt inc/lang/ja/admin_acl.txt inc/lang/lt/admin_acl.txt inc/lang/lv/admin_acl.txt inc/lang/nl/admin_acl.txt inc/lang/no/admin_acl.txt inc/lang/pl/admin_acl.txt inc/lang/pt/admin_acl.txt inc/lang/vi/admin_acl.txt inc/lang/zh-tw/admin_acl.txt inc/parser/spamcheck.php lib/images/favicon.ico lib/images/thumbup.gif lib/images/toolbar/code.png lib/images/toolbar/empty.png lib/images/toolbar/extlink.png lib/images/toolbar/fonth1.png lib/images/toolbar/fonth2.png lib/images/toolbar/fonth3.png lib/images/toolbar/fonth4.png lib/images/toolbar/fonth5.png lib/images/toolbar/list.png lib/images/toolbar/list_ul.png lib/images/toolbar/rule.png lib/tpl/default/images/interwiki.png People with shell access to their server can copy the text above and paste it into a file on the system, then run the following commands to check for and remove all those files. Only those that exist are removed. I used the filename of ''/tmp/removeold.txt'' to store the list of files copied from here. grep -Ev "^($|#)" /tmp/removeold.txt | xargs -n 1 rm -f If you are paranoid, replace the "rm -f" with "ls -la" to see what files will be deleted. To remove directories as well as files you have to use: grep -Ev "^($|#)" /tmp/removeold.txt | xargs -n 1 rm -fd However, some systems may not support the "rm -d" option for directory removal. In that case, you have to use recursive removal (just be sure to double-check that the file list does not include any paths that will delete too much): grep -Ev "^($|#)" /tmp/removeold.txt | xargs -n 1 rm -fr Some systems may give an 'Illegal Variable Name' error when using the above grep commands. In these cases, substitute single quotes for the double quotes. I have created a python script that will print the files deleted, it can be improved import os file = open("/tmp/removeold.txt") for line in file: #os.remove(line) if not line.isspace() : if not line[0:1] =='#' : line = line.rstrip(os.linesep) try: print(line) os.remove(line) except OSError, err: pass And in ruby: files = File.read("/tmp/removeold.txt").split("\n").grep(/^[^$#]/) files.each do |file| puts "Deleting #{file}." File.delete(file) rescue puts $! end ===== Troubleshooting ===== If you encounter some inconsistencies in [[..:DokuWiki's]] behaviour after upgrading, you should delete the cache files in ''data/cache/''. You should make sure your browser hasn't cached old stylesheets or JavaScript by forcing a reload (Shift-F5 or Ctrl-Shift-R in most browsers). Related pages that might apply: * [[config:updatecheck]] -- if update notifications persist * [[faq:toolbar]] -- Quickbuttons and JavaScript problems * [[faq:searchindex]] -- if search box gives you no result ===== Alternative Ways ===== Here are a few different upgrade descriptions, provided by users. They might be slightly out of date. * Use [[plugin:upgrade|Upgrade Plugin]] * [[.:diffupgrade|Upgrading by creating diffs]] * [[http://apscatalog.com/1/splitbrain.org/dokuwiki/|Upgrading by APS]] - has anybody tested this yet? * Upgrading using the [[install:downloader|DokuWiki Downloader]] * Upload the {{http://github.com/splitbrain/dokuwiki-downloader/raw/master/dokuwiki-downloader.php|Downloader script}} to your wiki's root directory * Remove your doku.php * Make sure all files that might be overwritten are writable by the webserver * Execute the downloader as usual * Skip the installation step and remove install.php (if you continue to the installer you will be warned anyway, that an existing installation was detected) * Done!