我最近搭好了魔方云主控,用的是 3.9.22 版本,结果发现页面有点卡,加载虚拟机要转半天。一开始我以为是网络问题,但看了其他用户反馈后才知道,这很可能是魔方云版本和 PHP 配置的问题。今天就把我排查和解决的过程整理出来,给遇到同样问题的朋友一个参考。
![图片[1]-魔方云3.9.22版本卡顿问题解决方法,魔方云主控节点加载慢、经常转圈,看这一篇就够了-朝晞小屋](https://aliyun.zxiyun.com/images/2026/10/20261001132735753-1708996809632752-OhXVf0.png)
先说结论:这个卡顿和网络没关系,也不是节点的问题,根子出在 PHP 配置上。大家常说的“删除 info”,其实就是把 PHP 禁用函数里的 phpinfo 去掉。改完三项配置再重启 php-fpm,问题就解决了。
一、我是怎么排查的
我先确认了一下自己这台机器的环境,方便后面分析:
- 面板目录:
/home/zjmf/dashboard/www/public - 框架:ThinkPHP + ionCube 加密(280 个文件)
- PHP 版本:7.2.24 + ionCube 11.0.0
- 禁用函数:
disable_functions = phpinfo - OPcache:未安装
- realpath 缓存:被注释了,没生效
- 面板端口:4431,API 端口:4434,后端端口:4433/4430
环境确认之后,问题的原因就慢慢清晰了。
二、卡顿的三个原因
1. phpinfo 被禁用(核心原因)
魔方云 3.9.x 在探测环境、做诊断的时候会调用 phpinfo(),但我这台机器的 php.ini 里设置了 disable_functions = phpinfo,把这个函数禁用了。函数被禁之后,每次调用都会触发告警和异常,请求就被拖慢了。大家说的“删除 info”,就是去掉这个禁用。
2. 没开 OPcache,realpath 缓存也被注释了
面板里有 280 个 ionCube 加密文件,每个请求都要重新解密、编译一次,本来就挺吃性能的。再加上 realpath 缓存没开,文件系统还要反复 stat。这就是加载“转半天”的主要来源。
3. 两个隐患:暴露 PHP 版本、内存偏小
另外还有两个隐患:expose_php = On 会在响应头里暴露 PHP 版本,有安全风险;memory_limit = 128M 对带 280 个加密文件的面板来说也偏小了。
三、我的解决办法(改 php.ini)
打开 /etc/php.ini,把下面三项改掉:
; 1) 去掉 phpinfo 禁用
disable_functions =
; 2) 隐藏 PHP 版本
expose_php = Off
; 3) 打开 realpath 缓存
realpath_cache_size = 4096k
realpath_cache_ttl = 600
改完之后,重启 php-fpm 让配置生效:
systemctl restart php-fpm
提醒一下:不要自己额外装 OPcache。官方建议是关闭 OPcache,因为部分环境下 OPcache 和 ionCube 会冲突。我这台机器本来就没装,所以只改了上面三项,够用了。
四、改完之后的效果
配置改好、php-fpm 重启成功后,我逐项验证了一下,全都生效了:
phpinfo()可以正常调用,实测返回bool(true)realpath_cache_size已变成 4096k,realpath_cache_ttl已变成 600expose_php已关闭- 面板端口响应:4431 约 13ms、4434 约 15ms
这里说明一下,4434 返回 403 是正常的,因为没请求正确的路径。面板本地响应已经恢复到毫秒级,加载虚拟机列表明显快多了。
五、几个小提醒
- 改完后建议在浏览器里按 Ctrl+F5 强刷一次,再看虚拟机列表的加载速度。
- 最好先清一次面板缓存:
rm -rf /home/zjmf/dashboard/www/runtime/cache/*(保留目录本身就行)。 - 如果强刷之后还是慢,可以再查查节点 API(
/manserver/cloud_ceph.php被调用得比较频繁)和 MySQL 慢查询。 - 我这台机器启动时提示
libX11.so.6缺失,导致 gd 扩展没加载,会影响验证码、缩略图这类图形功能。这是既有问题,和这次修改无关,有需要再单独处理。
六、总结
这次卡顿的根因就是 PHP 配置:phpinfo 被禁用,加上缓存没开。所以“删除 info”并不是什么高深操作,只要在 php.ini 里把 disable_functions 的 phpinfo 去掉,再顺手打开 realpath 缓存、关掉版本暴露,重启 php-fpm 就好了。希望这篇分享能帮到遇到同样问题的朋友。











暂无评论内容