pukiwiki1.5/counter.inc.php の履歴の現在との差分(No.2)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2023-12-21T01:13:52+09:00","default:nemusg.pad","nemusg.pad")
* counter.inc.php の使い方 [#z5034ec7]
#author("2023-12-26T23:24:53+09:00","default:nemusg.pad","nemusg.pad")
#title(pukiwiki1.5でのcounter.inc.phpの使い方)

目次

#contents

#ref(pukiwiki1.5/counter.inc.php/counter1.png,100%)

[[pukiwiki1.5.2:https://pukiwiki.sourceforge.io/?PukiWiki/Download/1.5.2#kce7aee5]]から、counterにデータベース(SQLite, MySQL)が使えるようになったが、やり方が分からなかったので書きました。&br;大半はにわかゾイダーさんに教わりました。ありがとうございます。

- pluginの公式マニュアル [[Manual/Plugin/counter:https://pukiwiki.sourceforge.io/?PukiWiki/1.4/Manual/Plugin/A-D#content_1_20]]
- [[counter.inc.php(GitHub):https://github.com/pukiwiki/pukiwiki/blob/master/plugin/counter.inc.php]]
- [[SQLiteとMySQLの比較─長所と短所:https://kinsta.com/jp/blog/sqlite-vs-mysql/]] counterぐらいならSQLiteでも十分な印象はある

** SQLiteを利用する方法 [#cbd7048e]
* SQLiteを利用する方法 [#cbd7048e]

- PLUGIN_COUNTER_DB_CONNECT_STRINGの次の文字列は変更しないでOK(counter.dbのファイルの置き場所を変えたい場合は変更する)

#code_x{{
sqlite:counter/counter.db
define('PLUGIN_COUNTER_DB_CONNECT_STRING', 'sqlite:counter/counter.db');
}}

- counter.dbとcounterディレクトリのパーミッションは777にする(多分)
- counter.dbの中身が空だとエラーになるので中身を用意してあげる必要がある(多分)
-- [[BugTrack/2422:https://pukiwiki.sourceforge.io/dev/?BugTrack/2422]]でダウンロードできる counter_db_tool.php を使って中身を入れてあげると動くかも
- counter.dbの中身が空だとエラーになるので中身を用意してあげる必要がある
-- カウンターが0からで問題ない場合は、[[テーブルのみ作成した空のcounter.db:https://github.com/pukiwiki/pukiwiki/blob/e63e44e21917c3a30ce468393c33f6990d585ad3/counter/counter.db]]ファイルとcounterフォルダにアップロードすればOK
-- 既存のカウント情報を引き継ぎたい場合は、[[BugTrack/2422:https://pukiwiki.sourceforge.io/dev/?BugTrack/2422]]でダウンロードできる counter_db_tool.php を使ってcounter.dbファイルを生成する(未実施)

** MySQLを利用する方法 [#ybbeee11]
* MySQLを利用する方法 [#ybbeee11]

- 予めデータベースを作成して、中身のテーブルを作っておく必要がある(勝手に作ってくれるのかと思っていたがそうではないらしい)
- 予めデータベースを作成して、中身のテーブルを作っておく必要がある(テーブルは勝手に作ってくれるのかと思っていたがそうではない)
-- [[データベース - レンタルサーバー CORESERVER(コアサーバー):https://help.coreserver.jp/manual/v2/screen-database/]]
-- phpMyAdminのSQLで下記を実行

#ref(pukiwiki1.5/counter.inc.php/counter2.png,50%)

#code_x{{
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の次の文字列を変更

#code_x{{
mysql:host=localhost;dbname=nemusg_pukiwiki
define('PLUGIN_COUNTER_DB_CONNECT_STRING', 'mysql:host=localhost;dbname=nemusg_pukiwiki');
}}

-- PLUGIN_COUNTER_DB_USERNAMEにはデータベース作成時のユーザー名を入れる
-- PLUGIN_COUNTER_DB_PASSWORDにはデータベース作成時のパスワードを入れる
-- `For MySQL` の文字列は文字コードの設定のようなので問題がなければ変更不要。

#ref(pukiwiki1.5/counter.inc.php/counter3.png,50%)

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

- MySQLを使ってカウンターが動くようにはなったが、この状態で popular.inc.php を使おうとするとエラーがでてサイトが真っ白になってしまう……。[[質問箱/5497 - PukiWiki-official:https://pukiwiki.sourceforge.io/?%E8%B3%AA%E5%95%8F%E7%AE%B1/5497]]に相談してみました。
-- (追記)にわかゾイダーさんが[[修正プルリク:https://github.com/pukiwiki/pukiwiki/compare/master...niwakazoider:pukiwiki:master]]を作ってくれました!そのうちマージされるかもですが、とりあえずこのcounter.inc.phpの変更を取り込めば同時利用できるようになります。

 counter.inc.php: Error occurred on getting pupular pages