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平臺