web-dev-qa-db-fra.com

Vider le cache sans vous connecter

J'ai ajouté une instruction if autour du contenu rendu php dans mon fichier page.tpl.php. Le seul problème est que j'ai fait une erreur et l'ai accidentellement empêché de rendre le contenu sur n'importe quelle page. J'ai vidé le cache et me suis déconnecté pour le tester, et réalisant mon erreur, j'ai corrigé le fichier modèle. Mais maintenant, je ne peux pas me reconnecter pour effacer le cache à nouveau car mon site ne rendra pas le contenu et ne rendra donc pas la boîte de connexion.

Quelqu'un peut-il me donner un moyen de Drupal 7 pour se connecter sans la boîte de connexion (comme un moyen de rendre la boîte de connexion séparément au contenu) ou un moyen de vider le cache?

10
JamiePatt

La meilleure solution que j'ai trouvée à la fin était de le faire via phpmyadmin. Je me suis connecté et j'ai vidé toutes les tables qui avaient "cache" au début de leur nom. Facile si vous ne travaillez pas dans l'urgence.

6
JamiePatt

je. Si vous avez installé drush (http://drupal.org/project/drush) - si vous ne l'avez pas, pensez-y la prochaine fois :), ouvrez la console (WIN + R) dans Windows ou Ctrl + Alt + T sous Linux pointez sur le dossier de votre site (par exemple cd /www/mydrupalsite/ et tapez:

 $ drush cc all

à partir de la ligne de commande.

ii. Une autre méthode consiste à vous connecter à votre phpmyadmin, sélectionnez vos tables cache_ et videz/videz-les.

12
drupal_stuff_alter

En plus des options mentionnées ci-dessus, comme dernier effort, vous pouvez appeler la fonction drupal_flush_all_caches(), pour effacer tous les caches.

Vous pouvez le faire en plaçant le code ci-dessous dans un fichier php à la racine de votre document et en le visitant avec un navigateur:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_flush_all_caches();

Je n'ai pas testé ce code et assurez-vous de le supprimer après avoir effacé vos caches.

5
Phizes

Vous pouvez définir

$update_free_access = TRUE;

dans settings.php (vers la ligne 226) et accédez à /update.php. Cela effacera le cache.

2
mymwbg
delete from cache where cid <> '';
delete from cache_block where cid <> '';
delete from cache_bootstrap where cid <> '';
delete from cache_field where cid <> '';
delete from cache_filter where cid <> '';
delete from cache_path where cid <> '';
delete from cache_libraries where cid <> '';
delete from cache_image where cid <> '';
delete from cache_page where cid <> '';
delete from cache_token where cid <> '';
delete from cache_update where cid <> '';
delete from cache_views where cid <> '';
delete from cache_views_data where cid <> '';
0
Ashish Madkaikar

Vous pouvez effacer le cache Drupal en exécutant la commande suivante dans la console de commande Windows ou à partir d'un fichier .bat (ou de la console Linux):

php -r "define ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); define ('MAINTENANCE_MODE', 'update'); global $ _SERVER; $ _SERVER ['REMOTE_ADDR'] = '127.0.0.1 '; require_once DRUPAL_ROOT.'/includes/bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

Assurez-vous simplement que DRUPAL_ROOT dans le code pointe vers le répertoire Drupal.

0
Vyacheslav Petrov