星期四, 05 12月 2013 19:27

Joomla 网站空间从Godaddy更换到Arvixe遇到的问题和解决办法

作者 
给本项目评分
(2 得票数)

2013-12-5

Joomla 网站空间从Godaddy更换到Arvixe遇到的问题和解决办法

因为Godaddy的空间对Magento的支持不好,不稳定,本来想换成Oscommerce或者Opencart,但是最后还是决定用Magento,所以就考虑换空间了。关于这两个空间的讨论和比较会在另外一篇里写。

在Blackfriday用全年最低的折扣(50%OFF),而且是Lifetime的。买下了Arvixe的空间。于是就开始了移站的工作了。

好几个网站都是用Joomla做的。我一直是用Akeeba来备份和移站的,但是之前做的都还是在Godaddy的空间,只是在不同的账号里移站,也是必须先下载到电脑里再上传到空间来移站的。只是不会涉及到服务器的设置问题,因为都是Godaddy的空间,所以服务器的类型,数据库的类型,Apache, PHP等都是同样的版本。所以在Godaddy下不同账号之间的移站是非常的顺利的。

但是这次是从Godaddy的空间移站到Arvixe的空间。就不那么顺利了。

Godaddy和Arvixe是用的不同的管理后台,Arvixe是Cpanel的平台,Godaddy的是他自己的平台。

Joomla是CMS中的老大,就像在线商店里Magento是第一的招牌。我从Joomla 1.5的版本开始用,现在都已经是3.0的版本了。Akeeba是Joomla的一个插件,是用来备份和恢复用的。

JB(Joomla Bamboo)是一个开发公司,专门开发基于Joomla平台的模板。Joomla是个开源系统,本身是不收费的,很多在这个平台开发的模板或者插件是收费的。Joomla Bamboo就是其中一家很有名的开发模板的公司,也是我一直最欣赏的之一,另外一家我用的比较多的是Joomlart. 在网上有很多可以免费下载的Joomla的模板,当然是没有版权的。没有版权的意思就是人家随时可以告你。

Torontomeet.com相约多伦多的这个网站是基于Joomla 2.5的平台,用的也是Joomla Bamboo的模板之一。当然是有正版版权的,而且是有rebrand的版权。就是在网站里可以不显示开发公司的名称。

其实下面的是我自己在移站时做的笔记,只是觉得一定有人用得上,就发表出来了。

 

2013-12-04

Joomla网站从Godaddy转到Arvixe的时候出现的问题,用AKeeba转的。

JB基于Joomla3.0的模板用Akeeba移站的时候,可以正常移站,但是移站后的首页显示不正常,如下:

两个网站是这样的问题,首页可以打开如上,错位,没有图片,而且链接也是不对的,重复了三次的域名。哪怕手工改为一遍域名也打不开所有的次级网页。

三个网站的后台都是空白页。

而另外一个JB基于Zen Grid2 Framework的模板,在安装完后首页显示如下:

The template you are attempting to use requires the Zen Grid2 Framework.Please refer to the Zen Grid2 framework documentation for more information.

 

Please note that if you have uploaded the framework manually then you need to make sure that the framework files are located in a folder named zengridframework.

 

Also depending on your server configuration you may need to select the docroot check that can be found on the overview page in the jbxxxxxxxx template admin.

我以前用Akeeba移站的时候,当然是从Godaddy移到Godaddy,都是同样的服务器,所以非常顺利,从来也没有出现过问题。但是这次换到Arvixe的服务器的时候就非常的不顺利,三个站点没有一个成功的。

研究了2天,试过无数的方法。比如在Akeeba里数据库选择Mysqli和Mysql, 或者是数据库下面的不同的选项等。但是没有一个成功的。

今天晚上先折腾出了一个方案,勉强可以实现。但是非常的麻烦。

我做了这个测试。一个网站A是JB模板直接在Arvixe上安装的。可以正常使用,另外一个网站B是用Akeeba从Godaddy转过来的,死活就是不能正常显示,我把这两个网站的文件下载到本地,通过比较软件(Ultracompare和WINDIFF)比较这两个目录的不同,最后把嫌疑落在configuration.php文件上,因为我把能够正常使用的网站A的configuration.php拷贝到不能正常显示的网站B去,则网站B也可以正常显示,但是显示的内容却不是B的,而是A的。原因是数据库还没有改,然后要从Godaddy去下载好数据库,在通过Arvixe的Cpanel去restore,最后再手工修改网站B里的configuration.php文件,设定好数据库和前缀。这么折腾的确是可以用了。

 

