清除mediawiki中的所有页面

use*_*372 12 mediawiki caching purge

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

leo*_*leo 6

你可以

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

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

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

  4. 设置$wgInvalidateCacheOnLocalSettingsChange(从MW 1.17开始)以实现几乎相同的目的。仅当您的Wiki流量低至中等时才这样做

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


rub*_*o77 6

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

touch /etc/mediawiki/LocalSettings.php 
Run Code Online (Sandbox Code Playgroud)

因为在触摸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__ ) ) );
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,自MW 1.17起,这不是"LocalSettings.php"的一部分.相反,有一个名为`$ wgInvalidateCacheOnLocalSettingsChange`的设置将实现几乎相同.这种方法适用于较小的wiki,但[不推荐](https://www.mediawiki.org/wiki/Manual:$wgInvalidateCacheOnLocalSettingsChange)适用于高流量wiki. (3认同)