DokuWiki

提供: ArchWiki
移動先: 案内検索

DokuWiki はユーザーがリッチなドキュメントリポジトリを作成することを可能にする、標準規格に準拠した使いやすいウィキです。DokuWiki は、ドキュメントを作成する個人、共同作業を行うチームや企業のための環境を提供し、シンプルで強力な構文を使用して、ウィキ外でも可読性のある構造化されたデータファイルの作成を可能とします。」

「ページは無制限に改訂して以前のバージョンのページにいつでも復元することができ、データはプレーンテキストファイルに格納されるので、データベースを必要としません。強力なプラグインアーキテクチャは、コアシステムの拡張・強化をすることができます。DokuWiki が提供する機能の完全な説明は、機能のセクションを参照してください。」 [1]

すなわち、DokuWiki は PHP で書かれたウィキであり、何のデータベースも必要としません。

はじめに

DokuWiki は、PHP5.6 以降をサポートする任意の Web サーバー上で動作するはずです。バージョンアップによって要件はときどき変わることがあるので、詳細な要件については、DokuWiki の システム要件のページ を参照してください。

あなたの Web サーバーを守るために、DokuWiki のセキュリティのページ の適切なセクションを読むことを強くお勧めします。最も人気のある Web サーバーがカバーされていますが、一般的な指示も記述してあります。

[community] にあるパッケージは DokuWiki を /usr/share/webapps/dokuwiki に、設定ファイルを /etc/webapps/dokuwiki に、データファイルを /var/lib/dokuwiki/data に展開します。また、関連するファイルの所有者を "http" ユーザーに変更します。これで Arch 向けにパッケージ化された人気のウェブサーバーなら問題なく動作するはずです。

インストール

  1. Web サーバー (例: Apachenginx または lighttpd) を選んでインストールして、PHP を設定します。前述したように DokuWiki はデータベース・サーバーを必要としないので、Web サーバを設定するときにデータベースを設定するステップはスキップできます。
  2. pacman を使用して、[community] の dokuwiki をインストールします。
  3. Web サーバーを設定します (以下のセクションを参照)。
  4. お好みの Web ブラウザで、http://<your-server>/dokuwiki/install.php を開いて、そこからインストールを続行してください。nginx の場合 URL は http://<your-server>/install.php です。

別の方法として、tarball からインストールしたい場合は、http://www.dokuwiki.org/Install を読んでください。大体の手順は上記と同様です。pacman を使用する代わりに、tarball をダウンロード し、サーバーのドキュメントルート (例えば、/srv/http/dokuwiki) に解凍し、適切なユーザー (例: "http") に、chown してください。

設定

lighttpdnginx を使用する場合、PHP のバージョンが 7 よりも古い場合、/etc/php/php.iniopen_basedir に dokuwiki のディレクトリを含めるように変更する必要があります (php では許可された範囲外にシンボリックリンクを使うことを禁止しています):

/etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/dokuwiki/:/var/lib/dokuwiki/

また、以下の行をアンコメントします:

/etc/php/php.ini
extension=gd.so

Dokuwiki は画像のサイズ変更のために、このライブラリを必要とします。

Apache

パッケージは以下の内容のファイル /etc/httpd/conf/extra/dokuwiki.conf を追加します:

Alias /dokuwiki /usr/share/webapps/dokuwiki
<Directory /usr/share/webapps/dokuwiki/>
    Options +FollowSymLinks
    AllowOverride All
    order allow,deny
    allow from all
    php_admin_value open_basedir "/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/dokuwiki/:/var/lib/dokuwiki/"
</Directory>

Apache 2.4 以上 を使っている場合、以下の行を変更する必要があります:

    order allow,deny
    allow from all

以下のようにしてください:

    Require all granted

/etc/httpd/conf/httpd.conf の末尾に以下の行を記述することで Apache の設定から新しく作成されたファイルを Include してください:

Include conf/extra/dokuwiki.conf

/etc/webapps/dokuwiki/var/lib/dokuwiki フォルダの所有者と所有グループが "http" になっていることを確認してください。ディレクトリは自由に場所を変更できますが、その際は /etc/httpd/conf/extra/dokuwiki.conf の設定も更新してください。

