新新网络 | 域名空间 | 模板网站 | 网站建设服务热线:0755-84185494

网站上传到Godaddy空间后的一些问题

作者:2012-06-04 10:32:00     来源:viful.com      浏览次数:      发布时间:2012-06-04 10:32:00

近日受老板的委托,将公司的.com域名也注册了下来。由于目前公司.cn网站在国内存在被重新备案的不确定性,所以没有将.com域名也解析到国内新网的.cn空间。作为过渡的方案,我在godaddy购买了三个月的空间,准备将公司网站放到国外去,一则免去了备案的繁琐手续,二则国外的空间普遍比国内要低廉。

对于国外的HOSTING空间,我接触还比较少,自己的博客是放在linode的VPS,本来一开始是打算将公司的网站也放到VPS里面的,但是后来由于存在太多的技术问题一时半会解决不了|,所以放弃了这个想法。

目前将原来存放于国内新网空间的asp的网站原封不动地转移到国外vps中去存在如下的问题:

1.asp网站是基于windows操作系统的,而VPS大多是开源免费的linux操作系统,移植性存在不确定性。

2.windows下的网页服务器是IIS,而我目前VPS所使用的网页服务器是nginx,兼容性欠佳。

3.公司的网站是微软的asp框架,而VPS目前使用的免费且强大的php框架,如果不通过第三方插件,根本无法兼容。

4.asp网站所使用的数据库也是微软的access数据库,而VPS是基于LNMP架构的,也就是说使用的免费开源的mysql数据库,根本无法移植。

基于以上的缘由考虑,最后还是决定在这些问题都无法完美解决之前找一个应急方案最靠谱,这个应急方案就是使用godaddy提供的相对便宜的hosting空间,每个月的费用5美金不到,作为实验性的方案还是可以接受的。

下面就谈谈本次在将公司网站上传到godaddy空间的过程中所碰到的问题以及解决这些问题的办法。

问题一:网站内的中文页面全部变成乱码

其实这个问题的原因不难解释,虽然国内新网的空间和在godaddy购买的空间都是windows操作系统的,但是两者还是有区别的。新网购买的空间windows操作系统是简体中文版的,而在godaddy购买的空间则是纯英文版的。编码的不同是直接导致中文网页出现乱码的主要原因。

解决的办法:在每个网页文件前面都加上

<% @language=vbscript codepage=936%>

这个办法是网上流传最广的解决godaddy空间中文乱码的办法。虽然有用,但是如果对于网页文件数量庞大的站长来说,这个办法并不聪明——不过话说回来,网站的转移从来都是一件苦差事,费时间又费脑力。去年年底博主在给微服私访转移VPS的时候就为此折腾了大约一个星期。原理虽然简单,但是不确定性的东西太多,而且问题不是赤裸裸地一次性全部摆在你的面前,它可能今天出点状况,明天出点状况,所以费周折是少不了的事情了。往往这个时候理论知识并不是最重要的,实际的操作经验才是王道。

问题二:部分网页打开存在”500(internal server)error”错误

当然,出现这个错误的原因有太多了,比如网页不存在、数据库无法访问、路径错误等等,要找出这个错误背后的原因也着实费了我一番周折。最开始的办法就是瞎猜,凭着之前的经验猜测导致错误出现的原因。因为之前在做“微服私访”和另外一个论坛的时候也曾经碰到过类似的情况,所以我想这个错误的原因很可能还和之前一样是由于网页文件的权限导致的。

在网上搜索这个错误,很多都说是godaddy的root读写权限没有放开。但是通过进入godaddy的FTP File Manager 才发现godaddy的root文件夹根本无法进行permissions用户自定义授权。当时心里头就咯噔了一下——难道就止步于此了?问题出在root权限上,而死扣死扣的godaddy又没有对root放权。但是随即又否定了自己这样的想法,因为想到使用godaddy空间的人全世界那么多,碰到类似问题的也肯定大有人在,若都这样无解的话,godaddy不早就关门大吉了啊?

幸好在束手无策的时候,在网上找到了一篇介绍web.config文件的文章,web.config文件其实只有如下的几行小代码:

<?xml version="1.0"?>

<configuration>

<system.webServer>

<httpErrors errorMode="Detailed" />

<asp scriptErrorSentToBrowser="true"/><!–这句是针对Asp网站输出详细错误信息的(前提是你的IE打开了显示详细错误信息功能)–>

</system.webServer>

</configuration>

这个文件写好之后放在网站的根目录,它的作用是将网页出现错误时出现的500(internal server)Error页面转向一个显示问题原因的页面,虽然godaddy的500页面够黑色幽默,但是对于解决问题无任何参考价值,在使用web.config之后显示的错误页面虽然没有500页面那么“生动”,却能实实在在得将所遇到的问题显示出来,给解决问题提供至关重要的参考。

如下是我在上传了web.config页面之后取代500页面的页面内容:

Microsoft JET Database Engine error '80040e09'

Cannot update. Database or object is read-only.

D:/HOSTING/9418427/HTML/CN/../inc/news2_inc.asp, line 13

这个已经很直观了,它给出的错误出现的原因是不能更新数据库或者是对象属性为“只读”。这个错误提示我们很可能和root的权限没有什么关系,至少没有直接的关系。如果将数据库文件的属性设置为read and write 会怎样呢?

事实证明我想的是正确的,在将数据库所在的文件夹属性设置为“写读”之后,错误页面消失了,网页可以正常打开了!如下是godaddy进行root文件夹以外的文件夹读写权限设置的步骤:

后记:以上的两个问题已经得到了解决,不过还有很多新的问题在出现。——我曾经在前面的博文中说过,出现问题不是坏事而是好事,只有不断地碰到问题,一个人才会进步,知识也只有在不断地解决问题中才能得到巩固和积累!