キャッシュ機能

a-blog cms では複数のキャッシュを使い、パフォーマンスを高めています。
ここでは使用されているキャッシュの種類とクリア方法を確認しましょう。

キャッシュの種類

ページ キャッシュ

CMSでレンダリングされたHTMLをキャッシュします。このキャッシュにより2回目のアクセスは、ほとんどのCMSの処理を飛ばすことができるので、 表示速度に大きく影響します。特に理由がなければ「有効」にしましょう。詳しくは「ページキャッシュについて」をご確認ください。

テンプレート キャッシュ

テンプレートをキャッシュします。テンプレートキャッシュがあることにより、テンプレートの組み立てを毎回することがなくなるので、 ページ表示速度が高速になります。テンプレート修正した時などはキャッシュをクリアする必要があるため注意事項がいくつかあります。 詳しくは「テンプレートキャッシュについて」をご確認ください。

コンフィグ キャッシュ

CMSのコンフィグ設定をキャッシュします。特にキャッシュについては意識する必要はなく、コンフィグを変更すると自動的にキャッシュはクリアされるようになります。

カスタムフィールド キャッシュ

コンテンツのカスタムフィールド情報をキャッシュします。特にキャッシュについては意識する必要はなく、コンテンツ更新時などに自動的にキャッシュはクリアされるようになります。

モジュール キャッシュ

モジュールの出力情報をキャッシュします。モジュールID化してキャッシュを設定した場合 や、Feed_ExListモジュールやJson_2Tplなどの外部アクセスが必要なモジュールでも利用されます。

一時的なキャッシュ

さまざまな情報をキャッシュします。例えばエントリーの情報や、プログラムの変数などをキャッシュしています。 特にキャッシュについて意識する必要はなく、コンテンツ更新時などに自動的にキャッシュはクリアされるようになります。

キャッシュのクリア方法

キャッシュのクリア方法について説明します。

ページキャッシュ以外のクリア方法

ページキャッシュ以外のキャッシュは 「ルートブログ」で「編集者以上」 のユーザーのみキャッシュのクリアが可能です。 ルートブログのダッシュボードで、クリアしたいキャッシュにチェックをつけて「キャッシュをクリア」ボタンを押してください。



ページキャッシュのクリア方法

ページキャッシュのクリアは「編集者以上」のユーザーが各ブログでキャッシュをクリアできるようになっております。
ダッシュボードで「ページキャッシュ」にチェックをつけて「キャッシュをクリア」ボタンを押してください。

各ブログでキャッシュクリアをすると、そのブログだけのキャッシュがクリアされるわけではなく、 各ブログのページキャッシュの設定によってクリア範囲が変わります。 詳しくは「ページキャッシュについて」をご確認ください。


Ver. 3.2.7 & Ver. 3.1.60 リリースのお知らせ


この記事では、2025年10月31日にリリースした Ver. 3.2.7Ver. 3.1.60 の修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

リリースノート

Ver. 3.2.7 修正点

  • CMS-7398 Undefined array key \"text_tag_xxxxxxxxxx\" エラーを修正
  • CMS-7399 @verbatim ブロックを利用しても include したファイル内で波括弧が削除されてしまう問題の修正
  • CMS-7400 API 機能(v1) で、メディアなどのアセット系のURLが絶対パスに変換されて出力されてしまう問題の修正
  • CMS-7401 setup プログラムからのDBアップデートだとDBのデータコンバート機能が動作しない問題の修正

Ver. 3.1.60 修正点

  • CMS-7403 setup プログラムからのDBアップデートだとDBのデータコンバート機能が動作しない問題の修正

リリースノートの補足


CMS-7401 setup プログラムからのDBアップデートだとDBのデータコンバート機能が動作しない問題の修正

a-blog cms Ver. 3.2.6 および Ver. 3.1.59 において、メンテナンスプログラム(setup)からのデータベースアップデート時にデータコンバ ート機能が正常に動作しない問題を修正しました。

修正内容

