【スポンサーリンク】

DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)

DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)
  • PHP7.4から8.0にアップグレードしたため、DokuWikiが起動できなくなりました。
  • DokuWikiを 2024 “Kaos” にアップグレードすると、今度は動作しないプラグインが出てきました。
  • いったんプラグインを手動削除するとログインできるようになったので、それから最新版のプラグインを入れ直しました。
  • 振り返ると、サイトのPHPをアップグレードする前に、DokuWikiのプラグインの更新を確認しておけばよかったです。
DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)

ちゃんと更新をしていないと、二度手間になってしまうんだね。

DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)

最近は、情報共有はSlackをメインに使っています。
DokuWikiは個人的なマークダウン文書の記録や印刷用に残っているだけなので、ノーマークでした。

\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. 概要:エラー元になっていたプラグイン

エラー元になっていたプラグインは下記(ただし、更新していなかったから)。

  • Move
  • Changes
  • Markdowku

ログインページでエラーになっていたので、サーバ管理画面から一つずついったんプラグインを手動で削除しました。
とりあえずログインできるようになったら、拡張機能の管理画面で、追加し直しました。

また、サイト設定の変更が必要だったのは

  • Indexmenu

defer_jsが有効になっていたので無効にしました。

概要:エラー元になっていたプラグイン

ちゃんとエラーに対応して、プラグインを更新したら、動くようになりました。

日ごろのメンテナンスが大事ですね。

2. ついにDokuWikiが内部サーバエラーになった(2018 “Greebo”)

PHPのアップグレードを期に、サイトの大幅なメンテナンスが必要になりました。
その1つが DokuWiki。
教室内のメモ用に使っています。

使っているプラグイン(主にMarkdowku)の互換性の関係で、ずっとアップグレードを控えていました。

ところが、とうとう動作しなくなってしまいました。

ついにDokuWikiが内部サーバエラーになった(2018 “Greebo”)

このページは動作していません

〜では現在このリクエストを処理できません。

HTTP ERROR: 500

「内部サーバエラー」になっています。

2018-04-22のバージョンで止まっているので、いい加減をアップグレードします。

2-1. DokuWiki 2024 “Kaos” にアップグレードした

一応、念のためにバックアップしてアップグレードします。

DokuWiki 2024 “Kaos” にアップグレードした

少し待つと、正常にアップグレードは完了しました。

DokuWiki 2024 “Kaos” にアップグレードした

3. ログインページで「FatalException」

ログインページを表示すると、エラー画面が表示されていました。
アップグレード前は内部サーバエラーだったので、とりあえず「リクエストに応答はしている」ようにはなりました。

ログインページで「FatalException」

dokuwiki\Exception\FatalException: Array and string offset access syntax with curly braces is no longer supported

An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the move plugin.

More info has been written to the DokuWiki error log.

PHPの新しいバージョンでカーリーブレースを使ったオフセットアクセスが非推奨になったことで、エラーになっているようです。

3-1. エラー元のプラグインを手動で削除した

エラーメッセージを読むと「move」プラグインが原因になっていることがわかります。
とりあえず、サーバのファイル管理画面にアクセスして、プラグインのフォルダを削除しました。

エラー元のプラグインを手動で削除した

すると、ログインページのエラーが微妙に変わりました。

エラー元のプラグインを手動で削除した

changesプラグインとmarkdowkuプラグインにも問題があるようなので、これも同じように削除しておきます。

3-2. ログイン画面が表示されるようになった

なんとかログイン画面が表示されました。

ログイン画面が表示されるようになった
ログイン画面が表示されるようになった

DokuWikiにはプラグインをオフにして起動する「セーフモード」みたいなのはないのかな?

DokuWikiプラグインの影響を切り分ける

DokuWikiには、プラグインを無効にして起動するセーフモード機能はありません。しかし、プラグインの影響を切り分けるために、いくつかの代替方法があります。

  • プラグインディレクトリの名前を変える
  • 個別にプラグインを無効化する
  • 疑わしいプラグインを特定する
  • 開発環境でテストする
  • バックアップから復元する
  • DokuWikiを再インストールする

4. ログインしてプラグインを管理する

DokuWikiにログインできれば、DokuWikiの管理画面が使えます。
「設定」の「拡張機能管理」から、プラグインを確認します。

ログインしてプラグインを管理する

「更新」がついているものがたくさんあります。
1つずつ動作を確認しながら更新していきました。

