Drupal 8 で、コアやモジュールをアップデートしたらエラーが出るようになったしまった場合の対処方法

Drupal 8 で、コアやモジュールをアップートしたらエラーが出るようになってしまった、というのは実はよくある。これは Drupal 8 がキャッシュの仕組みを積極的に取り入れたことも影響しているように思う。**WSOD(White Screen of Death)**になったり、Fatal エラーが出たら、以下をチェツクする。

  • /var/log/apache2/error.log のチェック
sudo tail -f /var/log/apache2/error.log
  • 「環境設定 | パフォーマンス」で、「CSSファイルを結合する」ならびに「 JavaScript ファイルを集約」をチェックオフ。
  • 「環境設定 | パフォーマンス」で、「すべてのキャッシュのクリアー」を試す。
  • Drush からキャッシュクリア
# cd コマンドで、Drupal 8 がインストールされているディレクトリに移動したあと
sudo drush -l <YOUR_SITE_URL> cr
  • なお、Drush から個別のキャッシュもクリアできるので試してみるのも吉。
# cd コマンドで、Drupal 8 がインストールされているディレクトリに移動したあと
sudo drush -l <YOUR_SITE_URL> cc
  • Drupal コンソール からキャッシュクリア
# cd コマンドで、Drupal 8 がインストールされているディレクトリに移動したあと
sudo drupal -l=<YOUR_SITE_URL> cr
  • 重要:以下のキャッシュ系テーブルはクリアしてよい。
TRUNCATE `cachetags`;
TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_config`;
TRUNCATE `cache_container`;
TRUNCATE `cache_data`;
TRUNCATE `cache_default`;
TRUNCATE `cache_discovery`;
TRUNCATE `cache_dynamic_page_cache`;
TRUNCATE `cache_entity`;
TRUNCATE `cache_library`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_render`;
TRUNCATE `cache_static`;
TRUNCATE `cache_toolbar`;
  • 以下のディレクトリ/ファイル(sites/default/files/css or js or php)は削除してよい。
sudo rm -fr sites/default/files/css; sudo rm -fr sites/default/files/js; sudo rm -fr sites/default/files/php
  • Class Not Found Error の場合、APC キャッシュに残っている可能性があるので Apache2 をリスタートする(ついでに memcached が動いていれば memcached サーバも、さらについでにこの際だから mysql も)。
sudo service apache2 restart; sudo service memcached restart; sudo service mysql restart
  • 残りディスク容量がゼロになっていないかチェックする
sudo df -h
  • 以上を試してもダメな場合、サーバ自体を再起動してみる。
sudo reboot

広告