pukiwiki1.5/counter.inc.php の履歴(No.4)


目次

counter1.png

pukiwiki1.5.2から、counterにデータベース(SQLite, MySQL)が使えるようになったが、やり方が分からなかったので書きました。
大半はにわかゾイダーさんに教わりました。ありがとうございます。

SQLiteを利用する方法#

  • PLUGIN_COUNTER_DB_CONNECT_STRINGの次の文字列は変更しないでOK(counter.dbのファイルの置き場所を変えたい場合は変更する)
define('PLUGIN_COUNTER_DB_CONNECT_STRING', 'sqlite:counter/counter.db');
  • counter.dbとcounterディレクトリのパーミッションは777にする(多分)
  • counter.dbの中身が空だとエラーになるので中身を用意してあげる必要がある
    • カウンターが0からで問題ない場合は、テーブルのみ作成した空のcounter.dbファイルとcounterフォルダにアップロードすればOK
    • 既存のカウント情報を引き継ぎたい場合は、BugTrack/2422でダウンロードできる counter_db_tool.php を使ってcounter.dbファイルを生成する(未実施)

MySQLを利用する方法#

counter2.png
CREATE TABLE page_counter (
   page_name VARCHAR(190) PRIMARY KEY,
   total INTEGER NOT NULL,
   update_date VARCHAR(20) NOT NULL,
   today_viewcount INTEGER NOT NULL,
   yesterday_viewcount INTEGER NOT NULL,
   remote_addr VARCHAR(100)
 )
  • counter.inc.phpの編集
    • PLUGIN_COUNTER_USE_DBを1に変更
    • PLUGIN_COUNTER_DB_CONNECT_STRINGの次の文字列を変更
define('PLUGIN_COUNTER_DB_CONNECT_STRING', 'mysql:host=localhost;dbname=nemusg_pukiwiki');
  • PLUGIN_COUNTER_DB_USERNAMEにはデータベース作成時のユーザー名を入れる
  • PLUGIN_COUNTER_DB_PASSWORDにはデータベース作成時のパスワードを入れる
  • For MySQL の文字列は文字コードの設定のようなので問題がなければ変更不要。
counter3.png

MySQL利用だと popular.inc.php(人気のXX件)が動かない問題#

  • MySQLを使ってカウンターが動くようにはなったが、この状態で popular.inc.php を使おうとするとエラーがでてサイトが真っ白になってしまう……。質問箱/5497 - PukiWiki-officialに相談してみました。
    • (追記)にわかゾイダーさんが修正プルリクを作ってくれました!そのうちマージされるかもですが、とりあえずこのcounter.inc.phpの変更を取り込めば同時利用できるようになります。
counter.inc.php: Error occurred on getting pupular pages