Top/Pukiwiki/kifubbs

Pukiwiki/kifubbs のバックアップ(No.1)


参考のためにログを残しておきます。http://noldor.xrea.jp/noldor.info/もしばらく置いておきます。


kifubbsプラグインは従来の掲示板をそのままPukiWikiに搭載するものです。PukiWikiの使い方に慣れていない人でも掲示板でのやり取りがスムーズに行えるようになります。

囲碁の棋譜投稿機能がついていますが、オプションで外すことが出来ます。

インストール

アップロード

棋譜投稿機能を使う場合はあらかじめ石葉2?を用意してください。

kifubbs.inc.phpおよびkifubbsディレクトリをpluginディレクトリにコピーしてください。パーミッションなどは以下の表のようにします。

ファイル(ディレクトリ)パーミッション転送モード
kifubbs.inc.php644ASCII(EUC)
kifubbsディレクトリ755
kifubbs/*.inc.php644ASCII(EUC)
kifubbs/bbsdataディレクトリ777
kifubbs/bbslockディレクトリ777

kifubbs.cssは、その内容をdefault.ja.cssの末尾にコピーしてください。

ページへの設置

ブロック型プラグインとして動作しますので、任意のページに次のように書きます。

#kifubbs()

複数個の掲示板が必要なときは、引数にIDを指定します。

#kifubbs(id)

IDはアルファベットとアンダーバー*1の組み合わせです。

v1.4以前のデータは引数なし(ID指定なし)のデータとして扱われます。

設定

kifubbs/init.inc.phpの各種設定を書き換えてください。いくつかの設定がありますが、最低限必要なものを以下に記します。

管理者パスワードの設定

24行目の管理者パスワードを書き換えてください。

//管理者パスワード(md5()で暗号化したもの:デフォルトでPukiWikiのパスワードと同じになる)
define('KIFUBBS_ADMINPASSWORD', $GLOBALS['adminpass']);

PukiWikiのパスワードと別のものにする場合は、md5()で暗号化してください。

define('KIFUBBS_ADMINPASSWORD', md5('AnotherPass'));

保存方法の選択

保存方法はファイルとデータベース(MySQL)の2つが選べます。データベースの使用を推奨しますが、使えない場合はファイルに保存してください。

//保存方法に何を使うか選択する
define('KIFUBBS_USEDATABASE', 'MySQL');

PostgreSQLとSQLiteは、現在はまだ動きません。

データベースを選んだ場合はデータベースの設定を行ってください。

//データベース(MySQL, PostgreSQL)
define('KIFUBBS_DB_HOST', '大抵はlocalhost');	//ホスト名
define('KIFUBBS_DB_USERNAME', 'ユーザー名');	//ユーザー名
define('KIFUBBS_DB_PASSWORD', 'パスワード');	//パスワード
define('KIFUBBS_DB_NAME', 'データベース名');	//データベース名
define('KIFUBBS_DB_TABLE', '任意のテーブル名');	//テーブル名(プレフィックス)

IDを指定しなかった場合、KIFUBBS_DB_TABLEはプレフィックスではなくテーブル名そのものになります(v1.4から移行する場合は、KIFUBBS_DB_TABLEに継続するテーブル名を書いてください)。

ファイルを選んだ場合はファイルの設定を行ってください。

define('KIFUBBS_LOCKFILEDIR', './plugin/kifubbs/bbslock/');	//ロックファイル用ディレクトリ
define('KIFUBBS_LOCKFILEBASENAME', 'lockfile');	//ロックファイルの名前(プレフィックス)
define('KIFUBBS_LOCK_TRYTIME', 6);	//ロック挑戦を繰り返す秒数
define('KIFUBBS_LOCK_TIMEOUT', 60);	//この秒数を超えたロックファイルは強制的にロックを奪われる
define('KIFUBBS_DATAFILEDIR', './plugin/kifubbs/bbsdata/');	//記事保存用ディレクトリ
define('KIFUBBS_DATAFILESIZE', 50);	//データファイル1つの保存件数。

一度設定したDATAFILESIZEは変更しないでください。データファイルが破壊されることがあります。

DATAFILESIZEは記事数の上限ではありません。ファイル1つに保存する記事の件数であり、1つのファイルがいっぱいになったら次のファイルが作られます。これにより、古い記事を無駄に読み書きしないで済むようにしています。ただし、あまり小さな値を設定するとかえって速度低下の原因になります。

棋譜を投稿するなど1件あたりの記事が重い場合は小さな値に、一言二言の投稿が多く1件あたりの記事が軽い場合は大きな値にすると良いですが、よく分からない場合はデフォルトから変えない方が良いでしょう。

使い方

投稿関係は一般的な掲示板と同じです。

管理者画面に入るには、一番下の書き換え・削除用フォームの記事番号に「admin」を、パスワードには管理者パスワードを入力し送信してください。投稿者のIPアドレスとホスト名が表示されるようになり、書き換え・削除をパスワードなしで行えるようになります。

フィードバック

  • ようか?: v1.4は「kifubbsプラグインv1.4」に移動しました。 -- 2004-03-02 (火) 16:25:38
  • ケイイチ?: 改良版、ありがたく使わせていただきます。感謝です! ところで、棋譜版と通常版の二つを設置しようとしているのですが、棋譜を使用しない場合、trueをfalseにすればいいのでしょうか? この辺りの説明文が付記されていなかったので…。すみません。 -- 2004-03-03 (水) 17:59:31
  • ケイイチ?: あ、すみません。更新で設定反映させましたら棋譜を使用しない形に出来ました。本家の方に説明ついてましたし…。申し訳ないです。 -- 2004-03-03 (水) 18:05:21
  • : xrea.comで設置しようとしたらエラーがでました…。変更したのはinitだけです。1.4でファイルだと成功したのですが、1.5でMySQLとファイル両方失敗でした_| ̄|○ Fatal error: Cannot instantiate non-existent class: kifubbs_nomaldisplay in /virtual/xxxxxxx/public_html/xxxx/plugin/kifubbs/kifubbs.inc.php on line 98 -- 2004-03-18 (木) 00:37:29
  • ようか?: おそらくv1.4とv1.5のファイルが混ざっているのが原因です*2。一旦v1.4関連のphpファイルを全部削除してからv1.5をインストールし直せば動くようになると思います(データファイルは使い回せるので消さないように注意してください)。 -- 2004-03-18 (木) 19:48:26
  • ようか?: plugin/kifubbs/kifubbs.inc.phpが呼ばれているということは、plugin/kifubbs.inc.phpがv1.4のものになっているはずです。これを上書きしわすれているのかもしれません。確認してみてください。 -- 2004-03-18 (木) 19:51:18
  • punto?: 初めまして。pukiwiki初心者です。よろしくお願いします。
    v1.5をインストールし、保存方法はfalesystemに設定をしました。しかし管理者パスを入力して新規BBSの作成は成功したのですが、ファイルが読めませんとのアラートが出てしまいます。何が悪いのでしょうか? ちなみに石葉2?はインストールしていません。-- 2004-03-25 (木) 11:31:13
  • ようか?: 作成直後の初期ファイルが読めないか開けないかしているということだと思いますが、これだけだと情報が足りなくて何ともわかりません。
    • データ保存用ディレクトリのパーミッションは大丈夫か
    • 初期ファイルが本当に作られているか
  • を確認してみてください。あと、できるならOSの種類やPHPのセーフモードの有無などを教えていただければ何か分かるかもしれません。 -- 2004-03-26 (金) 22:34:44
  • zero?: db_filesystem.inc.phpのfgets($fh);をfgets($fh,1024);あたりに変えると幸せになるかも -- 2004-03-27 (土) 21:09:44
  • ケイイチ?: MySQLで作成しようとしてみたのですが、エラーメッセージにて作成出来ませんでした。この場合は、どの辺りを直せばよいのでしょうか。パーミッション関係やパス、ユーザー名などは確認しなおしてみたのですけれど。テーブル名はkifubbsにした状態です。エラーメッセージはこちらに。Fatal error: Call to undefined function: file_get_contents() in /home/sites/lolipop.jp/users/zombie.jp-xxx/web/fake/pukiwiki/plugin/kifubbs/db_mysql.inc.php on line 75…どうにもならないかもしれませんが、なにか回答があれば宜しくお願いします。 -- 2004-03-28 (日) 22:46:43
  • punto?: ようか様、zero様早速のレス、ありがとうございます。fgets($fh,1024);に直したらちゃんとkifubbs表示されました。しかし投稿しても記事が表示されません。時間がないので取り急ぎご報告したします。情報が少なくて申し訳ありませんが、OSやphpのセキュリティなど詳細については後ほどカキコさせて下さい。 -- 2004-03-29 (月) 10:15:55
  • hoge?: windows2k, apache1.3.28, php4.3.4です。保存方法「filesystem」で棋譜投稿は無効にしました。投稿時リネームできませんと出て書き込めませんが、どこを見ればよいでしょうか?windowsなのでパーミッションの設定は?なのですが、、、 -- 2004-03-29 (月) 12:54:13
  • ようか?: ケイイチさん>
    「file_get_contents()が定義されていない」というエラーですが、file_get_contents()はPHP4.3.0からの機能なので、それ以前のPHPで動かしたためにエラーになったのだと思われます。db_mysql.inc.phpを次のように書き換えるとうまくいくと思います。 -- 2004-03-29 (月) 13:27:52
    -$file = file_get_contents('mysql.sql', 1);
    +$file = join('', file('mysql.sql', 1));
  • ようか?: puntoさん>
    fgets($fh,1024);で動いたということは、file_get_contents()と同じようにPHPのバージョンが問題なのだと思います。PHPのバージョンには注意を払っていなかったので、こちらできちんと確認しないと動かないかもしれないです。PHPのバージョンを教えていただければ何か出来るかもしれません。 -- 2004-03-29 (月) 13:35:03
  • ようか?: hogeさん>
    Windowsではそのままでは動かないことを書き忘れていました。申し訳ありません。
    ちょっと危険ですが、少し改造すると動くようになります。db_filesystem.inc.phpの507行目あたりからを次のように書き換えてください。
    	fclose($fh);
    	$fn = $this->datadir . $this->getfilename($n);
    +	unlink($fn);
    	$ret = @rename($tempfile, $fn);
    	$this->filelock->unlock();
    	if($ret == false){
    		$this->error = 'リネームできません。';
    -		unlink($tempfile);
    		return false;
    ただ、これはリネームが別の理由で失敗した場合や「unlink($fn);」実行後「@rename($tempfile, $fn);」終了前にPHP本体が異常終了してしまった場合、データを手動で復旧する必要があります。その場合、"temp"で始まるファイルを正しいファイル名に書き換えてください*3。 -- 2004-03-29 (月) 14:12:41
  • hoge?: 迅速なご対応ありがとうございます。うまく動きました。ちなみに上記、tempで始まるファイルはbbsdataに生成されるのでしょうか?それともwikiフォルダでしょうか? -- 2004-03-29 (月) 14:28:48
  • ようか?: デフォルトの設定から変えていなければbbsdataフォルダになります。 -- 2004-03-29 (月) 14:42:35
  • punto?: 環境をご報告します。>ようか?
    OS:Debian woody
    php:4.1.2(apt-getで手抜きインストール)
    です。パーミションについては再確認しましたが、このページで指示されている通りでした。また、plugin/kifubbs/bbsdata以下にdata0.dat data_test_0.dat dir.txtができています。.datファイルの中身を確認しますと投稿した記事内容らしきモノがありますので初期ファイル(?)はちゃんと作られていると思っています。phpのセーフモード有無についてはどうやって確認すれば良いのでしょうか? -- 2004-03-29 (月) 16:36:41
  • ようか?: セーフモードの確認の仕方は良く知らないのですが、今回はあまり関係がなさそうなのでこのままで……。
    WindowsXP + AN Httpdですが、PHP4.1.2で動くように書き換えました。&ref(): File not found: "kifubbs.1.5.1.zip" at page "Pukiwiki/kifubbs";に差し替えてみてください*4。 -- 2004-03-29 (月) 22:41:12
  • ケイイチ?: PHPのVerの問題だったのですね。少しは勉強してから…せめて何のVerを使用しているか位は把握してから使用を考えるべきでした。このような質問にお答えいただき本当にありがとうございます。御指摘どおりの変更にてあっさりと掲示板の作成が出来ました。最初の内はデータベースの中にテーブル作らなければいけないのかと思っていましたから…。 -- 2004-03-29 (月) 23:49:50
  • punto?: ありがとうございます。ver1.5.1で成功しました。(棋譜はオフ) と思ったら上部に表示されるスレッド一覧が表示されないです。 :( -- 2004-03-30 (火) 16:20:13
  • ようか?: ケイイチさん>
    データベースにテーブルを作る処理の部分だったので、実はそれも正解です。PHPのバージョンのことはこちらもうっかりしてました。動いて良かったです:-) -- 2004-03-31 (水) 09:45:29
  • ようか?: puntoさん>
    こちらではちゃんと表示されていますが……。KIFUBBS_THREADLISTの設定は大丈夫でしょうか? デフォルトでは表示されない設定になっています。 -- 2004-03-31 (水) 09:50:10
  • punto?: 大変失礼いたしました。KIFUBBS_THREADLISTがデフォルトのゼロのままでした。 -- 2004-03-31 (水) 16:04:57
  • かつはる?: Authモジュールというのを使って, xoopsサイトにて使用させていただいています. ありがとうございます. -- 2004-07-06 (火) 21:30:42
  • ねおねお?: はじめまして。kifubbsを利用させて頂き掲示板を作成しているのですが、画像付掲示板を実現しようと思うと、refでは利用者が面倒なので、attachrefを利用しようと考えたのですがうまくいきませんでした(当該コンテンツ内に存在しないと書き換えできないため)。何か別のプラグインや方法などご存知でしたらご教示頂ければと存じます。お手数お掛けしますが宜しくお願い申し上げます。 -- 2004-08-03 (火) 22:42:54
  • ようか?: 投稿記事のデータは独自の方法で持っているので、他のプラグインとの連携は現実的ではないと思います(書き換えが難しいため)。kifubbsそのものに手を入れるほか方法はないでしょうが、私自身はその手の機能追加はしないつもりでいます。articleプラグインを使うなどの方法でお願いします。 -- 2004-08-04 (水) 22:09:37
  • くど〜?: kifubbsを利用させて頂いたのですがこのたびarticleに変更しようと考えたのですがうまく削除できませんどうすれば良いのでしょうか? -- 2004-09-09 (木) 07:24:45
  • ようか?: 「うまく削除できない」とはどういう意味でしょうか? PukiWikiのページから削除できないという意味であれば、1つ1つページ編集して消していくしかありません*5。サーバからファイルまたはデータベースを削除できないという意味であれば、サーバ管理者にお問い合わせ下さい。 -- 2004-09-11 (土) 00:20:46
  • ようか?: というのはお約束文句として。レンタルサーバを使っていて、ファイルに保存する設定にして作られていったファイルをFTPクライアント(FFFTPなど)から削除できないというのが一番多そうなパターンだと思いますが、その場合に一番多い原因としては「PHPで作ったファイルの所有者がnobodyまたはapatchになっていてFTP経由では削除できない」というものだと思います。その場合削除用スクリプトを書いてCGIとして実行させるか、telnet.cgiでも使うか*6、やはりサーバ管理者に問い合わせてください。 -- 2004-09-11 (土) 00:28:56
  • くど〜?: 自鯖で立てていたのですがパーミッションの問題でした。解決しました。ありがとうございました -- 2004-09-23 (木) 20:58:22

    *1 "_"のこと
    *2 v1.5のセットにはplugin/kifubbs/kifubbs.inc.phpはありません
    *3 どのようなファイル名になるかは、他のファイルの名前から推測できると思います
    *4 設定ファイルinit.inc.phpはそのままでも動きます
    *5 ページ編集できないのであればPukiWiki側もしくは自作スキンの問題です
    *6 危険なツールなので分からないなら使わないで下さい

ページ新規作成

新しいページはこちらから投稿できます。

TOP