セットアッププログラム(setup/update.php)からのDBアップデート時に、以下のデータコンバート処理が実行されない問題を修正し ました。(管理画面からのアップデートでは本不具合は発生しません。

  • カスタムユニットのデータを acms_fieldテーブル・acms_field_revテーブルに移行する処理

  • ユニットの配置情報(column_align)を状態情報(column_status)として扱えるように変更する処理

  • 監査ログの秘匿化項目をマスク化する処理

本修正により、メンテナンスプログラム(setup)からのアップデートでも、オンラインアップデートと同様にデータコンバート機能が正常に動作するようになりました。

影響範囲

データベースアップデートが正常に実行されなかった場合、以下のような問題が発生する可能性があります。

  • Ver. 3.2 で非表示ユニットが表示されてしまう問題

  • Ver. 3.2 でカスタムユニットのデータが、エントリー編集画面や公開ページで表示されない

  • Ver. 3.2 及び Ver. 3.1 で過去の監査ログに記録されたパスワードやメールアドレスなどの機密情報が、マスク化されずに平文のまま残ってしまう

本バージョン(Ver. 3.1.60 / Ver. 3.2.7)へアップデートすることで、上記のデータコンバート処理が自動的に実行され、これらの問題が解消されます。

特に、非表示ユニットが表示されてしまう問題については、意図しない情報の公開につながる可能性があるため、該当する環境では早急にアップデートを実施することを推奨します。


最後に

該当する問題がございましたら、できるだけ早めのバージョンアップをご検討ください。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。

今後ともどうぞよろしくお願いいたします。

テンプレートキャッシュについて

テンプレートキャッシュについて詳しくご紹介します。

テンプレートキャッシュを有効にする

「private/config.system.yaml」に以下の記述をすると機能が有効化されます。

template_cache: on

3系の「config.system.yaml」はデフォルトで、テンプレートキャッシュが有効になっています。よって2系からのアップデートの場合は、通常「config.system.yaml」を更新しないため、テンプレートキャッシュはオフの状態となっております。

また「DEBUG_MODE」時はテンプレートキャッシュが有効になりません。 テンプレートキャッシュを使いたい場合は「config.server.php」で「DEBUG_MODE」を「0」にしましょう。

define('DEBUG_MODE', 0);

テンプレートキャッシュが使える条件(制限事項)

テンプレートキャッシュを有効にすると、テンプレートの作り方に制限が設けられます。
具体的には、インクルード文の中に使用できるグローバル変数が限定されます。

<!-- 以下のようなインクルード文で使用するグローバル変数が限定されます。 -->

@include("/admin/entry/bcd/%{BCD}.html")

使用できるグローバル変数

  • %{ECD}
  • %{BCD}
  • %{PBCD}
  • %{RBCD}
  • %{CCD}
  • %{PCCD}
  • %{RCCD}
  • %{ALIAS_CODE}
  • %{IS_ADMIN}
  • %{MODULE_NAME}
  • %{MODULE_ID}
  • %{ADMIN_PATH}
  • %{ADMIN_PATH_MID}
  • %{CATEGORY_LEVEL}

以下のような 正規表現 で全文検索すると、インクルード文の中でグローバル変数を使っている箇所を検索できます。 (@include方式のみ)

@include\(['"][^'"]*%\{[^\}]+\}

テンプレートキャッシュが有効時は、テンプレートを編集しても反映されません。
開発環境では「DEBUG_MODE」をオンにしてキャッシュされないようにして作業し、本番環境では「DEBUG_MODE」をオフにしてテンプレートキャッシュを有効にするのがいいでしょう。

本番環境反映時には、ダッシュボードからテンプレートキャッシュのクリアを忘れないようにしましょう。

インクルード文で使用できるグローバル変数の追加

Ver. 3.1.0 でインクルード文で利用できるグローバル変数を追加できる仕組みが追加されました。(カスタムグローバル変数も可)

Hook.php」を修正することにより、インクルード文で使えるグローバル変数を追加します。

extension/acms/Hook.php の「addGlobalVarsInIncludePath」メソッド

/**
 * テンプレートキャッシュ有効時に、
 * インクルードのパスで使用できるグローバル変数を設定
 *
 * ページ毎に値が違うようなグローバル変数を設定しないでください。
 * 値別にキャッシュが作成されるので、値の種類が多いとキャッシュの意味がなくなります。
 *
 * @param array $globalVarNames
 */
public function addGlobalVarsInIncludePath(&$globalVarNames)
{
    $globalVarNames = ['SESSION_USER_AUTH', 'HOGE']; // 例)インクルード文に %{SESSION_USER_AUTH} と %{HOGE} を使えるようにする
}

上記のコードのように、配列の形でグローバル変数名を指定します。すでにあるグローバル変数や「Hook.php」で追加したカスタムグローバル変数でも指定可能です。

Ver. 3.2.8 & Ver. 3.1.61 リリースのお知らせ


この記事では、2025年11月14日にリリースした Ver. 3.2.8Ver. 3.1.61 の修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

リリースノート

Ver. 3.2.8 修正点

  • CMS-7404 PHP-FPM/LiteSpeed環境で backgroundRedirect が確実に動作しない問題の修正
  • CMS-7406 flatpicker が閲覧画面で利用できなくなっている問題の修正
  • CMS-7407 MySQLのポートを変更している場合に、DB接続に失敗する問題を修正
  • CMS-7408 php8.4対応漏れの対応
  • CMS-7410 Ver. 3.2.4 より、閲覧画面側のエントリー詳細ページでバージョン管理ボックスが表示されない問題の修正
  • CMS-7412 API機能のレスポンスがキャッシュされてしまい、APIキー確認やその他制限を無視してアクセスできる問題を修正
  • CMS-7414 Summary系モジュールでカテゴリで絞り込みをしていない時、非公開カテゴリーのエントリーが一覧に表示されてしまう問題を修正
  • CMS-7415 CSVインポートで、ファイル内容やPHP環境によっては、タイプエラーでインポートできない問題を修正
  • CMS-7416 ユニットメニューにないユニットタイプを利用しているとラベルが表示されない問題の修正
  • CMS-7402 フォーム設定に不備がある場合、管理者用のエラーメッセージを表示する
  • CMS-7418 メールテンプレート内のIFブロックが正常に動作しない問題を修正

Ver. 3.1.61 修正点

  • CMS-7405 PHP-FPM/LiteSpeed環境で backgroundRedirect が確実に動作しない問題の修正
  • CMS-7409 Ver. 3.1.57 より、閲覧画面側のエントリー詳細ページでバージョン管理ボックスが表示されない問題の修正
  • CMS-7413 API機能のレスポンスがキャッシュされてしまい、APIキー確認やその他制限を無視してアクセスできる問題を修正

最後に

該当する問題がございましたら、できるだけ早めのバージョンアップをご検討ください。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。

今後ともどうぞよろしくお願いいたします。