就在我正着手转移最大的这个网站 torontomeet.com的时候,这个网站的文件有350M,从Godaddy下载的速度很快的,但是上传到Arvixe的服务器速度比较慢。就在我用Akeeba的时候,在第二页里,不知道为什么,我那一下突然震惊了一下,在Life Site Url那里就空着没有填了。结果发生了惊人的变化,(当然.htaccess文件还是要手工改的。)这次的移站居然成功了。

后来才知道,这里填的url是要包括http://的,我只写了后面的www.torontomeet.com,而没有写http://, 看来还是我填错的原因。

于是我又转回刚才折腾数据库半死的那个网站,用这个我最新发现的办法来测试了一下,果然也是一次成功,原来这么小小的一个参数会有这么大的影响。

我记得在谷歌里根据zengridframework的错误搜索了所有的文章,其中在JB论坛里的确有个人提到过这个life site url,他说他输了错误的网站名,才出现zengridframework的那三段提示错误。所以我在输的时候非常注意输入正确的域名,但是这个问题并没有解决。谁知道这个Life site url应该是空着不要输的。

先别高兴得太早,torontomeet.com的网站首页是显示正常了,但是除了首页外,其他全部都是404就是找不到页面。而且后台登陆后K2的items和Catogories全部丢失。我本来还以为是不是Akeeba没有转移K2的内容,网上搜了一通,居然还真有这么说的,说什么Akeeba不支持K2等的移站,但是我觉得不对,因为我以前用Akeeba移站的时候是全部都移的。所以不会是Akeeba的问题,从Phpmyadmn进去数据库的时候K2的内容都在,所以数据库是没有问题的。那么问题在哪里呢?新建K2的Item在前台可以显示在后台也是看不到的。而且换其他浏览器也能看到,但是据说是如果缓存多了后就会还是会消失。

经过1个多小时的搜索和研究总算是找到解决方案了。

solution to this bug. 

It is as follows: 

/administrator/components/com_k2/models/categories.php

Replace (line 51):

Code:
$query .= " AND c.language = ".$db->Quote($language);


With:

Code:
$query .= " AND (c.language = ".$db->Quote($language)." OR c.language = '*')";



Replace (line 147):

Code:
$query .= " AND language = ".$db->Quote($language);


With:

Code:
$query .= " AND (language = ".$db->Quote($language)." OR language = '*')";



/administrator/components/com_k2/models/items.php

Replace (line 98):

Code:
$query .= " AND i.language = ".$db->Quote($language);


With:

Code:
$query .= " AND (i.language = ".$db->Quote($language)." OR i.language = '*')";



Replace (line 194):

Code:
$query .= " AND language = ".$db->Quote($language);


With:

Code:
$query .= " AND (language = ".$db->Quote($language)." OR language = '*')";



This happens because by default, the categories and items have * (asterisk) in the language field, in the database.

 

这样K2的item和Catogories在后台就都显示正常了。这个问题我原来用Godaddy的服务器的时候从来没有发生过。

下面来解决一下为什么除了首页外都是404的问题。

链接出问题通常都不会是数据库的问题,最大的可能性就是在.htaccess文件了。原来适用于Godaddy空间下的.htaccess文件不适用于Arvixe的空间。

最大的一个不同是, Arvixe的空间默认是没有给目录设定PHP的,设定PHP版本有两种方式,一种是在Cpanel里通过PHPversionManager来修改,另外一种就是直接在.htaccess里写上下面这句话。

AddHandler application/x-httpd-php53 .php .php5 .php4 .php3

导致其他页面404的原因是Rewrite的问题,把.htaccess里所有的RewriteEngine On和RewriteBase都加#就解决这个问题了,加#的意思是就是这句话不起作用。英文是comment it out with a # in front简称就是叫comment out了。

#RewriteEngine On

#RewriteBase

然后就可以正常访问了。

阅读 6756 次数 最后修改于 星期四, 05 12月 2013 22:13
语嫣

冬天来了,春天还会远么?

QQ: 12585787

网站: www.torontomeet.com

You have no rights to post comments, pls login to post.

相约多伦多-TorontoMeet.com © Copyright 2012

网站记录了语嫣同学移民加拿大后在多伦多的生活的点点滴滴和经验分享。

“文章内容是否已经过时需要更新?你有补充的内容么?一定不要吝啬你的评论,和大家分享点什么吧。对于后来者,那都是宝贵的信息,也是一种对我的鼓励。我希望听见大家的声音,让我们共同来培育这片树林。”--语嫣

评论排名

  • 语嫣
    38 ( +8 )
  • 量体温的猫
    10 ( +3 )
  • juliajulia
    7 ( 0 )
  • 轻轻木子
    7 ( +1 )
  • yuga
    5 ( +1 )

友情链接