it-swarm-eu.dev

Mohu vypnout mezipaměť pro vývojové nasazení?

Na vývojové platformě může být ukládání do mezipaměti bolest. Mohu to vypnout? Ovlivní to některý z modulů, které to vyžadují?

22
palbakulich

Nainstalujte devel modul , který přidá administrátorům možnost vymazat mezipaměť. Naleznete blok devel, který chcete přidat do oblasti pro rychlé vymazání mezipaměti, nebo pokud nainstalujete nabídka pro správce a v levém horním rohu získáte rychlé menu pro vymazání různých mezipamětí v Drupalu.

Pokud se vám líbí příkazový řádek install drush a použijte drush cc all příkaz k vymazání mezipaměti vašich stránek. Dejte si pozor, aby aktuálně drush cc nevymazal mezipaměť Varnish, pokud je to použitelné pro vaše nastavení.

19
budda

Pokud používáte Drupal 7, můžete vždy nastavit ukládání do mezipaměti pomocí DrupalFakeCache, který se obvykle používá pouze během procesu instalace. Chcete-li to nastavit, přetáhněte následující fragment kódu do souboru 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

Stránka Výkon v administraci> konfigurace webu vám umožní povolit/zakázat ukládání vybraných prvků webu do mezipaměti. Šablony motivů se obvykle ukládají do mezipaměti trvale, ale lze je vyprázdnit na stejné stránce výkonu.

Modul 'Administration menu' nabídne zástupce na nástrojové liště, pokud je třeba vyprazdňování mezipaměti provádět pravidelněji - během tématu dev jsem neustále blikající.

4
Storsey

Pokud vím, neexistují žádné moduly, které vyžadují ukládání do mezipaměti. Pokud ji nechcete vypnout, můžete ji vymazat v Site Settings > Performance sekce.

I když je ukládání do mezipaměti zakázáno Drupal nerozpozná nové soubory přidané do témat, dokud nevymažete mezipaměť.

Existuje několik informací o různých způsobech, jak vymazat mezipaměť na Drupal.org

4
Paul Jones

Kromě metod zmíněné Steve H , použití modulu Devel otevírá několik dalších možností, včetně:

  • Opětovné vytvoření mezipaměti motivů při každém načtení stránky (užitečné, pokud pracujete na souborech se šablonami)
  • Blok, který poskytne snadný přístup k funkci prázdné mezipaměti a funkci opakované instalace.

S modulem Devel a ukládáním do mezipaměti vypnutým pod Výkon je jedinou další hlavní mezipamětí, se kterou se v rutinním vývoji potkáte, je router nabídek, který lze přestavěn pomocí Devel nebo Admin Menu, jak Steve zmínil.

4
user7

Jednou důležitou věcí je, že pokud máte spoustu stylů stylů (buď z vašeho tématu nebo z modulů), pak vypnutí optimalizace CSS souborů má potenciál rozbít váš web v IE.

I když ve skutečnosti není ukládání do mezipaměti, je na stejné stránce nastavení a často se používá s mezipamětí.

Odkaz „Vyprázdnit všechny mezipaměti“ v modulu nabídky správce je mimochodem fantastický.

4
epersonae

Pokud používáte Drupal 6), modul „ Cache Disable “ může být užitečný pro tuto úlohu, pokud si nepřejete [z nějakého důvodu] instalovat těžší moduly jako Devel.

3
wildpeaks

Množství mezipaměti použité s Drupal někdy může být šílené).

Zde jsou běžné metody deaktivace a zúčtování Drupal cache) as tím spojené.


ZAKÁZAT KACHY:

Všimněte si, že nemůžete zakázat všechny mezipaměti, protože některé z nich vyžaduje Drupal.

Zde je způsob deaktivace mezipaměti přidáním následujících řádků do souboru nastavení:

// 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;

Pokud zakážete všechny mezipaměti, bude váš web velmi pomalý, takže se nedoporučuje pro žádné jiné prostředí osvobozené od vašeho vývojového stroje.


VYMAZAT KACHY

XCache

Vymažte mezipaměti XCache, pokud se používá:

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

Nebo vymažte mezipaměť v XCache na panelu administrátora (/ xcache-admin), pokud výše nebude fungovat.

eAccelerator

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

[~ # ~] apc [~ # ~]

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

OPCache

Vymažte PHP OPCache, pokud používáte s PHP> = 5,5)

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

Poznámka: Výše ​​uvedený příkaz CLI nevymaže mezipaměť pro Apache podle: Opcache - Vyčistit mezipaměť v PHP5.4 a nižších .

memcached

Pokud používáte memcached, měli byste vymazat, restartovat nebo zabít memcached jedním z následujících způsobů:

Jako uživatel (jeden z těchto):

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

Jako root (jeden z těchto):

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

Doporučujeme také nainstalovat modul memcached s následujícím řádkem do souboru nastavení:

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

Ukládané mezipaměti jsou tedy vymazány na standardní Drupal clear cache).

Lak

Pokud používáte Varnish, doporučujeme nainstalovat modul Varnish a do souboru nastavení nastavit následující řádek:

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

Mezipaměť Varnish by tedy byla vymazána společně na Drupal vymazat mezipaměť).

Případně můžete použít curl pro ruční vymazání stránek:

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

Přečtěte si více: Jak mohu vymazat mezipaměť Varnish?

Drupal

Vymazat Drupal cache pomocí 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();'

To samé můžete udělat při/admin/config/development/performance, protože někdy jsou cache UI vymazány lepším způsobem než z CLI.


Zde je užitečný skript Shell pro vymazání všech mezipamětí:

#!/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

Stará otázka, ale viděl jsem, jak se objevila jako příbuzná s hledáním, které jsem dělal.

Téměř všechny metody čištění mezipaměti nakonec končí volání drupal_flush_all_caches na konci. Můžete si hrát s tím, že to budete volat za různých okolností ve svém vlastním kódu.

2
mpdonadio

můžeme použít jednu z následujících metod k vymazání mezipaměti v drupalu

1.) Můžeme jen navštívit adresu URL vaší_domény/admin/config/vývoj/výkon a kliknout na tlačítko Vymazat mezipaměť.

2.) Pokud jsme nainstalovali drush modul, můžeme vymazat cache pomocí tohoto drush cc all příkazu.

3.) Pokud máme přístup k databázi, můžeme vyčistit mezipaměť pomocí následujících příkazů (přímý přístup k produkční databázi se důrazně nedoporučuje; použijte místo toho jednu z alternativ, pokud je váš web „živý“)

TRUNCATE TABLE cache;

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; // všimněte si důležitých rozdílů od ostatních tabulek cache_ * - více informací níže

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.) Můžeme také napsat dotaz v našem souboru modulu db_query ("DELETE FROM {cache};");

5.) Můžeme použít drupal api pro vymazání mezipaměti jako cache_clear_all ()

6.) Můžeme také vymazat mezipaměť pomocí devel modulu nainstalovat devel modul a povolit "Developer/Development Block" tím můžeme vymazat mezipaměť

Další informace o formuláři cache_form, který má jiný účel než jiné mezipaměti _ tabulky:

  • základní dokumenty api pro drupal_flush_all_caches () říkají: „Nevymazávejte cache_form - nedokončené odesílání formulářů se může zlomit.“ Tento problém se týká pouze webů s aktivními uživateli a nikoli vývojových verzí.

  • jiné ruční metody čištění mezipaměti popsané v tomto příspěvku neovlivní cache_form

  • pokud potřebujete zmenšit velikost cache_form na produkčním webu, viz Velikost tabulky formuláře cache je obrovská

0
SynapseIndia