Ошибка MediaWiki Scribunto Lua: внутренняя ошибка: интерпретатор завершил работу со статусом 2

Я сделал новую установку MediaWiki 1.24.2 на моем локальном компьютере для разработки.

Я установил Scribunto и проверил, правильно ли он установлен в списке расширений.

Я получаю сообщение об ошибке, когда пытаюсь создать InfoBox. Ошибка:

Ошибка Lua: внутренняя ошибка: интерпретатор завершил работу со статусом 2

Это шаги, которые я предпринял, чтобы попытаться исправить это.

Я был на странице Mediawiki Scribunto

Я добавил эти строки в свой файл LocalSettings.php:

$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

$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200; # bytes
$wgMaxShellMemory = 204800; # in KB
5_linux_32_generic/lua: Синтаксическая ошибка: "(" неожиданно

ОБНОВЛЕНИЕ ВТОРОЕ

Вот полные шаги, которые я предпринимаю, чтобы воспроизвести ошибку:

Начните с проверки наличия доступных обновлений пакетов и их установки.

sudo apt-get update
sudo apt-get upgrade

Теперь установите Apache, PHP и MySQL

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-адрес нашего Raspberry Pi с помощью следующей команды (запишите ее)

имя хоста -я

Теперь мы можем создать базу данных для нашей новой установки MediaWIki. Начните с входа в систему как root, используя пароль, который вы создали ранее.

mysql -u root -p

Здесь мы добавляем базу данных=mediawikidb, пользователь=mediawikiuser и пароль=mediawikipassword:

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, чтобы увеличить максимальный размер файла и лимит памяти.

компакт-диск /etc/php5/apache2/нано php.ini

Замените «upload_max_filesize = 2M» на «upload_max_filesize = 64M».

Замените «post_max_size = 8M» на «post_max_size = 64M»

Сохраните файл

Теперь мы собираемся очистить папку /var/www и изменить ее владельца на pi.

cd /var/www
sudo chown pi: .
sudo rm *

Теперь мы можем скачать MediaWiki, распаковать и скопировать в /var/www.

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/

Теперь мы можем перезапустить соответствующие службы

sudo service apache2 restart
sudo service mysql restart

Теперь откройте браузер, перейдите на локальный хост и начните установку.

Для завершения установки скопируйте LocalSettings.php в /var/www/mediawiki.

Теперь установите Scribunto

Загрузите с http://www.mediawiki.org/wiki/Special:ExtensionDistributor/Scribunto

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

судо нано /etc/mediawiki/LocalSettings.php

добавьте эти строки в конец файла и сохраните

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

$wgScribuntoDefaultEngine = 'luastandalone';

$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200; # байт

$wgMaxShellMemory = 204800; # в КБ

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

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

Теперь посетите 'http://en.wikipedia.org/wiki/Special:Export. и введите Template:Infobox в большое поле. Отметьте все три поля и нажмите «Экспорт».

Откройте файл в Блокноте или аналогичном, найдите и замените text/plain на CONTENT_FORMAT_TEXT.

Войдите в MediaWiki и перейдите в Special:Import.

После того, как все будет правильно импортировано, перейдите на домашнюю страницу и введите это вверху страницы:

{{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
}}

Большое спасибо


person Peter Jones    schedule 10.04.2015    source источник
comment
status 2 означает ошибку выделения памяти, поэтому попробуйте увеличить доступную память для Lua и для PHP. Я также помечаю это как ОТ, так как это не вопрос программирования.   -  person leo    schedule 10.04.2015
comment
Привет. Я так понимаю ОТ не в тему? Я бы подумал, что часть вопроса о регистрации ошибок в порядке? Не могли бы вы подсказать, где я могу зарегистрировать свой вопрос? С наилучшими пожеланиями   -  person Peter Jones    schedule 10.04.2015
comment
Я бы попробовал один из списков рассылки MediaWiki или, возможно, спросил на ServerFault. Кстати, $wgScribuntoEngineConf['luastandalone']['errorFile'] — это просто имя файла журнала. Вы можете использовать что угодно, например. $wgScribuntoEngineConf['luastandalone']['errorFile'] = /var/log/luaerror.log   -  person leo    schedule 10.04.2015
comment
Просто обратите внимание, что вам нужны кавычки вокруг пути к журналу и точка с запятой в конце строки. Журнал сообщает мне, что: /var/www/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua: синтаксическая ошибка:   -  person Peter Jones    schedule 10.04.2015
comment
Я сообщил об ошибке здесь phabricator.wikimedia.org/T95716.   -  person Peter Jones    schedule 10.04.2015


Ответы (1)


Наконец исправлено. Я сделал:

sudo apt-get install lua

Затем добавил следующее в мой LocalSettings.php

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

Я предполагаю, что двоичный файл lua, включенный в Scribunto, не подходит для Raspberry Pi?

person Peter Jones    schedule 12.04.2015
comment
Этот ответ немного запоздал, но вы совершенно правы. Scribunto собирает только свои двоичные файлы Lua для Windows 32. /64-разрядная версия x86, Linux 32/64-разрядная версия x86 и Mac OSX x86. Поскольку Raspberry Pi использует процессор ARM, ни один из этих двоичных файлов не будет работать. - person Jack Taylor; 29.04.2017