MediaWiki配置Scribunto外掛

InfinityEx發表於2024-10-21

MediaWiki配置Scribunto涉及到Lua配置,原本MediaWiki官方的包是有Lua的,但是配置有幾個坑這裡分享下個人的解決方案

首先是LocalSettings.php中加入以下內容:

$wgScribuntoDefaultEngine= 'luastandalone' ;
$wgScribuntoEngineConf['luastandalone']['luaPath'] = null;

如果希望看到錯誤資訊可以加入:

$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/022/error.log';

'/022/error.log' 是錯誤日誌儲存路徑,由於我的wiki是放在D盤的, '/022/error.log' 等價於 'D:/022/error.log' 路徑不一定得跟我一樣,可以自定義

然後是找到外掛目錄的LuaStandaloneInterpreter.php,路徑在extensions\Scribunto\includes\Engines\LuaStandalone

找到下面的內容:

if ( php_uname( 's' ) == 'Windows NT' ) {
	// Like the passthru() in older versions of PHP,
	// PHP's invokation of cmd.exe in proc_open() is broken:
	// http://news.php.net/php.internals/21796
	// Unlike passthru(), it is not fixed in any PHP version,
	// so we use the fix similar to one in wfShellExec()
	$cmd = '"' . $cmd . '"';			
}

$cmd = '"' . $cmd . '"'; 註釋掉,儲存檔案

if ( php_uname( 's' ) == 'Windows NT' ) {
	// Like the passthru() in older versions of PHP,
	// PHP's invokation of cmd.exe in proc_open() is broken:
	// http://news.php.net/php.internals/21796
	// Unlike passthru(), it is not fixed in any PHP version,
	// so we use the fix similar to one in wfShellExec()
	//$cmd = '"' . $cmd . '"';			
}

至此,Scribunto應該就可以正常執行了,隨便開一個模組頁面測試Lua程式碼看是否可以正常執行了。

以上方法適用於MediaWiki 1.41 Win平臺

相關文章