研究室の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ファイル
結果が違うのがわかると思います.
リンク先で調べたほうが正しかったです.(私の環境では.)
駄文で申し訳ないですが,これはメモ的な立ち位置の記事です.
参考にしてもらって構いませんが,間違ってる可能性もあります.