关于这篇文章,可能花较多的内容来解决WHMCS迁移后的乱码问题,大家可能要问,你这个标题不是写的WHMCS迁移到VPS的教程吗?其实,数据的迁移真的是一个简单的过程,所以我只是大概阐述,不过这个乱码的问题,却是一个令很多人纠结的事情。
Hostgator在本月对基本上所有的分销账户服务器进行了迁移和IP更换,并带来了大量的问题,可能影响到目前所有IDC销售的WHMCS主机,一些朋友就想算了,要么买个终身授权,要么就去用无视授权,受部分客户所托,我写一篇WHMCS从主机到VPS的迁移教程,请留意,本文提及的VPS编译的是军哥LNMP一键包最新版本。
整个搬迁的过程,我将他分为三个部分:备份→导入→调试。
备份篇因为这里赵容所说的是从WHMCS主机迁移,所以备份非常的简单,登陆cPanel面板,选择文件菜单中的备份功能。
然后选择下载或者生成全部备份,这里,你可以选择备份在本地主目录,也可以备份到您的VPS或者服务器上,我这里直接备份到准备用来恢复的VPS上,更方便。
如果该VPS并未安装FTP,在这里备份也可以选备份目的地为安全副本(SCP),就是通过类似SSH直接备份到您的VPS上的目录。
注意,CP面板备份的压缩包中,我们仅需要了解两个内容的目录:
1、public_html,这个目录下有我们原本的所有的源码文件,在压缩包中homedir.tar压缩文件内;
2、数据库文件,这个是我们的数据库,在压缩包的mysql目录中,以您的数据库名称命名的一个.sql文件。
恢复篇教程假定我们已编译LNMP及必要组件(如:ionCube,IMAP等),同时,新建虚拟主机您的WHMCS域名,在/home/wwwroot/下有了您建立的该域名的目录。
恢复我将它分为2个部分:
1、恢复文件。在VPS中命令解压压缩包中的homedir.tar,得到public_html文件夹,mv里面的内容到您建立的虚拟主机的文件目录/home/wwwroot/****,并修正目录权限;
2、恢复SQL。先登陆phpmyadmin,建立与我们之前WHMCS同名的数据库,数据库用户,密码(这里您也可以建立不同的,最后修改下配置文件即可,图省事的就知道建立一模一样的)。
接下来,在MySQL文件目录,用mysql –u 用户名 –p 数据库名 < 数据库文件,导入数据库。
调试篇在调试篇的开头,我们说下乱码问题,先看一张截图:
如上图,恢复后,我们发现后台添加的中文内容,全部乱码的,包括网站标题,产品信息,邮件模板,等等。
在网络上搜索了一通,大部分包括两类,一个是解决跟我上面图中一样的乱码问题的,千篇一律是修改configuration.php,添加$mysql_charset = "utf8";;另一个是密码乱码,导致后台无法登陆服务器和主机,这个是替换配置文件中的$cc_encryption_hash这一行内容。
很遗憾,这两个都无法解决WHMCS主机迁移到VPS上的乱码问题,第一个方案没有作用,第二个方案根本不适合,因为我们是直接恢复原来的文件,$cc_encryption_hash内容根本就是一模一样的。遇到问题,要举一反三。我将备份的数据库文件打开,发现数据库内容里面本身就是乱码的,phpmyadmin登陆到原来主机的数据库中,查看到的编码也是utf8,这就真的见鬼了。原因只有一个,原来的数据库编码根本就不是utf8,尝试远程强制编码为latin1导出数据库,再打开数据库查看,发现导出的数据库不是乱码了,看来,原来的数据库是latin1,并非utf8.
这样的话,我们可以有两种解决方式:一种,就是导出latin1之后转码,转为utf8再导入恢复;另一种更简单,直接修改configuration.php,添加$mysql_charset = "latin1";,强制在新的环境也使用latin1。
另外,我尝试过在DA面板,CP面板恢复,都没遇到这种乱码问题,但是LNMP尝试过多台VPS,均为乱码。
请留意我以上并不是一个通用的解决方案,以上的过程只是告诉您遇到问题可以多角度的检查,不要看教程就死搬,照搬也要看自己的环境是不是一模一样。另外,Hostgator新服务器上的数据库导入可能不会乱码,旧服务器数据库的编码部分有类似问题。
乱码问题解决之后,我们转移到VPS上,还需要对下列问题加以修改或者处理:
1、在VPS上设定自动任务,原来使用主机是直接添加到时钟守护作业,现在在VPS上用crontab -e添加自动任务进程;
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。