4-1. プラグインをインストールし直す(move, changes)

また、先ほど削除したプラグインをインストールし直しました。
「検索とインストール」で探すと、対応しているバージョンがありました。

プラグインをインストールし直す(move, changes)
プラグインをインストールし直す(move, changes)

事前に更新しておけば、もっと早かったね。

4-2. markdowkuプラグイン(2021-12-04更新版)の再インストール

Markdowkuプラグインは、以前にもエラーになっていた記憶があります。

GitHubで公開されているrc2ブランチを探して、手動でインストールしました1

markdowkuプラグイン(2021-12-04更新版)の再インストール

ところが、後で調べてみると、DokuWikiのプラグイン検索でも対応した版が出てきました。

markdowkuプラグイン(2021-12-04更新版)の再インストール

どちらも、Raphael Wimmer氏が 2021-12-04に更新したバージョンが最新でした。

DokuWiki 2024-02-06 “Kaos”まで対応しています。

5. Indexmenuプラグインの問題(defer_js)

Indexmenuプラグインでもエラーが表示されています。

Indexmenuプラグインの問題(defer_js)

Indexmenu Plugin: If you use the js’-option of the indexmenu plugin, you have to disable the ‘defer_js’-setting. This setting is temporary, in the future the indexmenu plugin will be improved.

(Indexmenu プラグイン:indexmenu プラグインの js オプションを使用する場合は、「defer_js」設定を無効にする必要があります。 この設定は一時的なものであり、将来的には、indexmenu プラグインが改善される予定です。)

メッセージに従って、「管理」から「設定管理」を表示して、「機能フラグ」の「defer_js」をオフにしました。

defer_js

ページのHTMLが解析されるまでJavascriptの実行を延期する
(ページの読み込み速度が向上しますが、一部のプラグインが正常に動作しない可能性があります)

公開しているWikiではないので、そこまで処理速度よりは安定性があれば十分です。

これで表示エラーもなくなり、とりあえずは動くようになりました。

Indexmenuプラグインの問題(defer_js)

サーバプログラムは、定期的なメンテナンスが重要だね。

こちらもどうぞ。
Dokuwikiをアップグレードしたら動かなくなった「Fatal error: Class ‘Doku_Handler_Quote’ not found 」(markdowkuプラグイン)
Dokuwikiをアップグレードしたら動かなくなった「Fatal error: Class 'Doku_Handler_Quote' not found 」(markdowkuプラグイン)
DokuWikiを「2018-04-22c Greebo」 から「2020-07-29 Hogfather」にアップグレードしました。 すると、エラーが表示されてシステムにログインできなくなってしまいました。 今回は、ニッチな話ですが、dokuwikiのアップグレードについて書いてみます。 表示されたエラー:Fatal error: Class 'Doku_Handler_Quote' not found DokuWikiのアップグレードの通知があったので適用しました。その後...

DokuWikiの印刷用CSSを変更する(userprint.css)
DokuWikiの印刷用CSSを変更する(userprint.css)
DokuWikiで印刷用CSSを変更しようとした際、confフォルダにuserprint.cssを追加して印刷時専用のスタイルを記述しました。 しかし、変更が反映されない問題に直面。 解決策として、conf/tpl/style.iniファイルに空白文字を追加して保存することで、うまくいきました。 DokuWikiはスタイルシートをキャッシュで管理しているため、プラグインやテーマの変更がなければ再読み込みされないことが原因でした。 userprint.cssを作成する 印刷時の...

「サイトで重大なエラーが発生しました」(ゼロ除算の2つの結果)
「サイトで重大なエラーが発生しました」(ゼロ除算の2つの結果)
PHPのバージョンを7.4から8.0に上げたら、カスタムプラグインがエラーになるようになりました。 エラーをみると「ゼロ除算(DivisionByZeroError)」。 これまでは除算後に NaN のチェックをしていたのですが、除算前に 0 のチェックが必要になったみたいです。 どうも、除算演算子で fdiv でなく intdiv が使われるようになっていたのが原因ようです。 カスタムプラグインのエラー PHPのバージョンを7.4から8.0に上げたら、以前に自分で作ったWo...

(補足)

  1. Dokuwiki 2020-07-29 “Hogfather” で「markdowku Plugin」を使う | The modern stone age.
QRコードを読み込むと、関連記事を確認できます。

DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)
【スポンサーリンク】
タイトルとURLをコピーしました