清除mediawiki中的所有页面

时间:2014-09-01 01:32:30

标签: caching mediawiki purge

是否可以清除mediawiki中的所有页面?我试过清空obejctcache表无济于事。我并不特别希望在每个页面上添加?action=purge。版本1.23.3

2 个答案:

答案 0 :(得分:6)

你可以

  1. 使用维护脚本PurgeList.php,如下所示:php purgeList.php --purge --all,用于MW> 1.21。较旧的MW版本没有--all选项,因此您需要一个页面列表。

  2. 使用API​​:API:Purge,并将其提供给所有网页的列表(您可以从API:Allpages获取)

  3. 在LocalSettings.php中按setting $wgCacheEpoch to the current time使所有缓存无效,例如   $wgCacheEpoch = 20140901104232;

  4. 设置$wgInvalidateCacheOnLocalSettingsChange(自MW 1.17以来)实现几乎相同的事情。 只有在您的wiki具有低到中等流量时才会这样做。

  5. 不确定这是不是一个好主意,但是如果你有权访问wiki的数据库,你也应该能够通过截断表objectcache来达到同样的效果。

答案 1 :(得分:6)

使用以下简单命令使所有站点的所有缓存无效:

touch /etc/mediawiki/LocalSettings.php 

因为触摸LocalSettings.php文件中有以下部分:

# When you make changes to this configuration file, this will make
# sure that cached pages are cleared.
$wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) );

__FILE__本身就是LocalSettings.php文件,因此如果现在是文件时间,则将清除早于该文件的所有缓存。