将 php7.0 切换到 php5.7 后,MediaWiki 的 VisualEditor 组件 Parsoid 无法工作

将 php7.0 切换到 php5.7 后,MediaWiki 的 VisualEditor 组件 Parsoid 无法工作

我想请求您帮助:

由于论坛 CMS phpBB 目前不支持 >= php7.0,我不得不在我的 Ubuntu16.04 LTS 服务器上切换到 php5.6。因此从 ppa:ondrej/php 安装了 php5.6 文件,方法是:

sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php

...我切换到了 php5.6。

不幸的是,这导致我的 MediaWiki 的 VisualEditor 停止工作。我在切换 php 之前让 MediaWiki 插件与 parsoid 服务器通信,一切都按预期运行。此外,当我使用以下命令切换回 php7.0 时:

sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php

... wiki 再次正常运行,但是带有 phpBB 功能(如 phpBBCodes 和标签)的帖子无法提交。php7.0 版本不受支持,所以我不能抱怨,所以我正在尝试让 Parsoid 与 php5.6 配合使用(应该受支持)。

在以下情况下显示错误:

其他错误(可能)症状:

  • 我第一次在服务器上使用 Parsoind 配置 VisualEditor 时遇到了上述错误。我通过在 MediaWiki 上安装和配置 Extension:NetworkAuth 解决了这些问题。当我在 php7.0 上获得 500 时,在我让它工作之前,我在 parsoid 日志中收到了以下警告消息:

[warning] [{MY_PARSOID_CONF_PREFIX}/Hlavná_stránka] non-200 response: 401 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>401 Unauthorized</title> </head><body> <h1>Unauthorized</h1> <p>This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.</p> <hr> <address>Apache/2.4.18 (Ubuntu) Server at beta.abs4data.com Port 443</address> </body></html>

...但是,现在我没有在日志中收到任何警告!即使执行“sudo 服务 parsoid 状态“它显示“/bin/sh -c /usr/bin/nodejs /usr/lib/parsoid/src/bin/server.js -c /etc/mediawiki/parsoid/server.js -c /etc/mediawiki/parsoid/settings.js >> /var/log/parsoid/parsoid.log 2>&1”,我希望这意味着它正在将错误消息输出到日志中。

我试过:

  • parsoid 服务重启 -> 一切正常,没有错误或警告
  • apache2 服务重启 -> 一切正常,没有错误或警告
  • ubuntu 服务器重启 -> 没有帮助
  • 检索 parsoid 服务器仪表板:”curl -L {我的网站地址}:8142“-> 它正在检索正确的文件 -> parsoid 正在运行
  • 检索 MediaWiki API php 文件:“curl -L {我的网站地址}.api.php“-> 它正在检索正确的文件 -> 服务器可以访问 MediaWiki API
  • 按照 MediaWiki Parsoid/Troubleshooting 中的描述,我尝试使用“卷曲-L“并获取 HTML。它按预期工作,我得到了 HTML 代码。

可能的原因:

  • 我认为 VisualEditor 无法与我服务器上的 Parsoid 服务器应用程序通信。两者似乎运行良好,配置也很好。但是,在更改 php 版本后,它们停止通信。因此,我认为 Parsoid 或/和 VisualEditor 以某种方式绑定到使用现在已禁用的 php7.0 并创建符号链接经过ln-sfn没有正确告诉 VisualEditor/Parsoid 使用 php5.6。

您觉得如何?有什么建议可以解决或进一步测试此问题吗?

PS:很抱歉,代码格式不正确,但它不知怎么就坏了……看来问题出在我身上了:-D

答案1

我似乎找到了解决方案:

通过安装附加的 php5.6 包,问题得到解决:

sudo apt-get install libxmlrpc-epi0 php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xmlrpc

我想说问题出在缺少php5.6-curl包。我想当我通过执行测试 Parsoid 的功能时curl -L http://my.website.com:8142curl -L http://my.website.com/wiki/api.php我实际上使用的是 php7.0 或其他 curl,而这些 curl 不适用于 Parsoid 服务器应用程序(现在运行的是 php5.6),因此它无法检索执行任务所需的文件。

我们仍然欢迎针对该问题的评论。

相关内容