a-blog cms Ver. 3.0 系 の APCuキャッシュに関する不具合について
a-blog cms Ver. 3.0系で、 APCu というphp共有メモリキャッシュ について問題が見つかりました。 同じphp実行ユーザーで動作させる a-blog cms 環境がサーバー内に複数ある場合、別々の a-blog cms でもキャッシュが共有されてしまう可能性がございます。
対象となる条件 (AND条件)
- ご利用のサーバーでAPCuが有効の場合
- 同サーバー内に複数の a-blog cms を設置
- .envファイルで、キャッシュにAPCuを指定している場合(デフォルト設定)
問題への対応方法1
Ver. 3.0.7 へのアップデートを行う事で、この問題は解消されます。
問題への対応方法2
APCuキャッシュが問題になりますので、APCuキャッシュを利用しないようにします。
ドキュメントルートにある 「.env」 ファイルを編集します。各項目のキャッシュドライバーに 「apcu」 が指定されている場合は、他のドライバーに変更します。
デフォルトの状態だと、以下の3つに 「apcu」 ドライバーが選択されています。
- テンプレートキャッシュ (ACHE_TEMPLATE_DRIVER)
- フィールド情報キャッシュ (CACHE_FIELD_DRIVER)
- 一時キャッシュ(CACHE_TEMP_DRIVER)
これは、他のドライバーに変更します。 テンプレートキャッシュ、フィールド情報キャッシュは、「file」、一時キャッシュは「memory」が推奨です。
# テンプレートのキャッシュをするドライバーを選択します
CACHE_TEMPLATE_DRIVER=file
CACHE_TEMPLATE_NAMESPACE=template
CACHE_TEMPLATE_LIFETIME=2678400
# フィールド情報のキャッシュをするドライバーを選択します
CACHE_FIELD_DRIVER=file
CACHE_FIELD_NAMESPACE=field
CACHE_FIELD_LIFETIME=86400
# 一時キャッシュで利用するドライバーを選択します
CACHE_TEMP_DRIVER=momory
CACHE_TEMP_NAMESPACE=temp
CACHE_TEMP_LIFETIME=10800
この度はご迷惑をおかけしてしまい申し訳ございません。
該当する内容の場合、バージョンアップなどご対応のほどよろしくお願いいたします。
今後とも a-blog cms をよろしくお願いいたします。