LoginSignup
0
2

More than 1 year has passed since last update.

Dokuwikiにプラグインを入れたら,真っ白なページが表示される

Last updated at Posted at 2021-06-11

研究室のPCをDokuwikiとして稼働させています.
一応忘れないためにインストール手順も書いておきます.
参考程度にしてください.

インストール

まずは,sources.listを適切に設定し,アップデート・アップグレードを行います.

$ apt-get update
$ apt-get upgrade -y

以下のリンクにDokuwikiの立て方が掲載されています.

上記リンク内の # Let’s EncryptSSLでDokuWikiを保護する # より下はやってません.
なぜかというと,ローカルネットワーク内部に設置するためです.

後は,install.phpに行き,適切に設定すると,ページができる.

手順通り行うと,Dokuwikiは立ち上がるはずです.

データ保存先を変更したら躓いた

PCのストレージが大きいPCもありますが,私の場合は外付けHDDに保存する計画です.
Dokuwikiのページ上で右上の管理>サイト設定>データ保存用のディレクトリ という部分を変更します.
一応絶対パスで書いておくといいと思います.
すると
先程まで開けていたDokuwikiが開けない.

開けなくなった理由は以下のような感じだと理解している.
ファイル保存場所として指定したディレクトリには,atticやcache,index.その他諸々がディレクトリとして存在していなければ,Wikiページが開けない仕組みになっている.

# find / -name data
で検索し,自分は以下のディレクトリにあった.
/var/www/html/dokuwiki/data

このdataディレクトリをサイト上で指定したディレクトリにコピーすると,開ける.
これで,主観的にみて容量が大きいHDDに保存することができるようになりました.

いよいよ本題のプラグインインストール

LaTeXのプラグインをインストールすると真っ白いページしか表示されない.
Dokuwiki日本語版のFAQページは以下.
ここでエラーログの場所を知る.

$ vi /var/log/apache2/error.log

[Wed Apr 14 15:39:58.237882 2021] [php7:error] [pid 17137] [client 172.16.0.4:34588] 
PHP Fatal error:  Declaration of syntax_plugin_pageindex::render($mode, &$renderer, $data) 
must be compatible with 
dokuwiki\\Extension\\SyntaxPlugin::render($format, Doku_Renderer $renderer, $data) 
in /var/www/html/dokuwiki/lib/plugins/pageindex/syntax.php on line 99,

上のerror.logからエラーを吐いているプログラムを突き止める.
エラーログの一番下が1番新しいエラーです.

# vi /var/www/html/dokuwiki/lib/plugins/latex/latexinc.php
自分の場合は17行目

不正解
class syntax_plugin_latex_common extends DokuWiki_Syntax_Plugin {
正解
abstract class syntax_plugin_latex_common extends DokuWiki_Syntax_Plugin {

補足

$ vi /var/log/apache2/error.log

[Wed Apr 14 15:39:58.237882 2021] [php7:error] [pid 17137] [client 172.16.0.4:34588] 
PHP Fatal error:  Declaration of syntax_plugin_pageindex::render($mode, &$renderer, $data) 
must be compatible with 
dokuwiki\\Extension\\SyntaxPlugin::render($format, Doku_Renderer $renderer, $data) 
in /var/www/html/dokuwiki/lib/plugins/pageindex/syntax.php on line 99,

こんな感じのエラーを吐いていると思う.
私はPHPに触れたことはない.
今回はPHPのエラーだが,内容は大雑把にこんな感じ.

($mode, &$renderer, $data)  #自分の編集しているPHPプログラム
must be
($format, Doku_Renderer $renderer, $data)
というエラー内容です.
上の段の内容がプログラムに書いてあるけど
正しくは下の段のプログラムだよね?直してね?

という内容です.
今回はPHPのエラーでしたが,CやPythonでも同じようなエラーは吐かれるので,応用して解決してください.

最後に

Dokuwikiが真っ白のページしか表示されない場合の解決の流れは以下のとおりとなる.

1.error.logの場所を特定
2.error.logの内容を読み,phpの引数や関数のタイプ,名前を確認
3.ブラウザ上でDokuwikiのページをリロード
4.それでも表示されなければ,1に戻りlogを参照し修正する.

Dokuwikiのバージョンとかもあるそうですが,私はそこまで詳しくないです.
詳しい方は教えてください.

おまけ

.pyファイルや.shファイルがアップロードできない場合の対処法

Dokuwikiではアップロードできる拡張子を指定するファイルが存在する.

vi  /var/www/html/dokuwiki/conf/mime.conf

mimeってのが何なのかイマイチ理解できてませんが,拡張子をグローバル単位のようなもので記載したものだと理解しています.
間違ってたら教えてください.

mimeのファイルタイプわからないよ.ぴえん.ぴえん.
って方は以下のリンクで調べることができます.
調べるのだるいから,ノリで書けば大丈夫だろ!って考えてるそこのあなた.
ちゃんと調べたほうがいいですよ.これはDokuwiki公式サイトに記載の有るサイトです.
以下の記載は正解の記載.

py     text/x-python
sh     application/x-shellscript

実はpythonでも調べることができます(後で間違ってることが発覚)

#!/usr/bin/python3
import mimetypes
print(mimetypes.guess_type('検索ファイルを入力'))
# ('text/x-sh', None)     #.shファイル
# ('text/x-python', None) #.pyファイル

結果が違うのがわかると思います.
リンク先で調べたほうが正しかったです.(私の環境では.)

駄文で申し訳ないですが,これはメモ的な立ち位置の記事です.
参考にしてもらって構いませんが,間違ってる可能性もあります.

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2