Я использую вики-семейство 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!
Пожалуйста, кто-нибудь, скажите мне, что я делаю не так!
Попробуйте установить SERVER_NAME=my.domain.org
перед запуском php update.php
, Сценарий может искать $_SERVER
который, поскольку вы работаете из командной строки, недоступен.
Когда вы посмотрите на /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
и т.п.
Способ сделать это, похоже, состоит в том, чтобы повторить язык и передать команду. Например.
for lang in en de es; do
echo $lang | php update.php || read x
done
(приведенное выше запустит программу обновления для языков ‘en’, ‘de’ и ‘es’ и остановит и будет ждать ввода из командной строки, если один из них завершится неудачно)
Я починил это. Я должен был вручную установить $wgDBprefix
сначала de_, затем es_ и, наконец, en_ для моих трех языков. Таким образом, я мог бы запустить скрипт Update.php один раз для каждого члена вики-семьи.
Спасибо за помощь @leo