更新
在更新之前,你應該先閱讀 changelog 以確認更新後會異動的項目。
如果想知道你目前採用的版本,請參見 DokuWiki 所產生出的頁面的 HTML 原始檔,裡頭會有類似這樣的資訊:
<meta name="generator" content="DokuWiki 2005-02-06" />
以下是最簡單的升級步驟:
- 完整備分你的 wiki,避免遺憾的最佳策略
- 如果你曾經由 DokuWiki tarball 異動 .htaccess 檔 (eg. for rewrite),請務必確認事先備分
cp -a /path/to/wiki/* /path/to/wikibackup
-
tar -xzvf dokuwiki-xxxx-xx-xx.tgz
- 複製/上傳所有檔案,覆蓋現有的檔案
- 如果你的 “cp” 指令無法像在 Linux 下使用 “cp -i” 那樣強制以互動模式作用、甚至連 “cp -rf” 也沒有效果,你可以單就 cp 取消別名,登出並重新登入即可還原。
unalias cp cp -rf dokuwiki-xxxx-xx-xx/* /path/to/wiki/
- 或者你可以使用兩個單引號把 cp 指令包起來:
'cp' -rf dokuwiki-xxxx-xx-xx/* /path/to/wiki/
- 確認所有的檔案都是「新的」;若否,試著這樣做
cp -r dokuwiki-xxxx-xx-xx/* /path/to/wiki/
- 移除不會再用到的舊檔案(參考下列檔案清單)
- 確認 .htaccess 是否完成應做的修改(參考步驟一)
- 更新外掛
若你遵照建議更新你的 config 檔案的 local 版本(例如 conf/local.php
而非 conf/dokuwiki.php
),上述步驟都是安全的。DokuWiki 不會複寫這些 local 檔案。如果你有使用config manager,因為它一定會儲存到 local.php,所以你鐵定安全的。使用者資料以及 ACL 資訊不會被複寫,因為 DokuWiki 僅傳送範例(附有 .dist
延伸套件)
(備註:儘管更新會覆寫 “新手試煉場” playground/playground.txt
,不過只要按下「舊版」按鈕就能輕鬆回復。)
移除檔案
此處是在最近更新版本中會被移除的檔案清單。你應該確認它們在你的安裝版本中是否存在,如果還在,就把它們刪掉。
# 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
經由命令列登入 server 的人,可以複製上述文字、貼上並存成檔案,然後執行下列指令來確認、移除那些檔案。那些檔案如果存在的話才會被移除。我習慣把這邊複製的檔案清單的檔名存成 /tmp/removeold.txt。
for f in `cat /tmp/removeold.txt` do if [ -f $f ] ; then ls -l $f rm $f fi done
或者利用這個指令。你高興的話,也可以把 “rm -rf” 換成 “ls -la” 來看看有哪些檔案會被刪掉。你可以留下備註和空行,不過它們會產生錯誤/警告。
cat /tmp/removeold.txt | xargs -n 1 rm -rf
疑難排解
如果你在升級後遇到與DokuWiki's不一致時,你可以刪掉 data/cache/
裡的快取檔案。你應利用強制重新整理(在多數瀏覽器中是 Shift-F5 或 Ctrl-Shift-R),來確保你的瀏覽器沒有快取舊版樣式表或 JavaScript。
可能有用的相關頁面:
- updatecheck – 如果更新通知還一直留在頁面上
- toolbar – 快速鍵和 JavaScript 的問題
替代方案
這裡有一些不一樣的升級說明,提供參考。它們可能有點過時了。
- Upgrading by APS - 有人測試過嘛?