我遇到了一个问题,我负责的 MediaWiki 上的 diff总是空的。
$wgExternalDiffEngine
在我的 中没有设置LocalSettings.php
,所以应该默认为false
,即“如果可用则使用 wikidiff2,否则使用 PHP 实现”。
wikidiff2
然而,出现可用。内容为/etc/php5/mods-available/wikidiff2.ini
:
extension=wikidiff2.so
并且wikidiff2.so
存在于/usr/lib/php5/20121212
。
如果我去Special:Version
在“已安装的扩展”下,有“Wikidiff2(版本)”。这表明它已安装,但不知何故无法工作,因为它甚至无法识别它是什么版本。
我启用了日志记录,然后查看了日志文件并看到:
wfShellExec: 'wikidiff2' '/home/web/wikidata/upload/tmp/diff_f9tuWC' '/home/web/wikidata/upload/tmp/diff_TsMWXK'
Possibly missing executable file: 'wikidiff2' '/home/web/wikidata/upload/tmp/diff_f9tuWC' '/home/web/wikidata/upload/tmp/diff_TsMWXK'
这表明它以某种方式尝试运行名为的可执行文件wikidiff2
,而不是使用wikidiff2.so
扩展名。为什么?
我最近才继承了这个责任,所以不幸的是我不知道服务器是如何进入当前状态的。有什么想法可能发生了什么,我该如何解决它?
答案1
我通过以下方式修复了这个问题:
$wgExternalDiffEngine = false;
在 中LocalSettings.php
。这让我很困惑,因为它没有在 中设置LocalSettings.php
,false
应该是默认的。但我猜它是在其他地方设置的?