清除缓存而不登录


10

我在page.tpl.php文件中围绕内容渲染php添加了if语句。唯一的问题是我犯了一个错误,并意外地阻止了它在任何页面上呈现内容。我清除了缓存并注销进行测试,然后意识到我纠正了模板文件的错误。但是现在我无法再次登录以清除缓存,因为我的站点无法呈现内容,因此也不会呈现登录框。

有人可以在Drupal 7中为我提供一种无需登录框即可登录的方法(例如将登录框分别呈现给内容的方法)还是清除缓存的方法吗?


2
如果您有权访问数据库TRUNCATE TABLE table_namecachecache_
Clive

2
如果安装了草编,则可以drush cc站在终端上,而不必在Drupal根中进行操作。
Cyclonecode 2012年

在您的页面tpl中,只需运行drupal_flush_all_caches();
Anil Sagar 2012年

Answers:


12

一世。如果您安装了drush(http://drupal.org/project/drush)-如果没有,请下次考虑:),在Windows或Ctrl + Alt中打开控制台(WIN + R) Linux中的+ T指向您的站点文件夹(例如cd /www/mydrupalsite/,键入:

 $ drush cc all

从命令行。

ii。另一种方法是登录到phpmyadmin中,选择您的cache_表并刷新/清空它们。


6

我最终发现的最佳解决方案是通过phpmyadmin来完成。我登录并清空了名称开头带有“缓存”的所有表。如果您不忙于工作,这很容易。


在没有任何其他信息的情况下,部分重复drupal_stuff_alter的答案几乎没有用,并且我认为该站点的概念非常令人反感。我什至无法开始假设您为什么以后会通过发布并接受省略了该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 '16

2

你可以设定

$update_free_access = TRUE;

在settings.php中(大约226行)并浏览到/update.php。这将清除缓存。


0

您可以通过在Windows命令控制台中或从.bat文件(或从Linux控制台)中执行以下命令来清除Drupal缓存:

php -r“ define('DRUPAL_ROOT','../web'); chdir(DRUPAL_ROOT); define('MAINTENANCE_MODE','update');全局$ _SERVER; $ _SERVER ['REMOTE_ADDR'] ='127.0.0.1 '; require_once DRUPAL_ROOT。'/ includes / 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 <> '';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.