バージョン選択

フォーラム

メニュー

オンライン状況

90 人のユーザが現在オンラインです。 (77 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 90
もっと...

サイト内検索

質問 > その他 > data/cacheファイルの削除について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
patapata
投稿日時: 2011/2/1 12:54
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
data/cacheファイルの削除について
疑問に思ったので質問いたします。

data/cacheフォルダ内にある、mtb_constants.phpを削除
した場合、新たに作成されますが・・・・
(タイミングは、調べてません)

初期作成時の内容が
mtb_constants_init.php
の内容で作成されており、DBの情報で作成されません。

キャッシュ削除後
管理画面→システム設定→パラメータ設定にて一度OK
を押さないと、正常なキャッシュファイルが作成されず
デファイン値が全て初期状態のままとなってしまいます。

これは正常な動作でしょうか?
結構危険だと思われるのですが・・・どうなんでしょう


---現象確認方法(環境依存があるかもしれません)-------
1.管理画面のパラメータ設定で
 SAMPLE_ADDRESS1 を適当な値に代える。
2.サイトの会員登録画面で変更された値が表示されることを確認する。(サンプル住所)

3.data/cache/のmtb_constants.phpを削除する

4.サイトの会員登録画面でデフォルト値が表示されることを確認する。(サンプル住所)

5.data/cache/のmtb_constants.phpが初期状態なのを確認する

6.管理画面のパラメータ設定との内容が一致していないことを確認する

7.管理画面のパラメータ設定でOKを押す

8.data/cache/のmtb_constants.phpが更新されていることを確認する

9.サイトの会員登録画面で変更された値が表示されることを確認する。(サンプル住所)


--------------------------------------------
EC-CUBE 2.4.4 正式版
OS Linux
DBサーバ MySQL 5.0.77
WEBサーバ Apache
PHP 5.1.6
red
投稿日時: 2011/2/1 13:05
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: data/cacheファイルの削除について
こんにちは

そのような動きで作られていますので正常な動作ではあると思います

個人的にはおかしいと思いますので修正されるべきかと思います
patapata
投稿日時: 2011/2/1 13:12
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: data/cacheファイルの削除について
正常なのか(環境依存じゃないのか)・・・

安易にキャッシュ削除してくださいとかは、こうゆうのがあると、言えないですね。知らなかった(ーー;)

調べたのはmtb_constants.phpだけですが類似系があるとかなり怖いので、改修してほしいところです。
これに気づかないとかなりハマりそうです。

というか、最近のスレはこれが原因か?と思って書いてみました。
nanasess
投稿日時: 2011/2/1 13:34
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: data/cacheファイルの削除について
2.4.4 までは, mtb_constants.php が存在しないと, DB アクセスもできなくなります.
そのため, mtb_constants_init.php を初期ファイルとして扱うようになっています.

2.11.0 で, SC_Query が単独で動作するようになっていると思うので, 常に DB の値で data/cache/mtb_constants.php を作成することも可能かもしれません(未検証)
patapata
投稿日時: 2011/2/1 14:07
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: data/cacheファイルの削除について
ふむふむ
では、現状ではシステム設定系を変更する場合
(オーナーズサイトでのインストールや使用テンプレート変更、モジュール追加等)

がある場合は、設定後
・mtb_constants_init.phpをバックアップを取って
mtb_constantsの内容で上書きした方が安全だということですね。

因みに、
data/cache/の他のファイルも、デフォルトのファイルらしきものはありませんが、全て同様の動作をするのでしょうか?
nanasess
投稿日時: 2011/2/1 14:18
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: data/cacheファイルの削除について
引用:

patapataさんは書きました:

因みに、
data/cache/の他のファイルも、デフォルトのファイルらしきものはありませんが、全て同様の動作をするのでしょうか?


ほかの mtb_* は, キャッシュが存在しない場合は, 常に DB からデータを取得するので大丈夫です.
キャッシュが無くても, DBアクセスは可能ですので.
patapata
投稿日時: 2011/2/1 15:47
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: data/cacheファイルの削除について
ご回答ありがとうございます。
現状処理、了解しました。以後覚えておきます。

しかし、キャッシュを削除すると古いデータになるというのは混乱する原因になると思われますので、できれば改修がされることを願います。


おそらく、
この処理に気づいていないで、

・キャッシュ削除したら動いた。
デフォルト値に戻っただけであり、DBの情報を見ていなく、テンプレート変更やパラメータ変更等で再発する。

・モジュールインストール等で、うまく反映されずキャッシュ(mtb_constants.php)削除で別の問題を引き起こす。

・システム設定系の値を変更するインストールモジュールで、mtb_constants.php更新忘れ

というケースが想定されバグの温床になりかねません。
nanasess
投稿日時: 2011/2/1 16:06
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: data/cacheファイルの削除について
さっと見てみましたが, 2.11.0 でも以下の定数が SC_Query に居るので, すぐに修正は難しそうです.

DEBUG_MODE
PEAR_DB_DEBUG
PEAR_DB_PERSISTENT
CHAR_CODE
LOG_REALFILE

2.11.0 に入るかどうか難しいところですが, 後ほどチケット登録しておきますね.
red
投稿日時: 2011/2/1 18:04
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1568
Re: data/cacheファイルの削除について
ver2.4.4で作成してみました。
全体の動作検証をしたわけではないのでご注意ください

SC_Initial.phpのdefineConstantsを修正します

    function defineConstants() {

        $errorMessage = "<div style='color: #F00; font-weight: bold; "
            . "background-color: #FEB; text-align: center'>"
            . CACHE_PATH
            . " にユーザ書込み権限(777等)を付与して下さい。</div>";

        // 定数を設定
        if (is_file(CACHE_PATH . "mtb_constants.php")) {
            require_once(CACHE_PATH . "mtb_constants.php");
        } elseif (DEFAULT_DSN != "pgsql://nobody:password@localhost:5432/eccubedb") {
            require_once(CLASS_EX_PATH . "db_extends/SC_DB_MasterData_Ex.php");
            require_once(CLASS_EX_PATH . "db_extends/SC_DB_DBFactory_Ex.php");
            require_once(CLASS_PATH . "SC_DbConn.php");

            require_once(CLASS_PATH . "SC_Query.php");
            // 必須なものだけここで無理やり定義する
            define('PEAR_DB_PERSISTENT', false);
            define('MASTER_DATA_DIR', DATA_PATH . "cache/");

            $masterData = new SC_DB_MasterData_Ex();
            $mtb_constants = $masterData->getDBMasterData("mtb_constants");

            $masterData->createCache("mtb_constants", $mtb_constants, true,
                                     array("id", "remarks", "rank"));

            require_once(CACHE_PATH . "mtb_constants.php");

            // キャッシュが無ければ, 初期データからコピー
        } elseif (is_file(CACHE_PATH . "../mtb_constants_init.php")) {

            $mtb_constants = file_get_contents(CACHE_PATH . "../mtb_constants_init.php");
            if (is_writable(CACHE_PATH)) {
                $handle = fopen(CACHE_PATH . "mtb_constants.php", "w");
                if (!$handle) {
                    die($errorMessage);
                }
                if (fwrite($handle, $mtb_constants) === false) {
                    die($errorMessage);
                }
                fclose($handle);

                require_once(CACHE_PATH . "mtb_constants.php");
            } else {
                die($errorMessage);
            }
        } else {
            die(CACHE_PATH . "../mtb_constants_init.php が存在しません");
        }
    }


よろしくおねがいします
nanasess
投稿日時: 2011/2/1 23:31
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: data/cacheファイルの削除について
とり急ぎ, チケットを登録しておきました.
http://svn.ec-cube.net/open_trac/ticket/988
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,299名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.