개발 배포를 위해 캐시를 끌 수 있습니까?


22

개발 플랫폼에서는 캐싱이 어려울 수 있습니다. 끌 수 있습니까? 필요한 모듈에 영향을 줍니까?

답변:


19

관리자에게 캐시 지우기 옵션을 추가하는 devel 모듈 을 설치하십시오 . 빠른 캐시 지우기를 위해 영역에 추가 할 devel 블록을 찾거나 관리자 메뉴 를 설치하고 왼쪽 상단에 Drupal의 다양한 캐시를 지우는 빠른 메뉴가 표시됩니다.

명령 행이 마음에 들면 install drushdrush cc all실행 하고 명령을 사용 하여 사이트 캐시를 지우십시오. cc가 현재 설정에 해당되는 경우 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에서 사이트가 손상 될 수 있습니다.

실제로 캐싱하지는 않지만 동일한 설정 페이지에 있으며 종종 캐싱과 함께 사용됩니다.

그런데 관리자 메뉴 모듈의 "모든 캐시 플러시"링크는 환상적입니다.



3

Drupal 6을 사용하는 경우, 어떤 이유로 든 Devel과 같은 더 무거운 모듈을 설치하지 않으려는 경우 " 캐시 비활성화 "모듈이 해당 작업에 유용 할 수 있습니다.


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;

모든 캐시를 비활성화하면 웹 사이트 속도가 매우 느려서 개발 시스템이 면제되는 다른 환경에는 권장되지 않습니다.


청산 캐시

XCache

사용되는 경우 XCache 캐시를 지우십시오.

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

위의 방법으로 문제가 해결되지 않으면 관리자 패널 (/ xcache-admin)의 XCache에서 캐시를 지우십시오.

전자 가속기

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 명령은 다음과 같이 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

루트로서 (이 중 하나) :

/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 지우기 캐시에서 지워집니다.

광택

니스를 사용하는 경우 니스 모듈 을 설치 하고 설정 파일에 다음 줄을 설정하는 것이 좋습니다 .

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

따라서 Drupal Clear Cache에서 Varnish 캐시가 함께 지워집니다.

또는 페이지를 수동으로 지우는 데 curl을 사용할 수 있습니다.

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

자세한 내용 : 니스 캐시를 지우려면 어떻게해야합니까?

드루팔

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();'

때때로 UI 캐시가 CLI보다 나은 방식으로 지워 지므로 / admin / config / development / performance에서 동일한 작업을 수행 할 수 있습니다.


다음은 모든 캐시를 지우는 데 유용한 쉘 스크립트입니다.

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

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 모듈로 캐시를 지울 수 있으며 이것으로 "개발자 / 개발 블록"을 활성화하여 캐시를 지울 수 있습니다.

다른 cache_ 테이블과 다른 목적을 가진 cache_form에 대한 자세한 정보 :

  • drupal_flush_all_caches ()의 핵심 API 문서는 "cache_form을 지우지 마십시오. 진행중인 양식 제출이 중단 될 수 있습니다."라고 말합니다. 이 문제는 개발 버전이 아닌 활성 사용자가있는 사이트에만 적용됩니다.

  • 이 게시물에 설명 된 캐시를 지우는 다른 수동 방법은 cache_form에 영향을 미치지 않습니다.

  • 프로덕션 사이트에서 cache_form의 크기를 줄여야하는 경우 캐시 양식 테이블 크기가 엄청나 다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.