13

是否可以清除 mediawiki 中的所有页面?我试过清空 obejctcache 表无济于事。我不是特别想点击?action=purge附加的每一页。版本 1.23.3

4

2 回答 2

9

你可以

  1. 像这样使用维护脚本PurgeList.phpphp purgeList.php --purge --all,对于 MW > 1.21 和php purgeList.php --all-namespaces对于 MW > 1.34。真正的旧 MW 版本没有该--all选项,因此您需要一个页面列表。

  2. 使用 API:API:Purge,并为它提供所有页面的列表(您可以从API:Allpages获得)

  3. 通过在 LocalSettings.php 中 设置$wgCacheEpoch为当前时间来使所有缓存失效,例如$wgCacheEpoch = 20140901104232;.

  4. 设置$wgInvalidateCacheOnLocalSettingsChange(自 MW 1.17 起)以实现几乎相同的目标。仅当您的 wiki 具有低到中等流量时才这样做

  5. 不确定这是否是一个好主意,但如果您可以访问 wiki 的数据库,您也应该能够通过截断 table 来实现相同的效果objectcache

于 2014-09-01T10:41:33.753 回答
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文件本身,所以如果文件时间是现在,所有早于文件的缓存都将被清除。

于 2014-12-15T19:33:59.540 回答