PukiWiki Advance
Rev.10を表示中。最新版はこちら。
PukiwWikiで宅内ネット環境を構築していて、fedora17をインストールしたところ、PukiWikiが動作しません。fedora17でyumでphpをインストールすると、Ver5.4がインストールされます。このバージョンの新規にインプリメントされたある内部関数が、PukiWikiの関数とバッテングするからのようです。PukiWikiにパッチをあてる旨の情報を、アップされているサイトもあったのですが、PukiWiki Advernceというのが、PukiWiki本家とは別にあるらしく、これがPHP 5.4にも対応との事です。この際、別のWikiにとも思いましたが、自作プラグインもあって、PukiWiki Advernceをインストールする事にしました。その時の覚え書きです。
PukiWiki AdvernceをDocument rootに展開後、その下のwebrootをDocument roootにし、以下の設定で動作した初期画面です。
・webroot/index.php
error_reporting(0); define('DEBUG', true);をコメント
・wiki-common/auth.ini.php
$adminpass = '{x-php-md5}・・・・を適当に変更
で、個人的に用途のため、赤丸で囲んだ所をカットします。なお、ページ編集のパスワードも無用です。なお、設定ファイルによる、スマートなやり方もあるかと思いますが、所詮php、分かって修正すれば、なにかあれば力技で対応すればとの思いです。
修正箇所
・wiki-common/auth.ini.php$edit_auth=0 ->ページ編集での認証させないやめ。
・webroot/skin/thema/default/default.skin.php
$lastmodified="" ソースのどこか先頭にでも追加 exist_plugin('navibar'); -> exist_plugin('hoge_navibar'); exist_plugin('toolbar'); -> exist_plugin('hoge_toolbar'); $footer = (is_page($footerarea) && exist_plugin_convert('footerarea'))? do_plugin_convert('footerarea') : ''; -> $footer = (is_page($footerarea) && exist_plugin_convert('hoge_footerarea'))? do_plugin_convert('footerarea') : ' '; (スペース)
補足
できるだけ、ソースを汚さないようにとの思いですが、いっそうの事いらない所は、バッサを削除するのもすっきりしていいかと思います。ちなみに、タイトルの設定は以下のとうりです。デフォルトページ
・wiki-data/pukiwiki.ini.pho
$defaultpage = 'Frontpage';
タイトルアイコン
・webroot/skin/thema/default/default.skin.php
$_SKIN['logo']['src'] $_SKIN['logo']['width'] $_SKIN['logo']['height'] $_SKIN['logo']['alt']
また、ページを更新すると、更新はされるのですが、サーバエラーとして、ファイルが無い。とのエラーメッセージが返ってきました。
ページ更新は、wiki-common/plugin/edit.inc.phpのplugin_edit_write()から、plugin_edit_honeypot()へ、そこでページ更新した後、 plugin_edit_cancel()をコールする事で、修正ページを表示させるようです。
get_page_location_uri($vars['page'])は、http://127.0.0.1/FrontPageみたいな結果を返します。それ故、ファイルが無い旨のサーバからのエラーが返ってきています。
とりあえず、この箇所を、http://127.0.0.1/?cmd=read&page=FrontPageとなるように変更しました。
unction plugin_edit_cancel() { global $vars; pkwk_headers_sent(); /* header('Location: ' . get_page_location_uri($vars['page'])); */ header('Location: ' . get_page_location_uri("")."?cmd=read&page=".$vars['page']); exit; }