リアルタイムアクセス解析THK AnalyticsをNginxで使う
THK Analytics というリアルタイムアクセス解析を導入してみました。
動作環境がApacheとなっていて、Nginxについて他のサイトでも情報が無かったので人柱になる覚悟で入れてみたところ、いまのところ問題なく動いているように見えます。
(.htaccessで不要なファイルを弾いているようでしたので、精度は若干落ちそうですが)
ただMySQL5.7だと_core/application/models/Log.php
がエラーを吐きます。
これはMySQL5.7からデフォルトでONLY_FULL_GROUP_BY
が設定されSELECT構文が厳格になったためのようです。
該当部分は1ヶ所だったのですが、かなり長いSELECT文だったので素直にMySQLの設定を変えました。
mysql> show variables like 'sql_mode'; +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
(私の環境では)上記がデフォルト設定のようで、my.cnf
には記載されていません。
他の設定はそのままにしておきたいので、ONLY_FULL_GROUP_BY
を除外した設定をmy.cnf
に明示します。
# vi /etc/my.cnf
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
MySQLを再起動して完了です。
ディスカッション
コメント一覧
管理人様、
THK Analytics をNginx環境にインストールされたとのコメントを公式サイトで見てこちらにたどり着きました。
下記のような状態でインストールができない状態なのです。
なにか考えられる原因や確認箇所などアドバイスを頂けると幸いです。
インストール時に、「次へ」をクリックしても先に進めない
https://sub.example.com/thk/view/?c=install&a=step0
step1? に画面が切り替わらず、DB設定フォームのページにならない
mbstring や mysqli などのモジュールも入れてるんです。。。
docker-php-ext-install -j$(nproc) gd zip mbstring mysqli
動作環境
docker container
nginx:1.19.6, php:8.0.3-fpm, mariadb:10.5.8
よろしくお願いいたします。
php7.3のテスト環境でTHK Analyticsの現行バージョンを試してみましたが、問題は再現されずにstep1に遷移されました。
THK Analyticsは2018年3月が最終リリースなので、php8に対応していないのかもしれません。
step0で表示される「次へ」ボタン付近のHTMLソースが正しく出力されているか確認してみてください。糸口が見つかるかもしれません。
■(正常と思われる)私の環境
<p>問題が無ければ「次へ」ボタンを押してください。</p>
<div class=”install”>
<form action=”https://example.com/test2/thk/view/?c=install&a=step1″ method=”post”>
<input class=”button” type=”submit” value=” 次へ ” onclick=”disableButton(this.form);” />
</form>
</div>