Xóa bộ nhớ cache mà không cần đăng nhập


10

Tôi đã thêm một câu lệnh if xung quanh nội dung kết xuất php trong tệp page.tpl.php của tôi. Vấn đề duy nhất là tôi đã mắc lỗi và vô tình ngăn nó hiển thị nội dung trên bất kỳ trang nào. Tôi xóa bộ nhớ cache và đăng xuất để kiểm tra và nhận ra lỗi của mình, tôi đã sửa tệp mẫu. Nhưng bây giờ tôi không thể đăng nhập lại để xóa bộ nhớ cache vì trang web của tôi sẽ không hiển thị nội dung và do đó sẽ không hiển thị hộp đăng nhập.

Ai đó có thể cho tôi một cách trong Drupal 7 để đăng nhập mà không cần đăng nhập vào hộp không (như cách hiển thị hộp đăng nhập riêng cho nội dung) hoặc cách xóa bộ nhớ cache?


2
Nếu bạn có quyền truy cập vào cơ sở dữ liệu, chỉ cần chạy TRUNCATE TABLE table_namecho cachebảng và tất cả các bảng khác bắt đầu bằngcache_
Clive

2
Nếu bạn đã cài đặt drush, bạn có thể thực hiện drush cctừ thiết bị đầu cuối trong khi đứng trong root drupal của mình.
Cyclonecode

Trong trang của bạn, chỉ cần chạy drupal_flush_all_caches ();
Anil Sagar

Câu trả lời:


12

Tôi. Nếu bạn đã cài đặt drush (http://drupal.org/project/drush) - nếu bạn không có nó, hãy nghĩ về lần tiếp theo :), hãy mở giao diện điều khiển (WIN + R) trong Windows hoặc Ctrl + Alt + T trong Linux trỏ đến thư mục trang web của bạn (ví dụ: cd /www/mydrupalsite/và gõ:

 $ drush cc all

từ dòng lệnh.

ii. Một phương pháp khác là đăng nhập vào phpmyadmin của bạn, chọn các bảng cache_ của bạn và xóa / xóa chúng.


6

Giải pháp tốt nhất tôi tìm thấy cuối cùng là làm điều đó thông qua phpmyadmin. Tôi đã đăng nhập và làm trống bất kỳ bảng nào có "bộ đệm" khi bắt đầu tên của chúng. Dễ dàng nếu bạn không làm việc trong drush.


Lặp đi lặp lại câu trả lời của drupal_ ware_alter một phần mà không có bất kỳ thông tin bổ sung nào hầu như không hữu ích, và theo tôi rất bác bỏ khái niệm của trang web này. Tôi thậm chí không thể bắt đầu giả định lý do tại sao bạn muốn làm hỏng mọi người tìm thấy câu hỏi này trong tương lai bằng cách đăng và chấp nhận một câu trả lời mà drushphương pháp này sử dụng, mất ít thời gian và công sức hơn, và trên hết là cách dự định.
TheThirdMan

5

Ngoài các tùy chọn được đề cập ở trên, như một nỗ lực cuối cùng mà bạn có thể gọi hàm drupal_flush_all_caches(), để xóa tất cả bộ nhớ cache.

Bạn có thể làm điều này bằng cách đặt mã bên dưới vào tệp php trong tài liệu gốc của bạn và truy cập nó bằng trình duyệt:

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

Tôi chưa kiểm tra mã này và đảm bảo xóa nó sau khi bạn đã xóa bộ nhớ cache.


Lưu ý rằng trước tiên bạn cần xác định hằng số DRUPAL_ROOT. Nó không hiển thị trong ví dụ mã ban đầu, vì vậy tôi đã thêm một số khoảng trắng để nó hiển thị ngay bây giờ.
Ryan Szrama

2

Bạn có thể đặt

$update_free_access = TRUE;

trong settings.php (khoảng dòng 226) và duyệt đến /update.php. Điều này sẽ xóa bộ nhớ cache.


0

Bạn có thể xóa bộ đệm Drupal bằng cách thực hiện lệnh sau trong bảng điều khiển lệnh Windows hoặc từ tệp .bat (hoặc từ bảng điều khiển Linux):

php -r "xác định ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); xác định ('MAINTENANCE_MODE', 'update'); global $ _SERVER; $ _SERVER ['REMOTE_ADDR'] '; quiries

Chỉ cần đảm bảo rằng DRUPAL_ROOT trong mã trỏ đến thư mục 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 <> '';
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.