PowerCMS X ブログ
2025-12-19
前回のブログ記事「CacheManager プラグインでキャッシュをリセット・削除する」では、CacheManager プラグインのご紹介をいたしました。
CacheManager プラグインは非常に便利なプラグインなのですが、キャッシュデータの総量が多くなるとリソースやミドルウェア設定などの兼ね合いで『リクエストがタイムアウトになってしまい、キャッシュのリセット・削除が行えない』ケースがあります。
そこで、今回の記事では管理画面でのキャッシュのリセット・削除がタイムアウトしてしまう場合の対処方法を考えてみます。
ウェブサーバーがタイムアウトを起こしている場合、先ずはウェブサーバー側のタイムアウト設定を調整する事で解消する方法があります。
ウェブサーバーのタイムアウト設定値を調整することで解消すれば万々歳ですが、与えられている権限や制約によってはこちらの対応を行うことが難しい状況も考えられます。
PowerCMS X には便利なコマンドラインツールが標準でいくつも用意されています。
しかし、現在のところ「キャッシュをリセット・削除するコマンドラインツール」は同梱されていません [1]。
ということで本題です。
キャッシュをリセットするコマンドラインツール「clear_cache.php」を作成しました。
ダウンロード: clear_cache.zip (1.4KB)
clear_cache.php の実行イメージは以下の通りです。
cd /path/to/powercmsx
sudo -u apache php tools_ex/clear_cache.php --cache_id view_compiled,urlmap_compiled
※ 「/path/to/powercmsx」はご利用環境の PowerCMS X 設置ディレクトリに読み替えてください
因みに、PHP コマンドは必ずウェブサーバーの実行ユーザーで実行してください!
実行するユーザーによっては「[FAQ] モデルに追加したカラムが投稿画面に表示はされるがデータが保存されない」といった困った状況になるケースがあります。
オプションを指定しない、またはオプション「--help」を指定するとヘルプが表示されます。
# sudo -u apache php tools_ex/clear_cache.php
This script will reset and clear the cache.
Options:
-h, --help : This page.
--cache_id : The key of the cache to clear.
- app_cache
- compile_cache
- query_cache
- plugin_cache
- build_cache
- view_compiled
- urlmap_compiled
- user_permissions
- expired_sessions
- api_cache
Exapmle:
cd /path/to/powercmsx && php ./tools_ex/clear_cache.php --cache_id app_cache,compile_cache...
clear_cache.php でもキャッシュ管理画面と同様にリセット・削除したいキャッシュの種類をオプション「--cache_id」で指定します。
オプション「--cache_id」には、キャッシュの ID をカンマ区切りで複数指定できます。
| PowerCMS X のキャッシュ種類 | 「--cache_id」に指定するキャッシュ ID |
|---|---|
| アプリケーション・キャッシュ | app_cache |
| テンプレート・コンパイルキャッシュ | compile_cache |
| データベース・クエリキャッシュ | query_cache |
| プラグイン・キャッシュ | plugin_cache |
| ビルド・キャッシュ | build_cache |
| コンパイル済ビュー | view_compiled |
| コンパイル済URLマップ | urlmap_compiled |
| ユーザーの権限 | user_permissions |
| 期限切れのセッション | expired_sessions |
| APIキャッシュ | api_cache |
リセット・削除するキャッシュの種類はキャッシュ管理画面を確認するとイメージしやすいと思います。
ということで、今回は「キャッシュをリセットするコマンドラインツール」のご紹介でした。
キャッシュが管理画面からリセット・削除できない時にご活用ください。
カテゴリー:プラグイン | 技術情報 | トラブルシューティング
投稿者:たはかし