XSERVERでエントリーを編集したのに古い情報が表示される(a-blog cms Ver. 3.0系)
レンタルサーバーのXSERVERで、a-blog cms Ver. 3.0.x を動かしている環境で、エントリーを編集したのに、古い情報が表示される問題が確認されております。
原因
キャッシュドライバーの「APCu」が原因で、XSERVERのある特定の環境の場合、キャッシュがPHPプロセス毎にキャッシュされてしまい、ランダムに古い情報が返ってきてしまいます。
再現する環境
- a-blog cms Ver. 3.0.0 以上
- キャッシュドライバーに「APCu」を指定している場合(デフォルト)
- XSERVERの「Xアクセラレータ」が OFFまたは「Ver. 1」の場合
対策1
おすすめの対策は、XSERVERのコントロールパネルにログインし、「Xアクセラレータ Ver. 2」 を有効にする方法です。パフォーマンスもよくなりますので、a-blog cms Ver. 3.0.0 以上をXSERVERでお使いの場合は是非ご利用ください。
対策2
キャッシュドライバーに「APCu」を利用しない方法でも解決できます。「.env」ファイルを編集して「APCu」を利用しないようにします。
# テンプレートのキャッシュをするドライバーを選択します
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=memory
CACHE_TEMP_NAMESPACE=temp
CACHE_TEMP_LIFETIME=10800
XSERVERは a-blog cms の動作環境としてもお勧めしているサーバー環境ですので、現状お手数ですが a-blog cms Ver. 3.0.0 以上をお使いの場合は、必ず「Xアクセラレータ Ver. 2」を指定するようにお願いいたします。
今後とも a-blog cms をよろしくお願いいたします。