その後 Apache を再起動します:

# systemctl restart httpd.service

ブラウザで dokuwiki/install.php スクリプトを開いてインストールを完了してください。

lighttpd

dokuwiki の手順 (情報が更新されている可能性があります) に従って /etc/lighttpd/lighttpd.conf ファイルを編集してください。

mod_accessmod_alias モジュールがロードされていることを確認してください。モジュールがロードされていない場合、/etc/lighttpd/lighttpd.conf に以下を追加することでロードします:

server.modules += ("mod_access")
server.modules += ("mod_alias")

mod_accessurl.access-deny コマンドを使います。

以下の行の下に:

$HTTP["url"] =~ "\.pdf$" {
  server.range-requests = "disable"
}

以下を追加:

# subdir of dokuwiki
# comprised of the subdir of the root dir where dokuwiki is installed
# in this case the root dir is the basedir plus /htdocs/
# Note: be careful with trailing slashes when uniting strings.
# all content on this example server is served from htdocs/ up.
#var.dokudir = var.basedir + "/dokuwiki"
var.dokudir = server.document-root + "/dokuwiki"

# make sure those are always served through fastcgi and never as static files
# deny access completly to these
$HTTP["url"] =~ "/(\.|_)ht" { url.access-deny = ( "" ) }
$HTTP["url"] =~ "^" + var.dokudir + "/(bin|data|inc|conf)/"  { url.access-deny = ( "" ) }

上記のエントリは DokuWiki に基本的なセキュリティを追加します。lighttpd は Apache のように .htaccess ファイルは使いません。上記の設定は必須ではありません。

lighttpd や fastcgi の設定ファイルのどこかにエイリアスを追加します:

alias.url += ("/dokuwiki" => "/usr/share/webapps/dokuwiki/")

lighttpd を再起動:

# systemctl restart lighttpd

nginx

php-fpm をインストールして起動してください。

以下の server ブロックを追加してください。ただしサーバーの名前は適当な名前に置き換えてください。DokuWiki のインストールが完了したら install.php のブロックはコメントアウトしてください。以下のブロックは TLS を使用します [2]:

/etc/nginx/nginx.conf
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name wiki.example.com;
         
        root /usr/share/webapps/dokuwiki;
        index doku.php;

        #Remember to comment the below out when you're installing DokuWiki, and uncomment it when you're done.
        location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } # secure Dokuwiki

        location ~^/\.ht { deny all; } # also secure the Apache .htaccess files
        location @dokuwiki {
            #rewrites "doku.php/" out of the URLs if you set the userewrite setting to .htaccess in dokuwiki config page
            rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
            rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
            rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
            rewrite ^/(.*) /doku.php?id=$1&$args last;
        }

        location / { try_files $uri $uri/ @dokuwiki; }
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

    }

nginx を再起動:

# systemctl restart nginx

SVG ファイルのアップロードと表示を有効化

DokuWiki は SVG ファイルに対応していますがデフォルトでは無効になっています。

有効にしたい場合、以下のファイルを作成してください:

/etc/webapps/dokuwiki/mime.local.conf
svg image/svg+xml

上記の設定はセキュリティ上問題があります。こちら を参照。

インストール後の作業

不要なファイルの削除

サーバーを設定した後は install.php ファイルを削除してください!:

# rm /usr/share/webapps/dokuwiki/install.php

プラグインのインストール

こちら にコミュニティによって作成されたプラグインが多数記載されています。

ウェブインターフェイスを使って管理者メニューからプラグインを追加 (更新) できます。プラグインによっては ssl を通すとダウンロードできないことがあります (例: git)。

バックアップ

データベースが存在しないため DokuWiki のバックアップはとても簡単です。全てのページはプレーンテキストで保存されているため、tarrsync などでバックアップできます。

最新バージョン (2015-08-10a) で使われているディレクトリの簡単な解説:

/dokuwiki/data/  =>  ユーザーが作成した全てのデータ
/dokuwiki/conf/  =>  設定

将来的に上記のディレクトリは変わる可能性があります。DokuWiki Backup FAQ を参照してください。

参考文献

DokuWiki のメインサイト にはあなたが必要としている全ての情報が記載されています。