#contents
#ls

* 導入時作業

http://pukiwiki.sourceforge.jp/ ここから拾ってきて展開。
ディレクトリ名はpukiwikiである必要もないので適当に変える。

やや古い内容が多々。

 cd PATH/TO/PUKIWIKI
 chmod 777 diff attach backup cache counter wiki trackback
 chmod 666 wiki/*.txt cache/*.dat
 # バージョンアップやらコピーの時必要
 chmod 666 diff/*.txt cache/*.rel cache/*.ref backup/*.gz counter/*.count
 ln -s pukiwiki.php index.php
 # シンボリックリンクがダメな場合
 cp pukiwiki.php index.php

** pukiwiki.ini.php
 $modifier = '要変更';
 $modifierlink = '要変更;
 $page_title = '要変更';
 $adminpass = '任意';
 // WikiNameは目障り
 $nowikiname = 1;
 // アンカーも目障り
 $fixed_heading_anchor = 0;
 // 文字列中のページ名を勝手にリンクに…邪魔
 $autolink = 0;
 // アンテナ用
 // includeがメインのページはキャッシュされても嬉しくないので微妙
 $lastmod = 1;
 // 好みの問題
 $preformat_ltrim = 1;
 $defaultpage  = 'Top';

** skin/pukiwiki.skin.ja.php
 | <a href="<?php echo $script ?>?plugin=rename&amp;refer=<?php
   echo rawurlencode($vars[page]) ?>">移動</a>

 <?php   if ((bool)ini_get('file_uploads')) { ?>
  | <a href="<?php echo $link_upload ?>">添付</a>
 <?php   } ?>
の次ぐらいに追加。

いっそのことガッとスキン変えてしまった方がすっきりしそう。

** pukiwiki.png
左上に常に出る画像

** skin/default.ja.css
 h2
 {
 	border-left-width: 20px;
 	border-style: double;
 	border-color: #215dc6;
 }

 h3
 {
        border-left-width: 10px;
        border-style: solid;
        border-color: #215dc6;
 }

 h4
 {
        border-left-width: 5px;
        border-style: dotted;
        border-color: #215dc6;
 }

区別がつきにくいので追加。1.4.5ではデザイン変わっている模様。

** lib/convert_html.php

整形済みの先頭を半角スペース以外も(タブとかも)削除

 (!$preformat_ltrim or $text == '' or $text{0} != ' ') ? $text : substr($text, 1)

 ($preformat_ltrim and $text != '') ? substr($text, 1) : $text

** default.ini.php

 $related_link = 0;
 $usefacemark = 0;
 $_dl_margin = 0;

** 定数

- PKWK_SKIN_SHOW_NAVBAR ナビゲーション(上の)を表示/非表示

* Trackback

trackback pingなURLではなく記事のURLを書かないといけない。~
(PukiWiki同士でもうまくいくはずなのだが、naname⇔研究室マシンでうまくいかない。~
URLに対しとりあえずtrackbackを見て回るので迷惑。~

** ナビゲーション以外でtrackback

	<?php if ($trackback) { ?>
		<?php _navigator(
			'trackback',
			$lang['trackback'] . '(' . tb_count($_page) . ')',
			($trackback_javascript == 1)
				? 'onClick="OpenTrackback(this.href);return false"'
				: '')
		?>
		&nbsp;
	<?php } ?>
を適当なところに追加。~
_navigatorの定義をif(PKWK_SKIN_SHOW_NAVBAR)の外にしないと未定義といわれる。~

** 必要なときだけtrackback扱い

 $plus  = join("\n", preg_replace('/^\+/', '', preg_grep('/^\+/', $_diff)));
 $minus = join("\n", preg_replace('/^-/',  '', preg_grep('/^-/',  $_diff)));

を以下のように変更すると、 trackback: から始まっているもののみを対象。

 $plus  = join("\n", preg_replace('/^\+/', '', preg_grep('/^\+trackback:/', $_diff)));
 $minus = join("\n", preg_replace('/^-/',  '', preg_grep('/^-trackback:/',  $_diff)));

** calendar_viewにtrackback

 $head   = '<h1>' . $link . '</h1>' . "\n";
 $return_body .= $head . $body;

な後に以下を追加。~
いろいろ適当。

	// trackback
	global $trackback;
	if ($trackback) {
		global $_LANG;
		$return_body .= '<div align="right"><a href="' . $script
			. '?plugin=tb&__mode=view&tb_id=' . tb_get_id($page) . '">'
			. $_LANG['skin']['trackback'] . '(' . tb_count($page) . ')'
			. '</a></div>' . "\n";
	}


* PHP-CGI

- suExecならパーミッションは開けなくていい
-- むしろ下みたくに閉じ
- セーフモードの場合は[[PHP]]参照

 chmod 700 diff attach backup counter wiki trackback
 chmod 755 cache
 chmod 600 wiki/*.txt
 chmod 600 cache/*.dat

cacheが755なのはAmazonプラグインの画像がここにキャッシュされるため。


* 編集者限定

- [[PHP]]のHTTP認証云々のところの解決策と同様
- index.phpはPKWK_READONLYを指定して、通常閲覧用
- editable.phpは.htaccessでアクセス制限、管理用

** comment だけ許可

index.php
 define('PKWK_ALLOW_COMMENT', 1);

plugin/comment.inc.php
 if (PKWK_READONLY)

 if (PKWK_READONLY && !PKWK_ALLOW_COMMENT)

 page_write($vars['refer'], $postdata);

 page_write($vars['refer'], $postdata, FALSE, TRUE);


lib/file.php
 function page_write($page, $postdata, $notimestamp=FALSE, $allow_write=FALSE)
     if (PKWK_READONLY && !(PKWK_ALLOW_COMMENT && $allow_write)) return; // Do nothing
     file_write(DIFF_DIR, $page, $diffdata, $allow_write);
     file_write(DATA_DIR, $page, $postdata, $notimestamp, $allow_write);
 function file_write($dir, $page, $str, $notimestamp=FALSE, $allow_write=FALSE)
     if (PKWK_READONLY && !(PKWK_ALLOW_COMMENT && $allow_write)) return; // Do nothing


* 画像

** リンク

 [[画像:リンク先]]
 [[&ref(画像,オプション);:リンク先]]

** 画像CGI

ダミーで拡張子を偽装、でもしないと画像だと認識されずにテキストのリンクになる。

 image.cgi?option=value&dummy=.gif

* 複数サイトでファイルを共通化

編集可能なものを認証にするのをやめる逃げ手段として複数サイト設置。

- *.php attach backup cache counter diff trackback wiki をコピー or 作成
- pukiwiki.ini.phpで image plugin skin の位置を指定
- index.php(pukiwiki.php)で libの位置を指定
- skin/pukiwiki.skin.phpで skin/ が直埋めになっているところを <?php echo SKIN_DIR ?> に修正

* データのコピー

タイムスタンプを変更しない、で更新をしていると更新日時が変わらないので、~
更新日時の関わらずコピーしないとハマる。

* 認証

以下、やや古いのと勘違いアリなので無視の方向で

.htaccessで認証を使っているときはPukiWikiの認証は機能はまともに働きません。

.htaccessで使用しているものと同じユーザ/パスワードを利用すれば認証制限が可能なのですが、平文でpukiwiki.ini.php(他の人も読める)に書かないといけないので、
好ましくないです。

.htaccessを使わなければいいか、と思うと wiki/ というディレクトリにアクセスすると、内容が見えてしまうのでどうしようもありません。


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS