WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

Wiki でソースの色分け表示!DokuWiki のインストール

皆さん、Web サイトにプログラムソースを載せるときってどうしているでしょうか。大抵は普通に pre タグで囲っただけで載せてしまっていると思います。この blog でもそうしていました。でも、あれってちょっと読みにくいですよね。せっかくのハイパーテキストなんだから、ソースも綺麗に色分けして表示したいものです。そんなことが手軽にできるツールは無いかなー、と常々思っていました。

今回ご紹介する DokuWiki は、そんな希望をみごとに叶えてくれる Wiki クローンです。ドキュメンテーションでの利用を主眼に設計されており、現在利用されているほとんどのプログラミング言語のソースを綺麗に色分け表示してくれます。もちろん Wiki としての機能もよくできていて、シンプルながらツボをおさえた使いやすい設計になっています。

プログラミング系の Web サイトを構築している方にとくにお勧めしたいツールですね。この blog でも、ソースを掲載するような記事はこれで書いてコピペしようかなと思ってます(笑)。

インストールする

それでは、さっそく DokuWiki をインストールしてみましょう。今回は事情により tarball からのインストールを行うことにしますが、 Gentoo Linux では Portage 用のパッケージも用意されていまので、そちらを使うことも可能です。 Portage 経由で Web アプリケーションをインストールする一般的な手順に関しては、こちらの記事を参照してください。

以降ではインストール先のパスを "/var/www/localhost/htdocs/dokuwiki"、URL を "http://localhost/dokuwiki" と仮定します。パスや URL は適宜読み替えてください。

準備

DokuWiki の動作には Apache などの Web サーバーと PHP 4.3 以上が必要です。また、ユーザー管理機能を利用するには sendmail コマンドが動作する必要があります。GentooLinux で Apache/PHP をインストールする方法はこちら、 SSMTP (他の SMTP サーバーを利用してメール送信する簡易 sendmail コマンド)をセットアップする方法はこちらの記事を参照してください。

必要なソフトウェアをインストールしたら、 Apache 側のバーチャルホストの設定を済ませておきましょう。 DokuWiki にはディレクトリのアクセス制御などを行うための .htaccess ファイルが付属していますので、それが正しく働くように AllowOverride を記述します。 Gentoo Linux で前述の条件なら、 "/etc/apache2/vhosts.d/default_vhost.include" に以下の設定を追加すれば OK です。

<Directory "/var/www/localhost/htdocs/dokuwiki">
    AllowOverride All
</Directory>

設定したら、 Apache の再起動を忘れないでください。

ファイルをインストールする

まずはダウンロードページから最新の tarball をダウンロードしましょう。ここでは "~/dokuwiki-2007-06-26b.tgz" としてダウンロードしたと仮定します。バージョンが違う場合などは適宜読み替えてください。

ダウンロードが終わったら、以下のようにしてインストール先にファイルを展開します。

cd /var/www/localhost/htdocs/
tar zxvf ~/dokuwiki-2007-06-26b.tgz
mv dokuwiki-2007-06-26b dokuwiki

パーミッションの変更

Apache がファイルを書き込めるように、 "data" ディレクトリのパーミッションを変更します。 root 権限があれば所有者を Apache のユーザーに変更するのが妥当ですが、そうでなければ other からの書き込みを許可します。

chown -R apache:apache dokuwiki/data

もしくは

chmod -R a+w dokuwiki/data

を実行すれば OK です。

設定ファイルの作成

最後に、以下の内容で "dokuwiki/conf/local.php" を作成してください。日本語を使うなら、文字コードは UTF-8 にしてください。

<?php
$conf['allowdebug'] = 0;
$conf['title'] = "サイトのタイトル";
$conf['lang'] = 'ja';

これ以外にもたくさんの設定項目があります。代表的な設定項目は記事の最後でご紹介していますので、ご参照ください。

これでインストールは完了です。お手軽ですね。

表示してみる

それでは早速サイトにアクセスしてみましょう。Web ブラウザで "http://localhost/dokuwiki" にアクセスすると、以下のようなページが表示されるはずです。

