一个网站通常由域名和一堆网页文件构成 :
域名 : 后缀名本来是有含义的, 例如 com是company,org是organization等等,不过现在没人理会了。作用是作为一个字符串映射到一个IP地址上,这就意味着,你有换空间的自由,哪天对空间服务商不高兴了,把域名解析到别家去,用另一家的空间
网站空间 : 想的简单一些,空间和你的硬盘没啥区别,
1. 域名的设置
注册域名交完银子之后,域名就是你的了(在国内注册要注意,修改注册联系人,管理联系人,技术联系人和付费联系人,如果你在后台找不到修改的地方,那么恭喜你,这个域名不是你的,而是某奸商的,用WHOIS查一下域名信息吧,拿到授权码(Auth Code),国内也有叫域名转移密码的,这个码很重要,如果你不知道或奸商不告诉你,那再次恭喜你,这个域名仍然不是你的,想搬家到别家注册商都搬不了,万一不行遇到这种情况,那么就去ICANN投诉奸商,每天投诉三遍,如果某注册商总是遭到投诉,ICANN会修理它的,总之你一定要知道自己作为消费者有什么权利。
如果域名真的属于你,那么你哪天对注册商不高兴了,也可以把它踹掉,转移到别的注册商下。
域名的设置主要是一些解析工作,包括:
ns*.***.***
之类的网址,这个服务器负责解析下面的各种设置,也就是说,它是域名各项设置的Boss。国内一些域名注册商通常以这一点为手段,卡住用户,比如限制你只能使用它的域名服务器,然后再限制你最多只能设置10项A记录或MX记录等,多了要另外收费,这种规矩实在是很扯淡;尤其是对于那些需要多个子域名的用户,这一点很不方便,国外情况好一些,至少我还没见过有哪家限制你使用特定域名服务器的;
***@***.***
的形式,当你发邮件点“发送”之后,首先你的邮件服务商要根据你的收件人邮箱的域名去找它的MX记录,然后再把邮件发给相应的(另一家)邮件服务商,比如我的域名yihui.name的MX记录是ASPMX.L.GOOGLE.COM,也就是Google Apps的邮件服务地址,当你给[email protected]发邮件的时候,系统先去找一下yihui.name的MX记录,一看,哦,是Google啊,那就投递到Google家去,Google收到邮件,一看,哦,要发给xie用户啊,那就发给xie的收件箱中吧;我记得以前搜狗似乎也提供过免费的邮件服务,不知现在还在不在,我已经用Google Apps很久了。2. 主机的设置
域名设置好了之后,主机上也需要一些呼应工作。要是域名设置了A记录,但主机上不“接收”,那网站也没法使用。主机如何接收取决于它安装的网站服务程序,现在流行的是Apache,当然也有少数网站依旧抱着Windows IIS大腿(用ASP语言+Access数据库),据说近段时间又出现了一款新软件,有取代Apache的可能,名字忘记了。以Apache为例吧,主机上会创建一个虚拟主机(Virtual Host)配置文件,告诉服务器,“嘿,有个网站指向了你,你要为这个网站服务,这个网站放在某某目录下,如果用户访问某个网址,你要负责把该目录下的文件拿出来给用户看。”大致原理就是这样,细节不多说了。
对用户来说,不用管那么多细节,以上原理的实现对你来说就是在后台把域名绑定到主机的目录下(以及子域名绑定到子目录下)。一般来说,网站还需要两个辅助工具才能让主人随心所欲地配置自己的网站,即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这么简单,它的运行就像一个复杂的程序,可能存在文件之间的函数调用以及数据库的存取等等。世上真正开发网站程序的人肯定是少数,所以不用担心,你就用别人的程序吧,典型的网站系统有:
网站的安装都没啥说的,一般都是把网页文件整锅端上服务器,然后访问你的网址,按提示走。该设定网站名称设名称,该输密码输密码。然后你会意识到,原来一个小小的个人也可以创造一个看似吓人的大网站。
但网站的维护并非一件简单的事情,当你有权利面对所有的选项时,你也会觉得痛苦。像我这种业余玩了几年网站的人都快有职业病了,什么地方没对齐就会觉得不舒服,什么地方少了个空格一眼就看出来了,段首空格缩进2字符还是1.9字符感觉就是不一样。所有的东西你都可以改,你愿意怎么布置就怎么布置。只需一个文本编辑器和FTP,你就可以改了传,传了看,看了改。俨然永劫不复了。所以建网站也要有好心态,千万别完美心态,不然这辈子都要不断改。现在网站系统更新也快,隔三差五就有新功能,看得你心痒痒:我是不是该装个A插件/换个B主题啊?张三家有个功能特别酷,我要不要琢磨一下是怎么弄的啊?……
所以,我是建议各位看官学习HTML和CSS以及PHP+MySQL呢,还是不建议呢?我也不知道。
还有搜索引擎优化(SEO),采取一些策略让搜索引擎喜欢你的网站,使得你的搜索排名靠前,你又得学习什么是网页Meta信息(关键词、描述),什么是301重定向,什么是404错误,什么是Apache的Rewrite模块什么是伪静态网址;……