是否可以清除 mediawiki 中的所有页面?我试过清空 obejctcache 表无济于事。我不是特别想点击?action=purge
附加的每一页。版本 1.23.3
2 回答
你可以
像这样使用维护脚本PurgeList.php:
php purgeList.php --purge --all
,对于 MW > 1.21 和php purgeList.php --all-namespaces
对于 MW > 1.34。真正的旧 MW 版本没有该--all
选项,因此您需要一个页面列表。使用 API:API:Purge,并为它提供所有页面的列表(您可以从API:Allpages获得)
通过在 LocalSettings.php 中 设置
$wgCacheEpoch
为当前时间来使所有缓存失效,例如$wgCacheEpoch = 20140901104232;
.设置
$wgInvalidateCacheOnLocalSettingsChange
(自 MW 1.17 起)以实现几乎相同的目标。仅当您的 wiki 具有低到中等流量时才这样做。不确定这是否是一个好主意,但如果您可以访问 wiki 的数据库,您也应该能够通过截断 table 来实现相同的效果
objectcache
。
使用这个简单的命令使所有站点的所有缓存无效:
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
文件本身,所以如果文件时间是现在,所有早于文件的缓存都将被清除。