Mediawiki 升级问题 - PHP 致命错误:找不到类'LiuggioStatsdClientFactoryStatsdDataFactory'



由于StatsdDataFactory,我很难将Mediawiki从1.23升级到1.25。

我成功地完成了"作曲家更新"和"php update.php"。但是当我尝试"php rebuildall.php"时,我收到以下错误:

PHP 致命错误:类 'Liuggio\StatsdClient\Factory\StatsdDataFactory' 未在 中找到 /var/www/html/mydomain.com/w/include/libs/BufferingStatsdDataFactory.php 在第 33 行

(1( CentOS 6.6 + PHP 5.3.3 + Apache 2.2.15 + mysql 14.1

和在

(2( CentOS 7.1 + PHP 5.4.16 + Apache 2.4.6 + mariadb 15.1

我打开了 BufferingStatsdDataFactory.php 文件。

(第 23 行(使用 Liuggio\StatsdClient\Factory\StatsdDataFactory;

(第 33 行(类 BufferingStatsdDataFactory 扩展 StatsdDataFactory { 受保护的$buffer = 数组((;...

然后我在/var/www/html/mydomain.com/w/打开 composer.json,发现包含"liuggio/statsd-php-client"。

    "require": {
            "cssjanus/cssjanus": "1.1.1",
            "ext-iconv": "*",
            "leafo/lessphp": "0.5.0",
            "liuggio/statsd-php-client": "1.0.12",
            "oojs/oojs-ui": "0.11.3",
            "php": ">=5.3.3",
            "psr/log": "1.0.0",
            "wikimedia/cdb": "1.0.1",
            "wikimedia/composer-merge-plugin": "1.0.0",
            "wikimedia/utfnormal": "1.0.2",
            "zordius/lightncandy": "0.18"
    },

在这个文件中,我模仿了这里显示的解决方案(PHP 致命错误:在/MyApp/chat-server.php 中找不到类"MyApp\Chat"(。

    "autoload": {
            "psr-0": {
                    "ComposerHookHandler": "includes/composer"
            }
            "psr-4": {
                    "Liuggio\": "includes/composer"
            }

},

但它没有奏效。以下也不起作用。

            "psr-4": {
                    "Liuggio\": ""
            }

当我注释掉 BufferingStatsdDataFactory.php 时,我得到了另一个错误:

PHP 致命错误:在 中找不到类"BufferingStatsdDataFactory" /var/www/html/mydomain.com/w/include/context/RequestContext.php on 137路

现在我的维基网站无法访问。我欢迎任何建议。

检查vendor/liuggio/statsd-php-client目录。如果类不存在,则您会遇到某种作曲家问题。如果类存在,则它们可能不包含在 Composer 用于将类名映射到文件路径的文件中。(根据其配置,Composer 可以通过根据完全限定的类名遍历目录来动态查找文件,或者通过在文件中存储完整的类 => 路径映射来提高自动加载性能。如果自动加载器是以一种方式配置的,而更新命令必须以另一种方式重新生成类映射,则会出现这样的错误。要解决此问题,请运行 composer dump-autoload --optimize

我发现通过7Zip或PeaZip在Windows中解压缩mediawiki-n-n.tar.gz文件会导致文件名损坏 - 不仅在vendor/liuggio/statsd-php-client下,而且在resources/src/mediawiki.rcfilters/*和其他人下。

提取的文件缺少其名称的最后部分,例如:

mw.rcfilters.ui.FilterItemHighlightButton.le
mw.rcfilters.ui.FilterMenuHeaderWidget.l
mw.rcfilters.ui.FilterMenuOptionWidget.les
mw.rcfilters.ui.FilterMenuOptionWidg

而不是:

mw.rcfilters.ui.FilterItemHighlightButton.less
mw.rcfilters.ui.FilterMenuHeaderWidget.less
mw.rcfilters.ui.FilterMenuOptionWidget.less
mw.rcfilters.ui.FilterMenuOptionWidget.monobook.less

我在 extensions/resources/tests/vendor/ 下发现了不正确的文件。

一旦我切换到 cywgin tar 解压缩mediawiki-n-n.tar.gz存档,文件名是正确的。

因此,如果您看到此错误:不仅仅是vendor/liuggio/statsd-php-client损坏,提取的存档的其他部分可能来自 7Zip/PeaZip 不正确。 我建议你用cygwin的tar解压缩。

已填充为 https://phabricator.wikimedia.org/T123569 。看来你只需要运行composer update.

从 https://phabricator.wikimedia.org/T123569 文章中 Antoine 'hashar' Musso 引用(谢谢(, 一旦你下载作曲家补丁: https://gerrit.wikimedia.org/r/#/c/264072/,我复制了文件夹:

composer/liuggio/statsd-php-client

并覆盖:

vendor/liuggio/statsd-php-client

文件夹,现在找到了丢失的类。 - 固定!
mediawiki全新安装只有界面,缺少类。

这是很久以前的事了,但是就在今天,我不得不在MediaWiki的最新发行版中为此而苦苦挣扎。没有任何帮助,在本地或服务器端解压缩MediaWiki存档。基本上statsd-php-client库文件在解压缩过程中是出了名的损坏。你需要做的是转到这个 Git 存储库 https://github.com/liuggio/statsd-php-client/并手动下载库,然后将其解压缩并将内容复制到 MediaWiki 目录中的 vendor/liuggio/statsd-php-client 文件夹中。希望它能拯救某人的挣扎。

快速说明:我遇到了同样的错误,但由于我正在使用的网络主机,我无法运行作曲家更新。进一步的谷歌搜索表明,这可能是由于我的网络主机上的解压缩行为异常。我只是在我的MacBook Pro上本地解压缩了mediawiki文件,FTP将所有文件都打开了,这解决了我的问题。

我在Mediawiki 1.35.1中遇到了这个问题。这个问题存在了很长时间,核心团队中没有人关心解决这个问题。我今天不得不花一个小时在Windows机器上安装。

从 Github 存储库 https://github.com/liuggio/statsd-php-client 下载文件,并替换为当前文件。

对于这个问题,我不得不用下载的文件替换mediawiki_installation_directoryvendorliuggio的内容 https://github.com/liuggio/statsd-php-client

相关内容

  • 没有找到相关文章

最新更新