最初からメッセージが日本語化されているのはありがたいですね。Sitebar といい、最近は海外のソフトも日本語対応が凄いな(゜゜;

local.php の詳細

先ほどは "dokuwiki/conf/local.php" の最低限の設定をご紹介しましたが、実際にはとてもたくさんの設定項目があります。すべてのリストはこちらのページにありますが、ここでは変更することの多い項目を抜粋してご紹介しようと思います。具体的な記述方法は、 "dokuwiki/conf/dokuwiki.php" が参考になると思います。

lang
メッセージの言語を指定します。 "dokuwiki/inc/lang" にあるディレクトリのいずれかを指定できます。
savedir
DokuWiki がデータを保存するディレクトリを指定します。デフォルトは "./data" です。
allowdebug
1 を設定するとデバッグモードが有効になります。デフォルトで 1 になっているので注意してください。インストールが完了したら 0 を設定するべきです。
start
"http://localhost/dokuwiki" がアクセスされた際に表示するページ名を指定します。デフォルトは "start" です。
title
サイトのタイトルを指定します。
template
ページの表示に使用するテンプレートを指定します。テンプレートは "dokuwiki/lib/tpl" に保存されています。デフォルトでは "default" テンプレートしかありませんが、こちらのページでいくつか配布されています。
recent
「最近の変更」ページに表示するページ数を指定します。
breadcrumbs
ページ上部の「トレース:」行に表示する最大ページ数を指定します。0 を指定すると「トレース:」行を表示しません。
youarehere
1 を指定すると namespace の階層を表示する機能が有効になります。
typography
0 を指定すると既定の文字列をアイコンなどに置換する機能が無効になります。
htmlok
"1" を指定するとページ中に生の HTML を記述できるようになります。セキュリティーリスクが大きいので、ユーザー管理を行った上で指定してください。
phpok
1 を指定するとページ中に PHP コードを記述できるようになります。Apache ユーザーの全ての権限が利用可能になりますので、公開サーバーでこの設定を使用するのはお勧めできません。
dformat
日付表示のフォーマットを指定します。書式指定の方法は PHP の date 関数と同じです。
maxtoclevel
DokuWiki には目次を自動生成する機能がありますが、その際に目次を生成する最大の見出しレベルを指定します。
maxseclevel
DokuWiki ではページの一部分のみを編集できますが、その際に編集単位とする最大の見出しレベルを指定します。
camelcase
1 を指定すると、通常の Wiki のようにラクダ書式(単語の頭文字のみを大文字にし、スペースなしで繋げたもの)を自動的にリンクに変換します。デフォルトでは、Wiki 文法で明示的に指定しないとリンクになりません。
useheading
1 を指定すると、「ページの最初に見出しをリンクテキストやページタイトルとして使用する」というユニークな機能が有効になります。これを使用すると、例えばページ名(Wiki ワード)はシンプルに「DokuWikiUsage」、ページタイトルはわかり易く「DokuWiki の使い方」とするような指定が可能になります。DokuWiki ではページ名に日本語を使うことができないので、その代わりにもなります。
refshow
メディアファイルに対して参照ページをいくつまで表示するかを指定します。5 が良いと書いてあるのに、デフォルトは 0 になっています。バグ?
usewordblock
0 を指定すると、単語検出によるスパムブロック機能を無効にします。デフォルトでは "conf/wordblock.conf" に記述された正規表現に基づいてスパムをブロックします。
indexdelay
検索エンジンへのインデクシングを遅延させる秒数を指定します。
relnofollow
外部サイトへのリンクに rel="nofollow" 属性を付加します。この属性を付けたリンク先には Google のページランクが伝播しないので、スパムを行う意味がなくなる、ということらしいです。(→参考:INTERNET Watch の記事
mailguard
メールアドレスがボットに収集されるのを防ぐためにエンコードする方法を指定します。 "visible" は "@.-" の文字をそれぞれ [at], [dot], [dash] に置き換えます。 "hex" は実体参照で置き換えます。 "none" はなにもせずにそのまま表示します。
notify
ページが追加・変更された場合に通知するメールアドレスを指定します。コンマ区切りで複数のアドレスが記述できます。
mailform
DokuWiki がメールを送る際に送信元として記述するアドレスを指定します。
im_convert
画像処理に ImageMagick を使用する場合は、ここに ImageMagick のフルパスを指定します。
hidepages
ページ名がここで指定した正規表現とマッチするページは、RSS や「最近の変更」ページ、検索結果などに表示されなくなります。サイドバーなどに使用するページをそれらに含めないために利用できます。
sitemap
1 を指定すると、Google Sitemap で使用する XML 形式のサイトマップを自動生成します。あらかじめ "dokuwiki/sitemap.xml.gz" というファイルを Apache ユーザーが書き込める状態で作成しておく必要があります。

今回はインストール方法のご紹介ということで、このあたりで終わりにしておきます。これだけでは DokuWiki の魅力がまったくわからないと思いますが、そのあたりは次回以降で取り上げていこうと思いますので、ご了承&ご期待ください!(^^)

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles