база данных — MediaWiki: Как обновить скрипт обслуживания Update.php для семейства вики?

Я использую вики-семейство MediaWiki с общей кодовой базой и общей базой данных. Я недавно успешно обновлен до 1.25.3,

В моей вики есть 4 префикса банкомата, вот так:

en_
de_
es_
shared_

Я пытаюсь запустить свой скрипт update.php так:

php update.php --wiki myWikiName-de_ --doshared
php update.php --wiki myWikiName-en_ --doshared
php update.php --wiki myWikiName-es_ --doshared

на моем сервере. Это должно в теории работать. К сожалению, это ВСЕГДА использует myWikiName-en_ и игнорирует мой вклад ..

PHP Notice:  Undefined index: HTTP_HOST in /var/www/myWiki/wiki/LocalSettings.php on line 176
<br />
<b>Notice</b>:  Undefined index: HTTP_HOST in <b>/var/www/myWiki/wiki/LocalSettings.php</b> on line <b>176</b><br />
MediaWiki 1.25.3 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for myWikiName-en_
Depending on the size of your database this may take a while!

Пожалуйста, кто-нибудь, скажите мне, что я делаю не так!

0

Решение

Попробуйте установить SERVER_NAME=my.domain.org перед запуском php update.php, Сценарий может искать $_SERVER который, поскольку вы работаете из командной строки, недоступен.

3

Другие решения

Когда вы посмотрите на /maintenance/update.php, вы увидите, что это расширение /maintenance/Maintenance.php, где были определены различные параметры.

Я успешно использовал параметр conf, который сообщает сценарию Maintenance.php (и сценарию update.php тоже) о расположении файла LocalSettings.php, который будет использоваться:

$ php update.php --conf /var/www/<myWebfolder>/da/LocalSettings.php
$ php update.php --conf /var/www/<myWebfolder>/de/LocalSettings.php
$ php update.php --conf /var/www/<myWebfolder>/en/LocalSettings.php

и т.п.

1

Способ сделать это, похоже, состоит в том, чтобы повторить язык и передать команду. Например.

for lang in en de es; do
echo $lang | php update.php || read x
done

(приведенное выше запустит программу обновления для языков ‘en’, ‘de’ и ‘es’ и остановит и будет ждать ввода из командной строки, если один из них завершится неудачно)

1

Я починил это. Я должен был вручную установить $wgDBprefix сначала de_, затем es_ и, наконец, en_ для моих трех языков. Таким образом, я мог бы запустить скрипт Update.php один раз для каждого члена вики-семьи.

Спасибо за помощь @leo

0
По вопросам рекламы [email protected]