ล้างแคชโดยไม่ต้องเข้าสู่ระบบ


10

ฉันได้เพิ่มคำสั่ง if รอบเนื้อหาการแสดงผล php ในไฟล์ page.tpl.php ของฉัน ปัญหาเดียวคือฉันทำผิดพลาดและป้องกันไม่ให้แสดงเนื้อหาในหน้าใด ๆ ฉันล้างแคชและออกจากระบบเพื่อทดสอบและตระหนักถึงความผิดพลาดของฉันฉันแก้ไขไฟล์เทมเพลต แต่ตอนนี้ฉันไม่สามารถเข้าสู่ระบบอีกครั้งเพื่อล้างแคชอีกครั้งเนื่องจากเว็บไซต์ของฉันจะไม่แสดงเนื้อหาและจะไม่แสดงกล่องเข้าสู่ระบบ

ใครสามารถให้วิธีฉันใน Drupal 7 เพื่อเข้าสู่ระบบโดยไม่ต้องเข้าสู่ระบบในกล่อง (เช่นวิธีการแสดงกล่องเข้าสู่ระบบแยกจากเนื้อหา) หรือวิธีการล้างแคช?


2
หากคุณสามารถเข้าถึงฐานข้อมูลได้ให้เรียกใช้TRUNCATE TABLE table_nameสำหรับcacheตารางและตารางอื่น ๆ ทั้งหมดที่ขึ้นต้นด้วยcache_
ไคลฟ์

2
หากคุณติดตั้ง drush แล้วคุณสามารถทำได้drush ccจาก terminal ขณะยืนอยู่ในรูท drupal
Cyclonecode

ในหน้าคุณ tpl เพียงรัน drupal_flush_all_caches ();
Anil Sagar

คำตอบ:


12

ผม. หากคุณติดตั้ง drush แล้ว (http://drupal.org/project/drush) - หากคุณยังไม่มีให้คิดในครั้งต่อไป :) เปิดคอนโซล (WIN + R) ใน Windows หรือ Ctrl + Alt + T ใน Linux ชี้ไปที่โฟลเดอร์ไซต์ของคุณ (เช่นcd /www/mydrupalsite/และพิมพ์:

 $ drush cc all

จากบรรทัดคำสั่ง

ii อีกวิธีหนึ่งคือการเข้าสู่ phpmyadmin ของคุณเลือกตาราง cache_ ของคุณและล้าง / ล้างพวกเขา


6

ทางออกที่ดีที่สุดที่ฉันพบในที่สุดก็คือการทำมันผ่าน phpmyadmin ฉันลงชื่อเข้าใช้และล้างข้อมูลตารางใด ๆ ที่มี "แคช" เมื่อเริ่มต้นชื่อ ง่ายถ้าคุณไม่ทำงานในสิ่งที่ไม่แน่นอน


การทำซ้ำคำตอบของ drupal_stuff_alter บางส่วนโดยไม่มีข้อมูลเพิ่มเติมใด ๆมีประโยชน์แทบจะไม่และในความคิดของฉันไม่สนใจแนวคิดของเว็บไซต์นี้ ฉันไม่สามารถเริ่มคิดได้ว่าทำไมคุณต้องการทำให้คนอื่นค้นพบคำถามนี้ในอนาคตด้วยการโพสต์และยอมรับคำตอบที่ ommits drushวิธีการซึ่งใช้เวลาและความพยายามน้อยลงอย่างเห็นได้ชัด
TheThirdMan

5

นอกเหนือจากตัวเลือกที่กล่าวถึงข้างต้นซึ่งเป็นความพยายามครั้งสุดท้ายที่คุณสามารถเรียกใช้ฟังก์ชันdrupal_flush_all_caches()นี้เพื่อล้างแคชทั้งหมด

คุณสามารถทำได้โดยการวางรหัสด้านล่างในไฟล์ php ในรูทเอกสารของคุณและไปที่เบราว์เซอร์:

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

ฉันยังไม่ได้ทดสอบรหัสนี้และตรวจสอบให้แน่ใจว่าได้ลบออกหลังจากคุณล้างแคชของคุณ


โปรดทราบว่าคุณต้องกำหนดค่าคงที่ DRUPAL_ROOT ก่อน มันไม่ได้แสดงในตัวอย่างของรหัสเดิมดังนั้นฉันจึงเพิ่มพื้นที่สีขาวเพื่อให้มันแสดงในขณะนี้
Ryan Szrama

2

คุณสามารถตั้งค่า

$update_free_access = TRUE;

ใน settings.php (ประมาณบรรทัดที่ 226) และเรียกดู /update.php นี่จะล้างแคช


0

คุณสามารถล้างแคช Drupal ได้ด้วยการดำเนินการคำสั่งต่อไปนี้ในคอนโซลคำสั่ง Windows หรือจากไฟล์. bat (หรือจากคอนโซล Linux):

php -r "define ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); define ('MAINTENANCE_MODE', 'อัพเดต'); ทั่วโลก $ _SERVER; $ _SERVER ['REMOTE_ADDR'] = '127.0.1.1' '; require_once DRUPAL_ROOT.' / รวมถึง / bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

เพียงตรวจสอบให้แน่ใจว่า DRUPAL_ROOT ในรหัสชี้ไปที่ไดเรกทอรี Drupal


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 <> '';
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.