開発展開のキャッシュをオフにできますか?


22

開発プラットフォームでは、キャッシュが苦痛になる場合があります。オフにすることはできますか?それを必要とするモジュールに影響しますか?

回答:


19

管理者用のキャッシュクリアオプションを追加するdevelモジュールをインストールします。キャッシュをすばやく消去するために領域に追加する開発ブロックを見つけるか、Drupalのさまざまなキャッシュを消去するための管理メニューをインストールして左上にクイックメニューを表示する場合。

コマンドラインインストールブラシが気に入ったら、drush cc allコマンドを使用してサイトのキャッシュをクリアします。現在のccは、設定に適用できる場合、ニスキャッシュをクリアしないことに注意してください。


9

Drupal 7を使用している場合、DrupalFakeCacheを使用するようにキャッシュをいつでも設定できます。これは通常、インストールプロセス中にのみ使用されます。それを設定するには、settings.phpに次のコードスニペットをドロップします。

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';

4

管理>サイト構成の「パフォーマンス」ページでは、選択したサイト要素のキャッシュを有効/無効にすることができます。テーマテンプレートは通常、より永続的にキャッシュされますが、同じ「パフォーマンス」ページ内でフラッシュできます。

「管理メニュー」モジュールは、キャッシュのフラッシュをより定期的に実行する必要がある場合、ツールバーにショートカットを提供します-テーマ開発中、私は常にフラッシュしていることに気付きます。


4

私の知る限り、キャッシュを必要とするモジュールはありません。オフにしたくない場合は、Site Settings > Performanceセクションでクリアできます。

キャッシュを無効にしても、Drupalはキャッシュをクリアするまでテーマに追加された新しいファイルを認識しません。

Drupal.orgでキャッシュをクリアするさまざまな方法に関する情報があります


4

Steve Hが言及した方法に加えて、Develモジュールを使用すると、次のようないくつかのオプションが開きます。

  • ページの読み込みごとにテーマキャッシュを再構築します(テンプレートファイルで作業している場合は便利です)
  • 空のキャッシュ機能と再インストール機能に簡単にアクセスできるブロック。

パフォーマンスの下でDevelモジュールとキャッシングをオフにすると、ルーチン開発で実行される他の主要なキャッシュは、Steveが述べたようにDevelまたはAdmin Menuを使用して再構築できるメニュールーターのみです。


4

注意すべき重要な点は、スタイルシートが多数ある場合(テーマまたはモジュールから)、CSSファイルの最適化をオフにすると、IEでサイトが破損する可能性があることです。

実際にはキャッシングではありませんが、同じ設定ページにあり、キャッシングでよく使用されます。

ところで、管理メニューモジュールの[すべてのキャッシュをフラッシュ]リンクは素晴らしいです。


IEが心配な場合は、drupal.org
project / ie_css_optimizerを


2

古い質問ですが、私がやっていた検索に関連するものとしてポップアップ表示されました。

ほとんどすべてのキャッシュ消去メソッドは、最終的にdrupal_flush_all_cachesを呼び出します。独自のコードでさまざまな状況でこれを呼び出すことで遊んでみることができます。


2

Drupalで使用されるキャッシュの量は、ときどき狂う可能性があります。

Drupalキャッシュを無効化およびクリアし、それに関連する一般的な方法を次に示します。


キャッシュの無効化:

一部のキャッシュはDrupalで必要とされるため、すべてのキャッシュを無効にすることはできません。

以下に、設定ファイルに次の行を追加してキャッシュを無効にする方法を示します。

// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;

すべてのキャッシュを無効にすると、Webサイトが非常に遅くなるため、開発マシンを免除する他の環境にはお勧めできません。


キャッシュのクリア

XCache

使用されている場合、XCacheキャッシュをクリアします。

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"

または、管理パネル(/ xcache-admin)でXCacheのキャッシュをクリアします(上記が機能しない場合)。

eAccelerator

drush eval "function_exists('accelerator_reset') && accelerator_reset();"

APC

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"

OPCache

PHP> = 5.5で使用する場合、PHP OPCacheをクリアします

drush eval "function_exists('opcache_reset') && opcache_reset();"

注:上記のCLIコマンドは、Apcacheのキャッシュを消去しません:Opcache-PHP5.4以前のキャッシュを消去します。

memcached

memcachedを使用している場合は、次のいずれかの方法でmemcachedをクリア、再起動、または強制終了する必要があります。

ユーザーとして(これらのいずれか):

echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server

ルートとして(これらの1つ):

/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.

また、設定ファイルに次の行を追加してmemcachedモジュールをインストールすることをお勧めします。

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';

したがって、Memcachedキャッシュは標準のDrupalクリアキャッシュでクリアされます。

ワニス

Varnishを使用している場合は、Varnishモジュールをインストールし、設定ファイルに次の行を設定することをお勧めします。

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';

したがって、ワニスのキャッシュは、Drupalのクリアキャッシュで一緒にクリアされます。

または、curlを使用してページを手動でクリアすることもできます。

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123

詳細:ワニスのキャッシュをクリアするにはどうすればよいですか?

Drupal

Drushを使用してDrupalキャッシュをクリアします:

drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'

/ admin / config / development / performanceでも同じことを行うことができます。これは、CLIよりも優れた方法でUIキャッシュがクリアされる場合があるためです。


すべてのキャッシュをクリアするための便利なシェルスクリプトを次に示します。

#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.

3
:OPCacheは、例えばCLIからの作業は、上の解説は表示されませんstackoverflow.com/questions/17716639/...
ラース

0

次のいずれかの方法でdrupalのキャッシュをクリアできます

1.)URL your_domain / admin / config / development / performanceにアクセスし、[キャッシュのクリア]ボタンをクリックするだけです。

2.)drushモジュールをインストールしている場合、このdrush cc allコマンドでキャッシュをクリアできます 。

3.)データベースにアクセスできる場合、次のコマンドを使用してキャッシュをクリアできます(本番データベースへの直接アクセスはお勧めできません。サイトが「ライブ」の場合は、代わりのいずれかを使用してください)

TRUNCATE TABLEキャッシュ。

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; //他のcache_ *テーブルとの重要な違いに注意してください-以下の詳細情報を参照してください

TRUNCATE TABLE cache_image;

TRUNCATE TABLE cache_menu;

TRUNCATE TABLE cache_page;

TRUNCATE TABLE cache_path;

TRUNCATE TABLE cache_token;

TRUNCATE TABLE cache_update;

4.)モジュールファイルdb_query( "DELETE FROM {cache};");にクエリを書き込むこともできます。

5.)cache_clear_all()のようなキャッシュをクリアするためにdrupal APIを使用できます

6.)develモジュールをインストールしてdevelモジュールをインストールし、「Developer / Development Block」を有効にしてキャッシュをクリアすることもできます。

他のcache_テーブルとは異なる目的を持つcache_formの詳細情報

  • drupal_flush_all_caches()のコアAPIドキュメントには、「cache_formをクリアしないでください-進行中のフォーム送信が中断する可能性があります」と書かれています。この懸念は、アクティブユーザーがいるサイトにのみ適用され、開発バージョンには適用されません。

  • この投稿で説明されているキャッシュをクリアする他の手動の方法はcache_formに影響しません

  • 本番サイトでcache_formのサイズを縮小する必要がある場合は、「キャッシュフォームテーブルのサイズが非常に大きい」を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.