DokuWiki
「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 向けにパッケージ化された人気のウェブサーバーなら問題なく動作するはずです。
インストール
- Web サーバー (例: Apache、nginx または lighttpd) を選んでインストールして、PHP を設定します。前述したように DokuWiki はデータベース・サーバーを必要としないので、Web サーバを設定するときにデータベースを設定するステップはスキップできます。
- pacman を使用して、[community] の dokuwiki をインストールします。
- Web サーバーを設定します (以下のセクションを参照)。
- お好みの 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 してください。
設定
lighttpd や nginx を使用する場合、PHP のバージョンが 7 よりも古い場合、/etc/php/php.ini
の open_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_access
と mod_alias
モジュールがロードされていることを確認してください。モジュールがロードされていない場合、/etc/lighttpd/lighttpd.conf
に以下を追加することでロードします:
server.modules += ("mod_access") server.modules += ("mod_alias")
mod_access
の url.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
以下の 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 のバックアップはとても簡単です。全てのページはプレーンテキストで保存されているため、tar や rsync などでバックアップできます。
最新バージョン (2015-08-10a) で使われているディレクトリの簡単な解説:
/usr/share/webapps/dokuwiki/data/ => ユーザーが作成した全てのデータ /usr/share/webapps/dokuwiki/conf/ => 設定
将来的に上記のディレクトリは変わる可能性があります。DokuWiki Backup FAQ を参照してください。
参考文献
DokuWiki のメインサイト にはあなたが必要としている全ての情報が記載されています。