MediaWiki Scribunto Lua 错误:内部错误:解释器以状态 2 退出

MediaWiki Scribunto Lua error: Internal error: The interpreter exited with status 2

我已经在我的本地开发机器上完成了 MediaWiki 1.24.2 的全新安装。

我已经安装了 Scribunto,并检查了它是否正确安装在扩展列表中。

我在尝试创建信息框时遇到错误。错误是:

Lua 错误:内部错误:解释器以状态 2 退出

这些是我已采取以下步骤来尝试解决此问题的步骤。

我去过 Mediawiki Scribunto 页面

我已将这些行添加到我的 LocalSettings.php 文件中:

1
2
$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200; # bytes
$wgMaxShellMemory = 204800; # in KB

这并没有解决问题。我对如何打开错误日志感到困惑。帮助页面只是说:

将文件路径分配给 $wgScribuntoEngineConf[\\'luastandalone\\'][\\'errorFile\\'] 并检查该输出对于诊断内存分配错误很有价值。

如何分配文件路径? - 解决了感谢您的帮助。

我附上了一个 [链接][2] 到我的 php.ini 文件和我的 LocalSettings.php 文件(压缩在一起)

更新 - 我现在设法添加了一个日志文件,日志文件中的错误是:

/var/www/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua:语法错误:"("意外

更新二

这些是我复制错误的完整步骤:

首先检查任何可用的软件包更新并安装它们

1
2
sudo apt-get update
sudo apt-get upgrade

现在安装 Apache、PHP 和 MySQL

1
2
3
4
5
sudo apt-get install apache2 -y
sudo apt-get install php5 libapache2-mod-php5 -y
sudo apt-get install mysql-server php5-mysql -y
sudo apt-get install php-apc php5-intl imagemagick
sudo apt-get install phpmyadmin

我们可以使用以下命令检查树莓派的内部 IP 地址(记下它)

主机名-I

我们现在可以为我们的新 MediaWIki 安装创建一个数据库。首先使用您之前创建的密码以 root 身份登录

1
mysql -u root -p

这里我们添加 database=mediawikidb user=mediawikiuser 和 password=mediawikipassword:

1
2
3
CREATE DATABASE mediawikidb;
CREATE USER mediawikiuser@localhost IDENTIFIED BY 'mediawikipassword';
GRANT index, create, select, insert, update, delete, alter, lock tables on mediawikidb.* TO mediawikiuser@localhost;

现在我们可以对 php.ini 进行一些更改,以便我们可以增加最大文件大小和内存限制

cd /etc/php5/apache2/
纳米 php.ini

将 \\'upload_max_filesize = 2M\\' 替换为 \\'upload_max_filesize = 64M\\'

将 \\'post_max_size = 8M\\' 替换为 \\'post_max_size = 64M\\'

保存文件

现在我们将清空 /var/www 文件夹并将其所有权更改为 pi

1
2
3
cd /var/www
sudo chown pi: .
sudo rm *

现在我们可以下载MediaWiki,解压并复制到/var/www

1
2
3
4
mkdir /var/www/mediawiki
wget http://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz
tar -xvzf mediawiki-*.tar.gz
sudo mv mediawiki-*/* /var/www/

现在我们可以重启相关服务了

1
2
sudo service apache2 restart
sudo service mysql restart

现在打开浏览器并转到 localhost 并开始安装

要完成安装,请将 LocalSettings.php 复制到 /var/www/mediawiki

现在安装 Scribunto

从 http://www.mediawiki.org/wiki/Special:ExtensionDistributor/Scribunto 下载

1
tar -xzf Scribunto-REL1_24-b060fbd.tar.gz -C /var/www/mediawiki/extensions

sudo nano /etc/mediawiki/LocalSettings.php

在文件末尾添加这些行并保存

require_once "$IP/extensions/Scribunto/Scribunto.php";

$wgScribuntoDefaultEngine = \\'luastandalone\\';

$wgScribuntoEngineConf[\\'luastandalone\\'][\\'memoryLimit\\'] = 209715200; # 字节

$wgMaxShellMemory = 204800; # 以 KB 为单位

$wgScribuntoEngineConf[\\'luastandalone\\'][\\'errorFile\\'] = \\'/var/tmp/luaerror.log\\';

1
chmod -R 777 /var/www/mediawiki/extentions/Scribunto/engines/LuaStandalone/

现在访问 \\'http://en.wikipedia.org/wiki/Special:Export\\' 并在大框中输入 Template:Infobox。勾选所有三个框,然后单击导出

在记事本或类似工具中打开文件,然后用 CONTENT_FORMAT_TEXT

查找并替换 text/plain

登录 MediaWiki 并转到 Special:Import

正确导入所有内容后,转到主页并在页面顶部输入:

1
2
3
4
5
6
7
8
9
10
{{Infobox
|title        = test Infobox
|header1 = Main Heading
|header2 = First set of data
|label2  = Label
|data2   = Data
|header3 = Remove this line (optional)
|label3  = More Label
|data3   = More data
}}

非常感谢


终于修好了。我做到了:

1
sudo apt-get install lua

然后将以下内容添加到我的 LocalSettings.php

1
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/usr/bin/lua5.1';

我认为 Scribunto 中包含的 lua 二进制文件不适用于 Raspberry Pi?