MediaWiki:如何在wiki系列上更新.php维护脚本?

时间:2015-12-09 13:31:46

标签: php database upgrade mediawiki wiki

我正在使用共享代码库和共享数据库运行MediaWiki wiki系列。我最近成功升级到1.25.3

我的维基有4个前缀ATM,如下:

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!

请有人告诉我我做错了什么!

4 个答案:

答案 0 :(得分:3)

在运行SERVER_NAME=my.domain.org之前尝试设置php update.php。该脚本可能正在查找$_SERVER,当您从命令行运行时,该{1}}不可用。

答案 1 :(得分:1)

当您查看/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

答案 2 :(得分:1)

执行此操作的方法似乎是将语言和管道回显到命令。例如

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo MyErrorHandler:
    Application.EnableEvents = False

    If Not Intersect(Target, Range("Frametype")) Is Nothing Then

            Sheets("Specification").Range("Framewidth").Value = Application.WorksheetFunction.VLookup(Sheets("Specification").Range("Frametype"), _
                                                                Sheets("Frame Info").Range("FrameTable"), 7, False)

    End If

    Application.EnableEvents = True
    Exit Sub

MyErrorHandler:
    If Err.Number = 1004 Then Range("Framewidth").Value = "error"
    Application.EnableEvents = True

End Sub

(上面的代码将为语言“ en”,“ de”和“ es”运行更新程序,并且如果其中之一失败则将停止并等待命令行输入)

答案 3 :(得分:0)

我修好了。我不得不手动将$wgDBprefix设置为第一个de_然后es_,最后是en_我的三种语言。这样我就可以为每个wiki-family-member运行一次Update.php脚本。

感谢您帮助@leo