web-dev-qa-db-ja.com

開発デプロイメントのキャッシュをオフにできますか?

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

23
palbakulich

devel module をインストールすると、管理者用のキャッシュクリアオプションが追加されます。キャッシュをすばやくクリアするためにリージョンに追加するdevelブロックを見つけるか、または admin men をインストールして左上にクイックメニューを表示し、Drupalでさまざまなキャッシュをクリアします。

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

20
budda

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';
9
Mikey P

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

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

4
Storsey

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

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

Drupal.org にキャッシュをクリアするさまざまな方法に関するいくつかの情報があります。

4
Paul Jones

メソッド Steve Hについて に加えて、 Devel モジュールを使用すると、さらにいくつかのオプションが開きます。

  • ページが読み込まれるたびにテーマキャッシュを再構築する(テンプレートファイルで作業しているテーマの場合に役立ちます)
  • 空のキャッシュ機能と再インストール機能への簡単なアクセスを提供するブロック。

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

4
user7

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

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

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

4
epersonae

Drupal 6を使用している場合、 " Cache Disable "モジュールはそのタスクに便利です。 [何らかの理由で] Develのような重いモジュールをインストールしたくない。

3
wildpeaks

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

Drupalキャッシュを無効にしてクリアする一般的な方法とそれに関連付けられている方法を次に示します。


DISABLING CACHES:

一部のキャッシュは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

Clear PHP OPCache with PHP> = 5.5を使用している場合

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

注:上記のCLIコマンドは、Apacheのキャッシュをクリアしません。 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

クリアDrupal Drushによるキャッシュ:

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.
2
kenorb

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

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

2
mpdonadio

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モジュールをインストールし、これによって「開発者/開発ブロック」を有効にします。これにより、キャッシュをクリアできます。

他のcache _テーブルとは異なる目的を持つcache_formの詳細:

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

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

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

0
SynapseIndia