Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2007-12-27 20:13:59

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

Mocchiです。

探してます - 管理操作履歴周りのプラグインでみなさんにご協力いただいた、管理操作履歴を保管するプラグインを、こちらで公開します。
詳細はWikiを参照してください。
みなさんご協力ありがとうございました。

現在の最新版は、Ver.0.2.4です。
Ver.0.2.2以下には管理操作履歴がファイルに書き出されない不具合があります。Ver.0.2.4をダウンロードし、ファイルを上書きしてください。追加されているファイル・フォルダがあるので、それもアップロードしてください。また、ディレクトリのアクセス権限を適切に設定しないと、正常に作動しません。


Attachments:
zip NP_ActionLogPlus(ver.0.2.3).zip, Size: 23.8 KiB, Downloads: 652

オフライン

#2 2008-01-03 12:12:23

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

Mocchiです。このプラグインの製作者です。
開発環境では動作の確認ができたので喜び勇んで公開しました。
が、私のメインサーバでこのプラグインが動作してくれません。
お手数ですが、どなたか問題解決にご協力いただけませんか。

開発環境

WINDOWS XP( XAMPP 1.6.4 installed)
PHP: 5.2.4
MySQL Server: 5.0.45
Apache: Apache/2.2.6
Nucleus: 3.3(UTF-8 )

メインサーバ

Linux
PHP: 4.1.2
MySQL Server: 3.23.58
Apache: Apache/1.3.27
Nucleus: 3.3(UTF-8 )

メインサーバの内部処理に使われている符号化方式はEUC-JPなので、.htaccessでUTF-8にMB変換をかけています。

<IfModule mod_php4.c>
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag  mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
</IfModule>

「メインサーバのPHPをバージョンアップしなさい」とのアドバイスはいただいているのですが、サーバ管理責任者の腰がなかなか重くて。脆弱性の問題もお話したのですが、なかなか同意を得られていないのが現状です。
なんとか今の環境で動作するようにしたいと思いますので、ご協力ください。お願いします。

いくつか可能性をつぶそうと思って以下を確認しました。

1.event_eventname()をevent_EventName()にしました。
開発者用マニュアルを読むと、大文字と小文字の区別がありました。
WINDOWS OSは大文字小文字を区別しないので、開発環境で動いたのはこの影響かと思ったのですが、やはりメインサーバでは動きません。

2.それぞれのイベントで「exit」を記述
それぞれのイベントに処理がわたっていないのかなと思いましたが、ちゃんと(笑)白紙ページが帰ってきました。

3.ACTIONLOG::add()をプラグインのコード内に記述して、それぞれのイベントの処理でこれを呼び出す
やはり管理操作履歴に書き出しがされません。

4.ひょっとしてEU-JPとかSHIFT-JISで送信しちゃいないだろうか?
UTF-8で送信してもだめでした。というか、プラグインのコアコードは日本語を含んでいないので意味ないか。。。

5.コアが残す履歴はちゃんと残っているのだろうか
問題なく残っています。

こんな状況なのでトラブルは、ACTIONLOG::add()のsql_query($query)あたりにあるのかなと思うのですが、

$message = addslashes($message);
$timestamp = date("Y-m-d H:i:s",time());
$query = "INSERT INTO " . sql_table('actionlog') . " (timestamp, message) VALUES ('$timestamp', '$message')";
sql_query($query);

どうもここら辺は素人なので、わかりかねます。
ひょっとしてaddslashes()あたりが問題を起こしていたりするのでしょうか。
.htaccessでグローバル変数やマジック・クオート関連の設定をいじっています。

php_flag register_globals off
php_flag magic_quotes_gpc on
php_flag magic_quotes_sybase off

万策尽きてしまいました。どなたか心当たりがありましたら、アドバイスをよろしくお願いします。

オフライン

#3 2008-01-03 17:14:37

yu
メンバー
From: 神奈川
登録日: 2003-11-15
投稿: 718
ウェブサイト

Re: NP_ActionLogPlus

mysqlのバージョンの差異かも?

http://dev.mysql.com/doc/refman/4.1/ja/datetime.html

(timestamp型を使ってれば、ですが)
該当カラムをdatetime型に変えるなどしたほうがよいかもしれません。


Nucleusだとか
http://nucleus.datoka.jp/

オフライン

#4 2008-01-07 15:03:58

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

調べてみました。
timestampフィールドのフィールド型は「datetime」です。

以下の環境のサブサーバでは成功しています。

Linux
PHP: 4.4.6
MySQL Server: 4.0.24-standard-log (3.23.49)
Apache: 1.3.xx
Nucleus: 3.23(UTF-8 )

