Bersihkan Cache tanpa masuk

10

Saya menambahkan pernyataan if di sekitar konten render php di file page.tpl.php saya. Satu-satunya masalah adalah saya membuat kesalahan dan secara tidak sengaja mencegahnya membuat konten di halaman mana pun. Saya membersihkan cache dan keluar untuk mengujinya, dan menyadari kesalahan saya, saya mengoreksi file template. Tapi sekarang saya tidak bisa login kembali untuk menghapus cache lagi karena situs saya tidak akan membuat konten dan karenanya tidak akan membuat kotak login.

Dapatkah seseorang memberi saya cara di Drupal 7 untuk masuk tanpa kotak masuk (seperti cara merender kotak masuk secara terpisah ke konten) atau cara menghapus cache?

JamiePatt
sumber
2
Jika Anda memiliki akses ke database, jalankan saja TRUNCATE TABLE table_nameuntuk cachetabel dan semua tabel lain yang dimulai dengancache_
Clive
2
Jika Anda telah menginstal drush, Anda dapat melakukannya drush ccdari terminal sambil berdiri di root drupal Anda.
Cyclonecode
Di halaman Anda, jalankan saja drupal_flush_all_caches ();
Anil Sagar

Jawaban:

12

saya. Jika Anda telah menginstal drush (http://drupal.org/project/drush) - jika Anda tidak memilikinya, pikirkan lain kali :), buka konsol (WIN + R) di Windows atau Ctrl + Alt + T di Linux arahkan ke folder situs Anda (mis. cd /www/mydrupalsite/Dan ketik:

 $ drush cc all

dari baris perintah.

ii. Metode lain adalah masuk ke phpmyadmin Anda, pilih tabel cache_ Anda dan siram / kosongkan.

drupal_stuff_alter
sumber
6

Solusi terbaik yang saya temukan pada akhirnya adalah melakukannya melalui phpmyadmin. Saya login dan mengosongkan tabel yang memiliki "cache" di awal nama mereka. Mudah jika Anda tidak bekerja dalam keadaan mabuk.

JamiePatt
sumber
Mengulangi jawaban dari drupal_stuff_alter sebagian tanpa setiap informasi tambahan hampir tidak berguna, dan menurut saya sangat meremehkan konsep situs ini. Saya bahkan tidak dapat mulai berasumsi mengapa Anda ingin membuat orang tergelincir menemukan pertanyaan ini di masa depan dengan memposting dan menerima jawaban yang mengabaikan drushmetode, yang jelas membutuhkan waktu dan usaha lebih sedikit, dan di atas itu adalah cara yang dimaksud.
TheThirdMan
5

Selain opsi yang disebutkan di atas, sebagai upaya terakhir Anda bisa memanggil fungsi drupal_flush_all_caches(), untuk menghapus semua cache.

Anda dapat melakukan ini dengan menempatkan kode di bawah ini dalam file php di root dokumen Anda dan mengunjunginya dengan browser:

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

Saya belum menguji kode ini, dan pastikan untuk menghapusnya setelah Anda membersihkan cache.

Phize
sumber
Perhatikan bahwa Anda harus menetapkan konstanta DRUPAL_ROOT terlebih dahulu. Itu tidak muncul dalam contoh kode pada awalnya, jadi saya menambahkan beberapa spasi jadi itu menunjukkan sekarang.
Ryan Szrama
2

Anda bisa mengatur

$update_free_access = TRUE;

di settings.php (sekitar baris 226) dan browse ke /update.php. Ini akan menghapus cache.

mymwbg
sumber
0

Anda dapat menghapus cache Drupal dengan menjalankan perintah berikut di konsol perintah Windows atau dari file .bat (atau dari konsol 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.' / include / bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

Pastikan DRUPAL_ROOT dalam kode mengarah ke direktori Drupal.

Vyacheslav Petrov
sumber
0
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 <> '';
Ashish Madkaikar
sumber