我正在使用共享代码库和共享数据库运行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!
请有人告诉我我做错了什么!
答案 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