あ、Nucleusのバージョン上げるの忘れてた。

オフライン

#5 2008-01-20 18:27:49

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

Mocchiです。

この週末に私の作ったプラグインをざっと見直しています。
ActionLogPlusも修正を加え、ver.0.2.2としました。

[list=]
[*]プラグイン用イベントをたくさん設定[/*]
[*]外部ファイル管理に関するイベントに対応[/*]
[*]タイプミスを修正[/*]
[*]ヘルプファイルの作成[/*][/list]

プラグイン用イベントをたくさん設定とありますが、以前shizukiさんが

ていうか、メンバー編集時の通知イベントと、ログ書き込み&短縮時の通知イベント実装キボンヌ

と言っていたのを思い出したので(笑)それも盛り込む形でイベントを追加してあります。このプラグインをインストールしていると、それらの通知イベントを利用して、さらにプラグインを開発することができます。(その際は、依存関係を記述するgetPluginDep()が必要になるのでしょう、きっと)
イベントの一覧は添付のHTMLファイルを参照してください。

また、外部ファイル管理に関するイベントに対応とありますが、Nucleus CMS ver.3.3から、ファイルアップロード時の通知イベントが追加されました。それへの対応と、NP_EachBlogDirNP_ImprovedMediaにこのたび、ファイル名変更時とファイル削除時の通知イベントを設定したので、それへの対応があります。必ずしもこれらプラグインをインストールしなければならないわけではないので、ご安心下さい。

それ以外にタイプミスの修正と、ヘルプファイルの作成があります。

どうぞご利用ください。

# しかし、私のメインサーバでは動かないのが悲しい。早く原因を突き止めたいけど、よくわからない。。。

オフライン

#6 2008-01-22 12:47:26

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

Mocchiです。解決しました。
メインサーバに別なNucleus CMS(NucleusA)をインストールして、同時にphpMyAdminもインストール。
phpMyAdminからNucleusAのactionlogテーブルのtimestampフィールドのフィールド型を「Datetime(14)」から「VARCHAR(255)」に変更しました。
メインサーバでテスト環境を構築したかったからです。
そうして適当にいじっていたら、ちゃんと履歴が残るようになったので、改めてtimestampフィールドのフィールド型を「Datetime(14)」に戻しました。

すると、メインのNucleus CMS(NucleusM)の管理操作履歴が正常に動くようになりました。
ACTIIONLOGテーブルを直接いじることなしにです。
いったいなんだったんだろう?
あるテーブルをいじることによって、MySQL全体の環境が変わってしまう、なんてことがあるのでしょうか。
(あったらそれはそれでこまるけれど)

不思議だけど、解決しました。
yuさん、どうもありがとうございました。

オフライン

#7 2008-01-23 19:44:38

Mocchi
メンバー
登録日: 2006-11-19
投稿: 438

Re: NP_ActionLogPlus

Mocchiです。

ここ数日、表記のプラグインを使っていたら、不具合が出るわ出るわ・・・本当にすみません。
特に自動書き出しが動かないのは参りました。WINDOWS環境で開発していたので、ディレクトリ・ファイルのアクセス権限、所有者、セーフモードなど、詰めなければならない部分がなおざりになっていました。
今後はもっとデバックとテストを繰り返すようにします。

NP_ActionLogPlus Version 0.2.2の不具合
[list=]
[*]ファイル・ディレクトリのアクセス権限や所有者の問題から、ファイルが自動書き出しされない[/*]
[*]ログファイル管理画面からログがダウンロードできない場合がある[/*][/list]

そこで、NP_ActionLogPlus Version 0.2.3を公開します。
[list=]
[*]コードの修正。[/*]
[*]古いバージョンのファイル構成を引き継いだ上で、ディレクトリ・ファイルの追加[/*]
[*]ログファイルの保存場所を、プラグイン専用ディレクトリ内のログファイル専用ディレクトリに指定。アクセス権限を「777」に設定してください。このディレクトリには「.htaccess」でアクセス制御をしてあります。[/*]
[*]ログファイルの拡張子を「*.log」に変更[/*][/list]

特にプラグイン・ディレクトリ内にフル・アクセスできるフォルダを設定してしまっているため、セキュリティ・リスクが心配です。みなさんにアドバイスをいただけたら、助かります。


追伸: 前回の解決しました書き込みですが、実はサーバ環境がPHP5にアップグレードしていたためだということがわかりました。問題は解決したけど、どうしてなのかやはりわからないままです。気になるなぁ。

オフライン

Board footer