軽快で高機能なWiki。情報共有の場を素早く構築可能です。
サイドバーにサブメニューを表示しています→
WikiとはWebブラウザから簡単にWebページの発行・編集などが行なえる CMS(Contents Management System)のひとつです。「Wiki」は専門用語の省略形ではなく、ハワイ語の「Wikiwiki」が語源で、「速い」「急ぐ」「形式張らない」といった意味があります 。
Wikiサイトには冊子体のような「完成形」はありません。完全な状態に整ってから公開する・・という必要はなく、「書きかけ」があっても構いません。共同で編集するメモ帳・・といった感覚で気軽にはじめてみましょう。
Seesaa Wikiや@Wikiのようなサービスではなく、自分でWikiシステムをカスタマイズして活用したい・・という場合には、まずWikiページが表示される環境を整える必要があります。HTMLファイル(~.html)の集合からなるWebサイトとは異なり、Wikiサイトは記事(テキストデータ)とスキン(HTMLのひな型)と各種のプラグインのセットからなるソフトウエアで、その動作確認には、PHPが動くWebサーバーが必要です。
方法は3つあります
Wikiには、インターネット百科事典Wikipediaで利用されているMediaWikiをはじめ、複数のシステムがありますが、ここではPHPのみで動作し(つまり手軽に利用でき)、動作実績においても非常に安定しているPukiWikiを例に、その活用方法を紹介します。ライセンスGPLのオープンソースで、無料で入手できます。
公式サイトからダウンロード・解凍 > iniファイルの編集 >サーバーにアップロード > パーミッションの変更・・という手順でとりあえず動きます。以下に手順を記載します。
PukiWikiをサーバーにアップする前に、まず、手元で初期設定を行う必要があります(この作業は必須です)。
pukiwiki.ini.phpをエディタで開いて、サイト管理情報を書き換えましょう。
以下の行番号はあくまで参考です。バージョンが異なるとズレます。
以下、特に重要なところは太字にしています。その他はあとまわしでもOK。
//define('PKWK_QUERY_STRING_MAX', 640); // Bytes, 0 = OFF define('PKWK_QUERY_STRING_MAX', 1280); // Bytes, 0 = OFF通常、この変更は必要ないのですが、長い名称のページの編集においてログインしようとした場合に、制限がかかります。QUERY STRING TOO LONG というエラーメッセージが出てログインできなくなるケースがある場合は、上記のように数値を大きく修正してください。
$page_title = ' サイト名 '; ← 自由につけて構いません。日本語もOK
$modifier = ' 管理者名 ';
$modifierlink = ' http://www.example.com ';
$defaultpage = ' トップページ名(任意) '; // Top / Default page
$nowikiname = 1;注)先頭大文字で単語を連結した WorldWide などの文字列は、デフォルトでは WikiName と認識されるため、自動的にリンクが追加されます。これを通常の文字列として記載したい場合は、$nowikiname = 1 にして下さい。
$autolink = 12;(数字はバイト数です)文章中にサイト内に「ページ名」として存在する文字列があった場合に、自動でリンクがつきます。数字を小さくしてしまうと、例えば「京都」というページが存在した場合に「東京都」の文字列の一部の「京都」でリンクが張られたりするので、「4文字以上の連続一致でリンク」ぐらいが適当かと思います。
$adminpass = ' 半角英数でパスワード ';md5などで暗号化する方がよいのですが、ここでは省略します。
$auth_users = array( ' UserName01 ' => ' password01 ', ← 個人用のWikiなら1セットのみ ' UserName02 ' => ' password02 ', : );個人で使う場合は、以下のようにID,PWを1セット書けばOK
$auth_users = array( 'Koichi_Inoue' => 'abcdefg012', );ここに、すでに書かれている foo, hoge・・などは書き方の例です。消去して構いません。ただし、1件でも [ , ] を忘れないように気をつけて下さい。
$read_auth = 0; ←「制限なし」という意味です。
上記で「制限なし」・・とした場合は、ここは放置して構いません。
$edit_auth = 1; ←「制限する」という意味です。
$edit_auth_pages = array( // Regex(ページ) => Groupname or Username(権限を有するユーザー) ' Page01 ' => ' UserName01 ', ' Page02 ' => ' UserName02 ', : ' MeetingRoom ' => ' UserName01, UserName02, ・・・ ', );ページ名と編集ユーザーとの紐付けを設定する部分です。ちなみに「すべてのページ」の編集を「特定のユーザー」に与える場合は以下のように書きます。
$edit_auth_pages = array( // Regex => Groupname or Username '#.+#' => ' (利用者名) ', );'#.+#' の部分は 正規表現と呼ばれる記法で、「1文字以上のすべて文字列(つまりすべてのページ名)」を意味します。初学者の方は、このパターンを丸ごとコピーしてお試しください。詳細な設定に行うには 正規表現の知識が必要になります。
$do_backup = 1;(デフォルトのままでOK)PukiWiki は編集の際に、編集前の常態を自動でバックアップしています。この設定「 0」 にすると自動バックアップ機能が OFF になります。
$del_backup = 0;(デフォルトのままを推奨)誰かが間違って削除してしまうこともあります。その際にバックアップが復元できるので、バックアップの自動削除機能は「0:OFF」のままが推奨です。
$cycle = 3;(3時間以上経過後の更新時にはバックアップをとる) $maxage = 120;(過去120世代分のバッックアップを残す)$cycle を 0 にすると、更新の都度バックアップとなります。頻繁な更新を細かく残したい場合は、この数字(単位は hours )を小さくします。
$notify = 0;(デフォルトは非通知)更新状況を監視する必要がある場合は「1」、送信先と送信元として設定するメールアドレスを、460行目からの以下に記載します。
$notify_to = 'to@example.com'; // To: $notify_from = 'from@example.com'; // From:利用中のサーバーにメール送信機能が必要です。
// Regex of ignore pages $non_list = '^\:';最終更新や一覧に表示させたくないページを設定する機能です。
$non_list = '^\:|^test';
// Search ignored pages $search_non_list = 1;(検索対象となって表示される)0にすると :config 等のシステムファイルは検索時にも無視されます。
$auto_template_func = 1; (デフォルトのままでOK) $auto_template_rules = array( '((.+)\/([^\/]+))' => '\2/template' );自動雛形読み込みをOFFにする場合は「0」を設定。
$fixed_heading_anchor = 0; ( 必要ない場合は 0 )
$line_break = 1; (編集画面内での改行を表示に反映 )
参考:メタ構文変数
サンプルプログラムなどで、変数の書き方の事例として使う「無意味文字列」をメタ構文変数といいます。プログラマの間ではサンプル用の意味が無い変数名であると認知されているもので、foo, bar, fuga, hoge・・などがあります。
pukiwikiフォルダをサーバーにアップします(フォルダ名は自由です)。
http://(ルートへのパス)/pukiwiki/がアドレスになります。
http://localhost/pukiwiki/ がアドレスになります。
実際のアドレスは http://(ルートへのパス)/pukiwiki/ だが、名刺やパンフレットへのURL掲載や、QRコードの生成は http://(ルートへのパス)/ に簡略化したい・・・という要望は多くあります。
その場合、以下のようなファイルを作ってルート直下に index.html として置けば、ルートから pukiwiki ディレクトリへ自動誘導することが可能です。
<!DOCTYPE html> <html lang="jp"> <head> <meta charset="utf-8"> <meta http-equiv="refresh" content="0;URL=http://example.com/pukiwiki/"> <title>SamleSite</title> </head> <body> </body> </html>
付記:5行目部分の解説
content="0;URL=http://example.com/pukiwiki/"
アップロードしたフォルダやファイルはそのままでは、サーバーのプログラムから操作することができません。つまりシステム全体が正常に動きません。サーバーに対して、フォルダを開いたり、中身を書き換えたりすることを許可してあげないと、使えるようにならない・・ということです。
とりあえず乱暴ですが、すべてのファイル・フォルダに対して、パーミッションを 777 に変更、つまり「読み・書き・実行、誰でも何でもあり」に設定すると、動作して表示される可能性があります。
ただこれにはセキュリティー上の問題があります。レンタルサーバーでは、phpフィルに関するパーミッションの設定が決められている場合があるので、実際の公開サイトでは指定の仕様にしたがって詳細に設定を行う必要があります。
参考