站长视角
用户至上

LookingGlass 在 PHP 7+ 版本报错无法正常使用的解决方法

LookingGlass 是一个非常好的在线测试工具,部署之后可以测试 ping、mtr、traceroute 等信息。前几天把一台部署了 LookingGlass 的 VPS 升级到了 PHP 7.3,升级之后也没注意,不过刚刚想到上去测试了一下,发现居然不能用,这就很奇怪。于是简单排查了一下问题,还好快速定位到了问题所在,就在此记录一下解决方法。这次错误主要是“PHP Fatal error: Uncaught Error: Function name must be a string in Ajax.php”这个错误,是由于 PHP 版本之间语法不兼容导致的。

一、LookingGlass 无法运行的可能原因

如果我们首次安装之后无法运行,或者是在 PHP5 版本上面运行不了。

一般来说都是因为 proc_open 这个函数被禁用导致的,我们只需参考上面的文章将这个函数启用就可以了。

二、LookingGlass 适配 PHP7 以上版本

此外,对于 PHP7 版本,打开调试模式之后,我们可以看到下面的报错信息:

PHP Fatal error: Uncaught Error: Function name must be a string in Ajax.php

这是因为对于 PHP7,写法不一样了,需要对 ajax.php 文件进行修改。

在 LookingGlass 根目录找到 ajax.php 文件,打开后,找到第 44 行:

$output = $lg->$_GET['cmd']($_GET['host']);

替换成:

$output = $lg->{$_GET['cmd']}($_GET['host']);

保存之后,就可以正常使用了。

关于这个问题,其实已经有两个 PR(参考 1参考 2),但是 LookingGlass 项目作者一直没有合并,不知道为什么。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。
文章名称:《LookingGlass 在 PHP 7+ 版本报错无法正常使用的解决方法》
文章链接:https://www.sshce.com/19292.html
【声明】:国外主机测评仅分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问国外主机测评,即表示您已经知晓并接受了此声明通告。
【关于安全】:任何 IDC商家都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

登录

找回密码

注册