2019/01/14 12:04:51 [error] 21549#21549: *3558 FastCGI sent in stderr: "PHP message: PHP Fatal error: Class SphinxMWSearch contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (SearchDatabase::doSearchTextInDB, SearchDatabase::doSearchTitleInDB) in /var/opt/www/extensions/SphinxSearch/SphinxMWSearch.php on line 15" while reading response header from upstream, client: 192.168.122.1, server: wiki.yuyizhi.org, request: "GET /index.php?title=Special:%E6%90%9C%E7%B4%A2&search=sphinx HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm/php5-fpm.sock:", host: "wiki.yuyizhi.org"
在stderr中发送的FastCGI:“ PHP消息:PHP致命错误:类SphinxMWSearch包含2个抽象方法,因此必须声明为抽象或实现/ var / opt /中的其余方法(SearchDatabase :: doSearchTextInDB,SearchDatabase :: doSearchTitleInDB)第15行上的www / extensions / SphinxSearch / SphinxMWSearch.php”,客户端:192.168.122.1,服务器:wiki.abc.com,请求:“ GET /api.php?action=opensearch&search=bai&namespace=0 HTTP / 1.0”,主机:“ wiki.abc.com”
答案 0 :(得分:0)
SphinxSearch扩展的SearchDatabase类已从REL1_31更改为REL1_32。现在,您需要定义doSearchTextInDB
和doSearchTitleInDB
方法。
请参阅REL1_31 https://doc.wikimedia.org/mediawiki-core/REL1_31/php/classSearchDatabase.html vs REL1_32 https://doc.wikimedia.org/mediawiki-core/REL1_32/php/classSearchDatabase.html
如果您在不赞成使用的情况下搜索Search
,则这是补丁说明中提到的一种(注意,这是向后兼容中断)https://www.mediawiki.org/wiki/Release_notes/1.32#Compatibility:
不赞成在扩展类中重写SearchEngine :: {searchText,searchTitle,searchArchiveTitle}。而是扩展相关的doSearch *方法。
如果您像我一样,又不愿意自己修复此扩展程序,则必须等待扩展程序提供者之一来更新该扩展程序,以使其可与REL1_32一起使用。在此之前,如果您想使用扩展名,则必须停留在REL1_31上。
答案 1 :(得分:0)
仅在SphinxMWSearch.php
类的定义下将这两个空函数添加到SphinxMWSearch
似乎可以解决问题。据我所知,它使它不再抱怨,搜索功能运行良好。
function doSearchTextInDB($term) {
}
function doSearchTitleInDB($term) {
}
希望此扩展程序的开发人员很快会提出正确的解决方案。