【问题标题】:Purging all pages in mediawiki清除 mediawiki 中的所有页面
【发布时间】:2014-10-25 05:03:42
【问题描述】:

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

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserWeb Apps Stack ExchangeWebmaster Stack Exchange 会是一个更好的提问地点。
  • @jww 这个简单的事实问题已经存在一年多了,没有关闭并且有投票和投票的答案,这会向您表明a)这是一个对社区有用的合适问题或b)急需关闭。此外,这个问题是关于开发一个涉及编程的 mediawiki 网站的。

标签: caching mediawiki purge


【解决方案1】:

你可以

  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 中的setting $wgCacheEpoch to the current time 使所有缓存无效,例如 $wgCacheEpoch = 20140901104232;.

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

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

【讨论】:

  • php purgeList.php --purge --all 在我的情况下什么也没做。我找不到永久删除所有页面的方法。 (((
  • @zhekaus 这个问题不是关于删除页面,而是关于清除它们的缓存
  • 这是php purgeList.php --all-namespaces MW 1.34+
【解决方案2】:

使用这个简单的命令使所有站点的所有缓存失效:

touch /etc/mediawiki/LocalSettings.php 

因为在touchLocalSettings.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 文件本身,所以如果文件时间是现在,所有早于该文件的缓存都将被清除。

【讨论】:

  • 这是更好的答案。
  • 请注意,自 MW 1.17 起,这不是 LocalSettings.php 的一部分。相反,有一个名为$wgInvalidateCacheOnLocalSettingsChange 的设置可以实现几乎相同的效果。此方法适用于较小的 wiki,但not recommended 适用于高流量 wiki。
猜你喜欢
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多