清除 mediawiki 中的所有页面
Posted
技术标签:
【中文标题】清除 mediawiki 中的所有页面【英文标题】:Purging all pages in mediawiki 【发布时间】:2014-10-25 05:03:42 【问题描述】:是否可以?我试过清空 obejctcache 表无济于事。我并不是特别想在每个页面上都附加?action=purge
。版本 1.23.3
【问题讨论】:
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User、Web Apps Stack Exchange 或Webmaster Stack Exchange 会是一个更好的提问地点。 @jww 这个简单的事实问题已经存在一年多了,没有关闭并且有投票和投票的答案,这会向您表明a)这是一个对社区有用的合适问题或b)急需关闭。此外,这个问题是关于开发一个涉及编程的 mediawiki 网站的。 【参考方案1】:你可以
像这样使用维护脚本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 中的setting $wgCacheEpoch
to the current time 使所有缓存无效,例如
$wgCacheEpoch = 20140901104232;
.
设置$wgInvalidateCacheOnLocalSettingsChange
(自 MW 1.17 起)以实现几乎相同的目标。 仅当您的 wiki 流量低到中等时才这样做。
不确定这是否是个好主意,但如果您可以访问 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。以上是关于清除 mediawiki 中的所有页面的主要内容,如果未能解决你的问题,请参考以下文章