You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MediaWiki特定命名空间访问内存耗尽问题排查求助

MediaWiki 1.43.0 特定命名空间内存耗尽故障排查思路

1. 临时调高PHP内存限制验证

在LocalSettings.php开头添加:

ini_set('memory_limit', '512M');

重启httpd后访问故障命名空间:

  • 若能正常访问,说明是该命名空间下的内容触发了高内存消耗,而非递归死循环;
  • 若仍报错内存耗尽,大概率存在递归调用或无限循环逻辑。

2. 定位故障页面/内容

  • 先在故障命名空间下新建空白测试页面,访问测试:
    • 测试页面正常:说明现有页面的内容/模板存在问题,比如模板嵌套层级过深、循环调用大量数据(如遍历分类下所有页面);
    • 测试页面也报错:问题出在命名空间的全局配置或底层逻辑。
  • 针对报错的具体页面,尝试进入编辑模式,逐步删除内容/模板片段,定位触发故障的代码块。

3. 排查递归/循环调用

  • 启用PHP错误追踪,在LocalSettings.php开头添加:
    ini_set('display_errors', 1);
    ini_set('error_reporting', E_ALL);
    ini_set('log_errors', 1);
    ini_set('error_log', '/tmp/php-mediawiki-error.log');
    
    访问故障页面后查看错误日志,寻找重复调用的函数栈信息,定位递归循环点。
  • 启用MediaWiki数据库查询日志,在LocalSettings.php添加:
    $wgDebugLogGroups['rdbms'] = '/tmp/rdbms-debug.log';
    
    查看日志中是否有重复执行的查询,这类查询可能导致内存堆积。

4. 清理MediaWiki缓存与更新

  • 运行维护脚本更新系统:
    php maintenance/update.php
    
  • 清理页面缓存,针对特定命名空间(替换10为目标命名空间ID,如Template是10、Category是14):
    php maintenance/purge.php --namespace=10
    
  • 删除文件缓存:直接删除MediaWiki目录下cache文件夹内的所有文件;若使用Redis/Memcached作为缓存,重启服务或清空缓存。

5. 验证PHP版本兼容性

MediaWiki 1.43.0要求PHP 7.4及以上版本,执行命令确认当前PHP版本:

php -v

若MacOS升级后PHP版本变更(如切换到系统自带的低版本),需切换回符合要求的PHP版本。

6. 排查命名空间关联配置

  • 检查LocalSettings.php中是否残留自定义命名空间的关联配置,比如$wgNamespaceProtection、$wgContentNamespaces的设置,或针对这些命名空间的钩子函数(如BeforePageDisplay、ParserFirstCallInit);
  • 确认是否有第三方扩展(即使已禁用)留下的配置残留,可尝试备份LocalSettings.php后,用官方默认配置文件替换,仅保留必要的数据库连接和命名空间配置,测试是否恢复正常。

7. 检查数据库数据异常

  • 查询故障命名空间下的页面修订情况(替换10,14为目标命名空间ID):
    SELECT page_title, COUNT(rev_id) AS rev_count FROM page
    JOIN revision ON page.page_latest = revision.rev_id
    WHERE page_namespace IN (10,14)
    GROUP BY page_title
    ORDER BY rev_count DESC;
    
    排查是否有修订版本异常过多的页面,这类页面加载时会消耗大量内存。
  • 查询模板循环依赖:
    SELECT tl_title, tl_namespace, tl_from_title FROM templatelinks
    WHERE tl_namespace=10;
    
    检查是否存在模板互相调用的循环(如模板A调用模板B,模板B又调用模板A)。

内容的提问来源于stack exchange,提问作者Jan Steinman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:22:45