PukiWiki Static!

Top > Hack > PukiWiki Static!

PukiWiki Plus! 静的 HTML 変換版

Table of Contents

概要

PukiWiki の出力する HTML をファイルに保持しておき、ユーザにはその HTML ファイルにアクセスしてもらうことで、PukiWiki の軽量化を図る Yet Another PukiWiki パッケージです。 既存のシステムを PukiWiki Static! 化したい場合は statichtml.inc.php#k5636a03 を参照してください。

注1:動的システムではなくなるので、動的システムによる恩恵はすべて得られなくなります。例えばカウンタープラグインなどは別途外部 cgi を利用するなど工夫をする必要がありますし、ls 系プラグインの動的出力も使用できなくなります。*1
注2:mod_rewrite の使えるサーバ環境が必須になります。

背景

拙作 statichtml.inc.php プラグインと revulo 氏作の RewriteMapプラグイン、パッチを PukiWiki Plus! に適用してパッケージングしたものです。

First Edition. 12/22/2007 Last Modified. 12/27/2007
Tag: PukiWiki Hack

ダウンロード

開発版

リリース版

ダウンロードマニュアル
rev1615-u1Manual/Hack/PukiWiki Static!/rev1615-u1

使用法

インストール

ここでは

http://www.example.com/pukiwiki-static/

というアドレスで運用するものとし、サーバ上でのローカルパスは

$HOME/public_html/pukiwiki-static/

であるものとします。これらを変更する場合はディレクトリ名の変更も行う必要があります。

$HOME/public_html/ が DOCUMENT_ROOT であるものとします。

アーカイブファイルをダウンロードし、サーバ上で上記のパスとなるように展開します。

$ cd $HOME/public_html/
$ unzip pukiwiki-static.zip
pukiwiki-static/
pukiwiki-static/index.php
pukiwiki-static/pukiwki/
pukiwiki-static/pukiwiki/ぷきうぃきファイル群

pukiwiki-static ディレクトリに書き込み許可を出します。pukiwiki-static ディレクトリに html ファイルが作成されるためです。

$ chmod 777 pukiwiki-static

後は従来通りです。 PukiWiki Plus! のインストールと同様に PukiWiki Plus! ファイル群の設定を行います。 ディレクトリ、ファイルのパーミッション設定、管理者パスワードの設定等を行っておきます。 plus:Documents/Install のページを参照してください。

設置サイトにアクセスし、正常に動作することを確認してください。 特にページ間リンクが正常に動作していることを確認します。

正しくダンプが行われることを確認します。

index.php?cmd=statichtml

にアクセスしダンプしてください。 また、ページを編集、保存すると HTML ファイルが更新されていることを確認してください。

ディレクトリ名の変更

ディレクトリ名を pukiwiki-static から変更する場合以下の修正を行います。 pukiwiki-static/.htaccess ファイルを開き、

## RewriteMap
RewriteEngine On
RewriteBase /pukiwiki-static
RewriteCond %{REQUEST_URI} =/pukiwiki-static/
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule .* index.html [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ index.php?cmd=rewritemap&page=$1 [QSA,L]

RewriteBase とその次の RewriteCond の値を変更します。 RewriteBase に設置ディレクトリ名をドキュメントルートからの絶対パスで指定します。 RewriteCond に設置ディレクトリ名をドキュメントルートから絶対 URI で指定します。最後の / に気をつけてください。

pukiwiki-static/index.php ファイルを開き

define('ROOT_URI', '/pukiwiki-static/pukiwiki/');

の値を変更します。skin, image ディレクトリへの接頭辞となる URI を絶対 URI で指定します(http 始まりでも可)。

その他詳細設定

独自設定する際の詳細情報は、以下を参照してください。

FAQ

HTML ファイルが作成されない

xrea.com のいくつかのサーバーなど SAFE_MODE が有効になっているレンタルサーバーではファイル(ディレクトリ)が正常に作成できない場合があります。 mkdir.cgi を作成し、梱包しましたのでそれを使用することで回避できます*2

1. mkdir.cgi を編集、パスワードを設定。mkdir.cgi に実行権限を付与 (755)

-$GLOBALS['password'] = md5('');
+$GLOBALS['password'] = 'md5変換されたパスワード文字列';

2. 起動確認。

http://..../mkdir.cgi

にアクセスし、エラーがでないか確認する。php へのパスは

#!/usr/local/bin/php

が指定してあるが、異なる場合変更する(正しいパスは各レンタルサーバーのドキュメントで調べてください)

3. pukiwiki/init/statichtml.ini.php 中の以下の部分のコメントをはずし有効化

define('PLUGIN_STATICHTML_DUMP_ONREAD', FALSE);
//$baseuri = substr(get_script_uri(), 0, strrpos(get_script_uri(), '/')) . '/';
//$GLOBALS['PLUGIN_STATICHTML_MKDIR_CGI'] = $baseuri . '/mkdir.cgi?password=' . md5('');

この時、さきほど設定したパスワードを md5('') の部分に同様に設定。

HTMLファイル名を短くしたい

日本語をページ名に使用すると長く、読解不能な HTML ファイル名にエンコードされます。

できるだけページ名にはアルファベットを、スペースも使用せずに _ (アンダースコア)を使用してみてください。 通常の HTML ファイルに名前を付ける要領です。

その時、タイトル表示に日本語を使用したい場合、PukiWiki Plus! には TITLE: コマンドがあるので、それを使用してみてください。

TITLE: PukiWiki 静的HTML変換版

のようにページのどこかに記述しておくと、ページ名とは別にタイトルを変更できます。


*1 通常の HTML で構成されるウェブページを PukiWiki 記法で編集できるシステムができた、と思ってください。私ならばスキンから編集リンクなども全て隠し、通常のHTMLページとして振る舞ってくれるようにします。See andreas01
*2 詳細は Weblog/2007-12-23