目次
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の中身が空だとエラーになるので中身を用意してあげる必要がある
MySQLを利用する方法#
- 予めデータベースを作成して、中身のテーブルを作っておく必要がある(テーブルは勝手に作ってくれるのかと思っていたがそうではない)
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 の文字列は文字コードの設定のようなので問題がなければ変更不要。
MySQL利用だと popular.inc.php(人気のXX件)が動かない問題#
- MySQLを使ってカウンターが動くようにはなったが、この状態で popular.inc.php を使おうとするとエラーがでてサイトが真っ白になってしまう……。質問箱/5497 - PukiWiki-officialに相談してみました。
- (追記)にわかゾイダーさんが修正プルリクを作ってくれました!そのうちマージされるかもですが、とりあえずこのcounter.inc.phpの変更を取り込めば同時利用できるようになります。
counter.inc.php: Error occurred on getting pupular pages