提交MediaWiki编辑时PHP-FPM子进程因Signal 11崩溃求助
PHP-FPM子进程提交MediaWiki编辑时因SIGSEGV(Signal 11)崩溃
环境配置
- PHP 8.2.26 (fpm+fcgi)
- Nginx 1.22.1
- PostgreSQL 15
- MemCached 1.6.18
- Debian 12 Bookworm
- MediaWiki 1.43.0
问题现象
提交MediaWiki页面编辑时,PHP-FPM子进程触发Signal 11(SIGSEGV)崩溃退出,页面浏览功能正常。
相关日志信息
PHP-FPM日志
[04-Jan-2025 14:22:29] WARNING: [pool www] child 822 exited on signal 11 (SIGSEGV - core dumped) after 1623.577910 seconds from start
GDB回溯信息
(gdb) bt #0 0x00000071e9b89af4 in ?? () #1 0x0000007fd56aa0d8 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?)
排查与修复方案
1. 排查PHP扩展兼容性问题
SIGSEGV崩溃大概率和PHP扩展内存访问错误相关,重点排查编辑操作触发的功能相关扩展:
- 临时禁用MemCached扩展:编辑
php.ini或PHP-FPM池配置文件,注释extension=memcached.so,重启PHP-FPM后测试编辑功能。若问题消失,说明MemCached扩展存在兼容性问题。 - 更新MemCached扩展:Debian 12默认包版本可能偏旧,通过PECL安装适配PHP 8.2的最新稳定版:
pecl install memcached - 逐一排查其他扩展:比如语法高亮、图片处理(GD/Imagick)、PostgreSQL扩展(pgsql),逐个禁用后测试,定位触发崩溃的扩展。
2. 检查MediaWiki第三方扩展
编辑操作会触发更多扩展逻辑,优先排查第三方插件:
- 注释
LocalSettings.php中所有第三方扩展的wfLoadExtension配置,保留核心功能后测试编辑。 - 逐步重新启用扩展,定位到问题插件后,更新至适配MediaWiki 1.43.0和PHP 8.2的版本,或替换为替代插件。
3. 验证核心文件与依赖完整性
- 重新下载MediaWiki 1.43.0官方压缩包,对比替换核心文件(保留
LocalSettings.php等自定义配置),排除文件损坏问题。 - 运行MediaWiki依赖检测脚本:
确保所有要求的PHP扩展已正确安装且版本兼容。php maintenance/check.php
4. 系统与内存层面排查
- 启用完整核心转储分析:在PHP-FPM配置中开启
core_uses_pid = yes,生成完整core文件后,安装php8.2-dbg调试符号包,使用GDB深入分析:gdb /usr/sbin/php-fpm8.2 core.822 bt full - 检查系统内存状态:通过
free -h查看内存使用,dmesg排查是否存在内存不足或硬件内存故障。
5. 调整PHP版本
MediaWiki 1.43.0官方支持PHP 8.2,但部分小版本可能存在特定bug,尝试降级至PHP 8.2.24等稳定版本,或升级至最新8.2小版本,测试问题是否消失。
内容的提问来源于stack exchange,提问作者佩奇君
相关产品推荐
相关产品推荐

