网站的组成
一个网站需要有一个域名、一台服务器、一套可运行的网站程序,这三个缺一不可,下面我们将逐一介绍这三个。
域名
域名相当于我们的居住地址,通过这个域名可以找到我们的网站,其中还隐藏了一个知识点,那就是IP,由数字和点构成,比较难记不便于宣传,所以一般都是使用域名,域名的后缀名本来是有含义的,例如 com 是 company,org 是 organization 等等,不过现在没人理会了。
服务器
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
网站程序
网站程序用于对用户显示内容,可以是静态的网页,也可以是动态的网站程序,动态语言程序可能需要数据库的支持,主要是方便修改网页和后期维护。
购买域名
上面对域名做了简单的介绍,接下来我们将为你介绍如何购买域名和解析域名。
注册域名交完钱之后,域名就是你的了,你可以在域名过期前使用这个域名,在国内注册要注意,修改注册联系人,管理联系人,技术联系人和付费联系人,如果你在后台找不到修改的地方, 那么这个域名可能不是你的,而是某奸商的。
用WHOIS查一下域名信息,拿到授权码(Auth Code),国内也有叫域名转移密码的,这个码很重要,如果你不知道或奸商不告诉你,那这个域名仍然不是你的,想搬家到别家注册商都搬不了, 万一不行遇到这种情况,那么就去ICANN投诉奸商,每天投诉三遍,如果某注册商总是遭到投诉,ICANN会修理它的,总之你一定要知道自己作为消费者有什么权利。
如果域名真的属于你,那么你哪天对注册商不高兴了,也可以把它踹掉,转移到别的注册商下。
域名的设置
域名的设置主要是一些解析工作,域名服务器(name server):通常是ns*.***.***之类的网址,这个服务器负责解析下面的各种设 置,也就是说,它是域名各项设置的Boss。
国内一些域名注册商通常以这一点为手段卡住用户,比如限制你只能使用它的域名服务器,然后再限制你最多只能设置10项A记录或MX记录等,多了要另外收费,这种规矩实在是很扯淡。
尤其是对于那些需要多个子域名的用户,这一点很不方便,国外情况好一些,至少我还 没见过有哪家限制你使用特定域名服务器的;
要特别提及的一点是,有些空间服务商只需要你把域名服务器设置为他们的域名服务器,剩下的所有解析问题你基本上都不用管了,你可以自由创建子域名,而不必添加A记录
- A记录:就是将域名指向主机IP,可以将顶级域名或子域名指向特定的IP,所以你的子域名和顶级域名可以不在同一台服务器上,比如我可以将www.yihui.name指向66.147.240.177,将test.yihui.name指向127.0.0.1,等等。
- MX记录:就是邮件服务器,大家知道邮箱是
***@***.***
的形式,当你发邮件点“发送”之后,首先你的邮件服 务商要根据你的收件人邮箱的域名去找它的MX记录,然后再把邮件发给相应的(另一家)邮件服务商,比如我的域名yihui.name的MX记录是 ASPMX.L.GOOGLE.COM,也就是Google Apps的邮件服务地址,当你给xie@yihui.name发邮件的时候,系统先去找一下yihui.name的MX记录,一看,哦,是Google 啊,那就投递到Google家去,Google收到邮件,一看,哦,要发给xie用户啊,那就发给xie的收件箱中吧;我记得以前搜狗似乎也提供过免费的 邮件服务,不知现在还在不在,我已经用Google Apps很久了。 - CNAME:即别名,这玩意儿就是个域名“面具”,比如我把google.yihui.name的CNAME设置为google.com,那么你们访问前者的时候实际上就在访问Google,域名中包含的任何路径都会原封不动传递给google.com,比如 google.yihui.name/services/就是在访问google.com/services/,但你的浏览器地址栏中的地址不会显示后 者,而是显示那个“伪装”的地址。
- 其它设置:理论上一个A记录就够用了,别的都不用管。
主机服务器
域名设置好了之后,主机上也需要一些呼应工作。要是域名设置了A记录,但主机上不“接收”,那网站也没法使用。主机如何接收取决于它安装的网站服务 程序,现在流行的是Apache,当然也有少数网站依旧抱着Windows IIS大腿(用ASP语言+Access数据库),据说近段时间又出现了一款新软件,有取代Apache的可能,名字忘记了。以Apache为例吧,主机 上会创建一个虚拟主机(Virtual Host)配置文件,告诉服务器,“嘿,有个网站指向了你,你要为这个网站服务,这个网站放在某某目录下,如果用户访问某个网址,你要负责把该目录下的文 件拿出来给用户看。”大致原理就是这样,细节不多说了。
对用户来说,不用管那么多细节,以上原理的实现对你来说就是在后台把域名绑定到主机的目录下(以及子域名绑定到子目录下)。一般来说,网站还需要两个辅助工具才能让主人随心所欲地配置自己的网站,即FTP和数据库。
用FTP传输网页文件
FTP就是用来传文件到某一台服务器的,只要你购买了虚拟主机服务,一般就会给你一个FTP帐号,你可以利用这个帐号登录你的主机,把网页文件传上 去,然后用户就可以访问了。一点常识是,index.htm/index.php之类的网页文件通常是你在访问一个目录时主机会自动为你查找的文件,比如 你访问yihui.name,主机会自动查找有没有index.php,如果有,就执行这个文件,生成HTML给你的浏览器。这个文件的文件名也许是可以 配置的,但建议不要在这上面特立独行。
现在又很多成熟的建站系统,从网上下载下来然后传到服务器上,访问你的网址,按照提示一步步配置即可,跟装软件没两样。
网站数据库
动态网站大多数需要数据库(即使是文本文件“数据库”),如果你的网站用PHP语言,那么MySQL就是绝配了。若是PHP+MySQL空间(一般 linux主机都是这样),主机服务商会给你分配MySQL数据库帐号,包括:数据库主机(多为localhost)、数据库名、用户名、密码。这四项将 会在你安装网页程序的过程中要求你填写。
网站的运行
对于那些程序员来说,第一个例子通常都是hello world,如果你愿意看hello world的话,就把“hello world”用任何文本编辑工具写在一个文本文件中,命名为index.htm(注意Windows会默认隐藏文件扩展名!你自己保证文件名不是 index.htm.txt吧,我不管了),传到网站根目录下,然后访问你的网站,你就能欣喜地看到这个老得不能再老的hello world了。
一个像样的网站当然不是hello world这么简单,它的运行就像一个复杂的程序,可能存在文件之间的函数调用以及数据库的存取等等。世上真正开发网站程序的人肯定是少数,所以不用担心,你就用别人的程序吧,典型的网站系统有:
- 博客系统(Blog):推荐WordPress,理由是程序写得简洁,扩展性强,问说网现在使用的程序就是WordPress。
- 内容管理系统(CMS):新闻八卦站、教程站等等,顾名思义就是填充内容的,这种网站八成是互相抄,没几个正儿八经写的,所以为了缓解大家的阅读压力,请各位客官珍爱生命,远离这种网站,也不要再重复建设
- 论坛系统(BBS):网民对此应该非常熟悉了,国内常见的系统有PHPWind、Discuz等,国外盛极一时的有phpBB,我个人推荐的是一 款相对新出道的bbPress,理由同WordPress,在大家拼命增加功能的今天(搞得用户面对一大堆选项焦头烂额),难得见到一款拼命减功能的论坛系统
- 维基系统(Wiki):Wikipedia采用的是MediaWiki系统,如果你不想让维基和数据库交互的话,DokuWiki将是不错的选择,它不需要数据库支持,全部都是文本文件操作。
网站的安装都没啥说的,一般都是把网页文件整锅端上服务器,然后访问你的网址,按提示走。该设定网站名称设名称,该输密码输密码。然后你会意识到,原来一个小小的个人也可以创造一个看似吓人的大网站。
网站的维护
但网站的维护并非一件简单的事情,当你有权利面对所有的选项时,你也会觉得痛苦。像我这种业余玩了几年网站的人都快有职业病了,什么地方没对齐就会 觉得不舒服,什么地方少了个空格一眼就看出来了,段首空格缩进2字符还是1.9字符感觉就是不一样。
所有的东西你都可以改,你愿意怎么布置就怎么布置。只需一个文本编辑器和FTP,你就可以改了传,传了看,看了改。俨然永劫不复了。所以建网站也要有好心态,千万别完美心态,不然这辈子都要不断改。现在网站系统更新也快,隔三差五就有新功能,看得你心痒痒:我是不是该装个A插件/换个B主题啊?张三家有个功能特别酷,我要不要琢磨一下是怎么弄的啊?
所以,最后我还是是建议各位看官学习HTML和CSS以及PHP+MySQL,毕竟找别人修改点小东西比较麻烦。
最后还有搜索引擎优化(SEO),采取一些策略让搜索引擎喜欢你的网站,使得你的搜索排名靠前,你又得学习什么是网页meta信息(关键词、描述),什么是301重定向,什么是404错误,什么是Apache的Rewrite模块什么是伪静态网址。