lala.im:解决WHMCS整合EasyPanel开虚拟主机不能切换PHP版本的问题

運維技術·lala.im · 2017-08-15 · 183 人浏览

原文地址:https://lala.im/795.html,請支持原作者!該處僅作轉載。

前两天写了一篇《WHMCS整合EasyPanel实现自动开通销售虚拟主机》的教程,在解决了一堆坑之后,还有一个巨坑没填:默认开通的虚拟主机PHP版本是5.3.3,这个版本存在严重的安全漏洞!并且已经开通的虚拟主机用户无法通过前台面板切换PHP版本,就连管理员在后台面板都无法切换。
先来简要分析一下这个坑形成的原因:
因为EasyPanel的空间模板中有两个样式,一个是“旧格式”一个是“PHP”。如果在创建虚拟主机的时候使用的模板是“PHP”则用户在前台看到的切换PHP那块功能是异常的,切换的版本那里会显示空白,如果选中空白并切换那么就不解析PHP脚本了,也就是说根本不能切换,只能使用默认的PHP5.3.3。这明显是EasyPanel的一个BUG。反之如果我们在创建虚拟主机的时候选择的模板是“旧格式”并指定一个PHP版本,那么用户在前台干脆就没有切换PHP版本的下拉菜单了,也就是根本就没有这个功能了,自然还是不能切换。而又因为我们之前使用的WHMCS接口,在空间类型上只能选择“PHP”模板,也就导致了这个问题的发生。
LALA今天仔细研究了一下,找到了一个最佳的解决方案,下面来分享给大家~
首先不能使用我之前文章中的那个WHMCS接口,要用我在本文发布的这个接口,下载地址:
http://0o0.lol/index.php/s/irAbXOy1N82KUdf
这个接口和之前的那个接口最大的区别就在于这个接口可以开通“旧格式”的空间。
现在我们登录EasyPanel的后台,点击“产品列表”-“增加产品”如图:

範例
在新页面中输入你的产品名称,并设定好空间和数据库的大小,在模块这里一定要选择“无(旧格式)”,接着在语言下拉菜单那里选择php,并将后面的默认引擎改成php5630,如图:

範例
点击显示其他高级选项,在这里可以填写更多的信息,这些你们就自己按需填写即可:

範例
全部都确认填写好后点击“确认提交”即可。
现在来到WHMCS这边,安装好我之前给你们准备好的接口,看到接口设置这里,在这个接口设置中我们只用填写“产品名称”,其他什么都不用填写。产品名称就是我刚才让你们在EasyPanel中新增产品的那个产品名称,一定要填写一模一样的。

範例
现在来测试开通一个虚拟主机,你们可能会出现类似这样的问题,在往虚拟主机目录中上传文件的时候提示目录没有权限之类的。这也是EasyPanel的一个BUG,解决办法是登录你的VPS或者服务器输入如下命令:

chmod -R 777 /home/ftp/

注意上述命令一定要在你自己先通过WHMCS下订单创建好一个虚拟主机后再输入,并且这个命令也无法解决你当前创建的这个虚拟主机目录权限问题。它的作用只是解决以后其他用户的虚拟主机目录不在出现此类问题。说白了就是你自己要先创建一个虚拟主机,然后输入这个命令来解决以后创建的虚拟主机不再出这种问题。切记这一步操作非常重要,一定要做!否则以后用户在你WHMCS下单的虚拟主机都是没有权限的,并且也无法再次修改。
现在我们再重新通过WHMCS购买一台虚拟主机,然后上传一个探针看下空间环境是否正常:

範例
现在来修复EasyPanel用户无法切换PHP版本的BUG。
首先使用Xshell登录你的VPS或者服务器,进入到这个目录下:

/vhs/kangle/nodewww/webftp/vhost/view/default/

将这个目录中的kfinfo.html文件下载到本地并用EditPlus打开,删除如图中的两段代码:

範例
上传修改好的kfinfo.html覆盖掉原文件即可。现在来看看用户前台是否可以显示切换PHP的选项了:

範例
尝试切换一下,然后看看探针信息是否切换成功:

範例
注:EasyPanel中显示的PHP52实际上就是PHP5.3.3,这是EasyPanel的一个显示BUG。
至此,Kangle和EasyPanel挖给我大大小小的坑就算全部填完了吧,现在可以使用这套系统开始卖虚拟主机了,又一个小学生IDC要诞生了?233
另外给大家附上EasyPanel官方的各个PHP版本安装脚本:
【php插件】easypanel php-5.5.38 for linux版 (集成zend和ioncube)

wget http://download.kangleweb.com/misc/php-5.5.38/php5538-ep.sh -O php5.5.38.sh;sh php5.5.38.sh

【php插件】easypanel php-5.6.30 for linux版 (集成zend和ioncube)

wget http://download.kangleweb.com/misc/php-5.6.30/php5630-ep.sh -O php5.6.30.sh;sh php5.6.30.sh

【php插件】easypanel php-7.1.6 for linux版 (集成zend和ioncube)

wget http://download.kangleweb.com/misc/php-7.1.6/php716-ep.sh -O php7.1.6.sh;sh php7.1.6.sh

LALA的后话:
首先别太相信官方给各位准备的这些PHP版本说是集成了zend和ioncube,实际上可能还需要自己手动安装。其次记得将你安装的各个PHP版本中的php.ini做函数禁用的操作,如果不做限制,可能会出现各种安全问题。最后还是提醒一下各位EasyPanel已经快2年没更新了,不确定是否已经存在安全漏洞。

運維技術 WHMCS lala.im
Theme Jasmine by Kent Liao