DokuWikiの導入

この記事は約6分で読めます。

インフルエンザで強制的に出勤禁止になって、時間があるので、VPSのメンテやらをしている。

Wikiをもう一度再構築したいと思っていて、どうせならと、新しくDokuWikiを試してみたい。時間があるのでDokuWikiをVPSに導入してみた。

今まで使っていたPukiWiki系のコンテンツもDokuWikiに移行できるらしい。まずはプライベートに使う設定でお試ししよう。

どんな風に作業を進めるかだが、試行錯誤になりそうなので、この記事を作業記録にする。

作業の流れはこんな感じだと思う。逐次、追記修正しつつ進める。

  • まずは、DokuWikiの概要を勉強
  • 動作環境(サーバの要件)を確認
  • 最新版のファイルを導入
  • ウェブサーバの設定
  • 最低限の基本設定
  • アクセスして動作確認 ← いまここ
  • SSL化
  • PukiWikiからのデータ移行
  • 使いながら各機能の動作確認
  • 細かな設定の見直し
  • 表示画面の調整
  • 一部コンテンツの公開
  • 不具合の修正
  • コンテンツの公開

いまは、アクセスして動作確認中。次はSSL化。

まずは、DokuWikiの概要を勉強

これはもう、DokuWikiのサイトを参照。と同時に、いくつかのサイトが勉強になった。

ja:dokuwiki [DokuWiki]
情報共有にmarkdown系WikiよりDokuWikiをすすめる理由 - Qiita
情報共有に何を使っていますか?昔ながらのPukiWikiですか?有料のConfuluenceですか?GitHubやGitLabを利用していますか?Wikiではなく、メールだったり、Excelな…
DokuWikiで情報発信 [DokuWikiで情報発信]

動作環境(サーバの要件)を確認

本家サイトのこちらに書かれているとおり。

ja:requirements [DokuWiki]
  • PHP対応のウェブサーバ → ○ 自分のVPSは、Nginx 1.14.2
  • PHP 5.3.3以上 → ○ いまどきなので、自分のVPSでは、PHP 7.3
  • 画像のリサイズのためには、PHP GD 関数Image Magick が必要 → ○ どちらも導入済み
  • PHP PCRE 関数は、UTF-8 対応としてコンパイルする必要 → △ これは分からなかったが、結果的に問題なさそうなのでクリアしていたと思われる

最新版のファイルを導入

ダウンロードページからダウンロードすればよい。

Download DokuWiki

自分は、GithubからVPSに直接ダウンロードし、一度、/tmpにダウンロードして、展開した。

wget https://github.com/splitbrain/dokuwiki/archive/master.zip

展開したファイル一式をウェブサーバのディレクトリにコピーした。

ウェブサーバの設定

ウェブサーバはNginxなので、この記事が参考になった。

高負荷に耐えられるNginx+php-fpmでDokuwikiを使う準備 [DokuWikiで情報発信]

/etc/nginx/conf.d/dokuwiki.confとして、「ドメインごとに設定例」の内容を使わせてもらった。

server {
    listen   80;
    server_name  test1.example.com;

    access_log  /var/log/nginx/test1.access.log;
    error_log   /var/log/nginx/test1.error.log;

    root    /usr/share/nginx/html/test1/dokuwiki;
    index   index.html index.php doku.php;

    #Basic認証
    #auth_basic "Restricted";
    #auth_basic_user_file /etc/nginx/htpasswd;

    #maximum file upload size is 4MB - change accordingly if needed
    client_max_body_size 4M;
    client_body_buffer_size 128k;

    rewrite ^(/)_media/(.*) $1lib/exe/fetch.php?media=$2 last;
    rewrite ^(/)_detail/(.*) $1lib/exe/detail.php?media=$2 last;
    rewrite ^(/)_export/([^/]+)/(.*) $1doku.php?do=export_$2&id=$3 last;

    location / {
        if (!-f $request_filename) {
            rewrite ^(/)(.*)?(.*)  $1doku.php?id=$2&$3 last;
            rewrite ^(/)$ $1doku.php last;
        }
    }

    location ~ \.php$ {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }

    location ~ ^/(data|conf|bin|inc)/ {
        deny all;
    }

    location ~ ^/lib/^((?!php).)*$ {
        root html/dokuwiki/lib;
        expires 30d;
    }

    gzip on;
    gzip_types image/png image/gif image/jpeg text/javascript text/css;
    gzip_min_length 1000;
    gzip_proxied any;
    gunzip on;

}

confファイルを追加したので、Nginxを再起動した。

また、DokuWikiのためにサブドメインを割り当てたので、DNSも設定した。

最低限の基本設定

基本的には、セキュリティに気をつけながら、最低限の機能が動けばよいのだが、とにかくよくわからなかったので、こちらの設定を見ながら作業した。

DokuWikiをインストールしたらすぐに行う設定 [DokuWikiで情報発信]
DokuWikiで公開前までにしておく設定 [DokuWikiで情報発信]

あと、indexmenuプラグインをとりあえず導入した。

DokuWikiに最初に入れるお勧めプラグイン [DokuWikiで情報発信]

 

SSL化以降の作業は、逐次別の記事で報告する予定。

コメント

  1. […] VPSにDokuWikiを導入した記事の続き。今回は、DokuWikiをSSL化した。 […]

  2. […] VPSにDokuWikiを導入、SSL化の続き。今回は、DokuWikiにPukiWikiからデータを移行した。 […]

  3. […] まずは、DokuWikiの概要を勉強 […]