VisualEditor没用上几天,突然发现最近老是跳出错误对话框,提示(curl error: 7) Couldn't connect to server
VisualEditor_curl_error.png
从谷歌上搜索到的结果,发现这个问题不算太冷门,而且是多年前就有人提出了,只是尝试了很多方法之后还是无解,最终也是胡乱尝试才解决的。
下面就把查到的各个原因分析如下(包括自己的解决方办法:

Parsoid安装出错或配置文件存在错误所导致

其实Parsoid的安装并不算太复杂,即便是在CentOS上官方也给出了方法,只要照着它的步骤来通常是不会出现太大问题的。

curl http://127.0.0.1:8000

如果能够返回html代码,就说明Parsoid已经正常运行了。

SELinux启用所引发的

通常都是由CentOS或者RedHat同类的系统产生。
可以通过以下的命令来查看SELinux状态:

/usr/sbin/sestatus -v
Linux status: disabled

如果显示启用的话,也可以通过/etc/selinux/config文件进行修改,将其中的SELINUX=enforcing改为SELINUX=disabled,记住一定要重启系统才有效。

防火墙或服务器安全组关闭端口

这个排查兜兜转转地走了很多弯路,完全是凭感觉在处理,所以原本只是很简单的问题却变得极其复杂。
最初出现问题的时候正好是我将阿里的服务器升级专有网络之后的事情,只是这几天捣鼓的时候才想起这个来(同时期的还是有FTP也出现了点小问题)。不过等到有这个意识的时候我把OneinStack都重新升级了一遍,所以某些配置文件可能又发生了变化,这也导致了我虽然把服务器的安全组修改了但仍未起作用。
言归正传,先介绍一下开启阿里云的安全组规则
aliyun_security.png
网上有很多都提到是因为防火墙的缘故,也确实是。现在想来最初用OneinStack一键安装的时候可能并没有开启iptables,所以没有问题。而这次由于升级MediaWiki到1.31版需要PHP7.0以上,就重新下载了新版的OneinStack再次安装了一遍,把iptables开启了。
也就是说防火墙限制了8000端口,导致始终无法连接。

vim /etc/sysconfig/iptables

修改配置文件,在其中添加一条规则

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT

重新加载iptables

systemctl reload iptables

用浏览器打开http://your_wiki_website:8000就能看到

Welcome to the Parsoid web service.
See the API documentation on mediawiki.org.

如果你采用firewall防火墙,那么修改的代码如下:

firewall-cmd --add-port=8000/tcp --permanent
firewall-cmd --reload

以上就是我搜集到相关解决办法。

最后修改:2024 年 01 月 13 日
如果觉得我的文章对你有用,请随意赞赏