如何修复MediaWiki中Luasandbox扩展报错问题
MediaWiki 1.39启用Scribunto+LuaSandbox保存模块触发内部错误
环境与配置
- 托管服务器搭建MediaWiki 1.39站点
- 通过cPanel启用Scribunto扩展,LocalSettings.php中添加以下代码:
wfLoadExtension( 'Scribunto' ); $wgScribuntoDefaultEngine = 'luasandbox'; // Use LuaSandbox as the default engine
问题现象
创建模块页面并粘贴维基百科模块代码后,点击保存触发内部错误,错误信息如下:
[ZQkYSxr_nfXN6YUDbjbzjQAAkTM] /index.php?title=Module:For&action=submit Scribunto_LuaInterpreterNotFoundError: The luasandbox extension is not present, this engine cannot be used. Backtrace: from /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxInterpreter.php(44) #0 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxInterpreter.php(61): MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxInterpreter::checkLuaSandboxVersion() #1 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaSandbox/LuaSandboxEngine.php(258): MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxInterpreter->__construct(MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxEngine, array) #2 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaCommon/LuaEngine.php(131): MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxEngine->newInterpreter() #3 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaCommon/LuaEngine.php(235): Scribunto_LuaEngine->load() #4 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaCommon/LuaModule.php(41): Scribunto_LuaEngine->getInterpreter() #5 /home3/funkinch/public_html/extensions/Scribunto/includes/engines/LuaCommon/LuaModule.php(28): Scribunto_LuaModule->getInitChunk() #6 /home3/funkinch/public_html/extensions/Scribunto/includes/ScribuntoEngineBase.php(201): Scribunto_LuaModule->validate() #7 /home3/funkinch/public_html/extensions/Scribunto/includes/ScribuntoContentHandler.php(105): MediaWiki\Extension\Scribunto\ScribuntoEngineBase->validate(string, string) #8 /home3/funkinch/public_html/extensions/Scribunto/includes/Hooks.php(389): MediaWiki\Extension\Scribunto\ScribuntoContentHandler->validate(MediaWiki\Extension\Scribunto\ScribuntoContent, Title) #9 /home3/funkinch/public_html/includes/HookContainer/HookContainer.php(338): MediaWiki\Extension\Scribunto\Hooks::validateScript(DerivativeContext, MediaWiki\Extension\Scribunto\ScribuntoContent, Status, string, User, boolean) #10 /home3/funkinch/public_html/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #11 /home3/funkinch/public_html/includes/HookContainer/HookRunner.php(1472): MediaWiki\HookContainer\HookContainer->run(string, array) #12 /home3/funkinch/public_html/includes/editpage/Constraint/EditFilterMergedContentHookConstraint.php(100): MediaWiki\HookContainer\HookRunner->onEditFilterMergedContent(DerivativeContext, MediaWiki\Extension\Scribunto\ScribuntoContent, Status, string, User, boolean) #13 /home3/funkinch/public_html/includes/editpage/Constraint/EditConstraintRunner.php(88): MediaWiki\EditPage\Constraint\EditFilterMergedContentHookConstraint->checkConstraint() #14 /home3/funkinch/public_html/includes/EditPage.php(2344): MediaWiki\EditPage\Constraint\EditConstraintRunner->checkConstraints() #15 /home3/funkinch/public_html/includes/EditPage.php(1904): EditPage->internalAttemptSave(array, boolean, boolean) #16 /home3/funkinch/public_html/includes/EditPage.php(721): EditPage->attemptSave(array) #17 /home3/funkinch/public_html/includes/actions/EditAction.php(73): EditPage->edit() #18 /home3/funkinch/public_html/includes/actions/SubmitAction.php(38): EditAction->show() #19 /home3/funkinch/public_html/includes/MediaWiki.php(542): SubmitAction->show() #20 /home3/funkinch/public_html/includes/MediaWiki.php(322): MediaWiki->performAction(Article, Title) #21 /home3/funkinch/public_html/includes/MediaWiki.php(904): MediaWiki->performRequest() #22 /home3/funkinch/public_html/includes/MediaWiki.php(562): MediaWiki->main() #23 /home3/funkinch/public_html/index.php(50): MediaWiki->run() #24 /home3/funkinch/public_html/index.php(46): wfIndexMain() #25 {main}
已尝试的无效操作
- 调整LocalSettings.php配置参数
- 修改cPanel相关配置项
- 手动添加Luasandbox文件夹到对应路径
- 卸载原有版本并重装Scribunto 1.40版本
求助需求
寻求有MediaWiki模块开发经验的人士,提供可行的Scribunto+LuaSandbox启用方案,解决保存模块时的内部错误问题。
内容的提问来源于stack exchange,提问作者boy friend
相关产品推荐
相关产品推荐

