新手教程--建立網(wǎng)站的全套流程與詳細(xì)解釋(1)
新手教程--建立網(wǎng)站的全套流程與詳細(xì)解釋 要是Google 這個話題,得到的結(jié)果八成都是廣告——他們都會告訴你,“嘿,我(或某公司)這里可以建網(wǎng)站,傻瓜式的喲,快來投奔我吧!”新手一般都覺得建網(wǎng)站是一
新手教程--建立網(wǎng)站的全套流程與詳細(xì)解釋 要是Google 這個話題,得到的結(jié)果八成都是廣告——他們都會告訴你,“嘿,我(或某公司)這里可以建網(wǎng)站,傻瓜式的喲,快來投奔我吧!”新手一般都覺得建網(wǎng)站是一件超級復(fù)雜的事情,于是很天真很無邪地進(jìn)了圈套,到最后還樂呵呵幫人數(shù)錢。傻瓜式的東西就如它的名字一樣,只是為傻瓜準(zhǔn)備的,要格外小心。 我正式接觸計算機(jī)在2002年,接觸網(wǎng)站建設(shè)在2003年,想想時日也不短了,雖然不是什么高手,但還是有一定發(fā)言權(quán)滴。數(shù)月前,鼓動江堂兄從Live Space 逃脫、建立了自己的窩,而近日又把自己的網(wǎng)站和“統(tǒng)計之都”網(wǎng)站都搬了家,然后也幫“貝吉塔行星”逃離了那抽風(fēng)的Live Space ,后來有朋友問起關(guān)于如何建立個人網(wǎng)站的事情,所以干脆寫篇教程,把這建網(wǎng)站的來龍去脈講清楚。
一、建網(wǎng)站的準(zhǔn)備材料:域名和空間
一個網(wǎng)站通常由域名和一堆網(wǎng)頁文件構(gòu)成:
? 域名:就是“三達(dá)不溜什么什么點(diǎn)坑”這樣的東西(如www.yihui.name ,不嚴(yán)格,見后話),它由一家非營利組織ICANN 管理,但它授權(quán)給了若干注冊商(registrar )去賣域名,你可以在這些域名經(jīng)銷商那里注冊頂級域名,所謂頂級域名就是“字母或數(shù)字組合 頂級域名后綴”,這些后綴包括常見的com/org/net,也包括不常見的name/info/biz等,各家允許注冊的域名后綴可能有所不同,這就看個人喜好了;關(guān)于域名后綴,本來它是有含義的,比如com 是company ,org 是organization ,name 是個人域名,等等,但我個人覺得這些東西已經(jīng)沒太大意義了,域名只要好記、看著像模像樣就可以了,管它是公司還是組織呢(有例外:如gov 等特殊后綴一般人不能注冊),那著名的del.icio.us 網(wǎng)站就是個很好的例子,它不一定非得是美國網(wǎng)站,但這個域名就是注冊得很巧妙。頂級域名下面可以設(shè)置子域名,如二級三級域名,嚴(yán)格來說,www.yihui.name 只是yihui.name 的二級子域名,只是www 太盛行,以至于人們干脆把www.***.***當(dāng)作頂級域名了。animation.yihui.name 就是本站的一個子域名/子站。說了半天,域名怎么注冊???你Google 一下“域名注冊”或“domain name registration”,頂上的Sponsored link中都是有實(shí)力的注冊商,但我作為過來人要嚴(yán)重提醒的是,盡量不要在國內(nèi)注冊(尤其不要相信那個萬網(wǎng)的鬼話)。據(jù)說GoDaddy 還可以,我沒試過,只知道它似乎不能注冊.name 域名,我自己是在name.com 注冊的域名(需要付美元,我用的PayPal ,雙幣種的信用卡也可以)。
? 網(wǎng)站空間:想得簡單一些,空間和你的硬盤沒啥區(qū)別,只不過是空間服務(wù)商賣給你的一塊服務(wù)器硬盤位置而已,性能可能比你的PC 機(jī)好一點(diǎn),網(wǎng)站空間就是放網(wǎng)頁文件的地方,網(wǎng)頁文件你可以簡單想象為你硬盤里的文件,它們也是按路徑訪問的,網(wǎng)址的路徑就對應(yīng)著硬盤里的文件夾。網(wǎng)頁文件通常分為:
o 靜態(tài)網(wǎng)頁:其內(nèi)容是固定不變的,里面放著HTML 代碼(網(wǎng)頁的一種語言),不管誰、不管什么時間訪問,內(nèi)容都一樣,通常以.html/.htm為文件名
o 動態(tài)網(wǎng)頁:我估計現(xiàn)在大多數(shù)網(wǎng)站都是動態(tài)的了,所謂動態(tài)就是網(wǎng)頁文件會根據(jù)不同的條件解析生成不同的HTML 代碼,例如:某動態(tài)頁面根據(jù)時間和用戶ID 向訪問者問好,早上訪問就
,說早上好,晚上訪問就說晚上好,路人甲來了就說路人甲你好……動態(tài)頁面通常和數(shù)據(jù)庫掛鉤,用戶在訪問網(wǎng)頁的時候,網(wǎng)頁程序就存取數(shù)據(jù)庫,所以頁面內(nèi)容會不斷更新。動態(tài)頁面可能采取不同的語言編寫,如古老的微軟的ASP 、盛行的開源的PHP ?,F(xiàn)在網(wǎng)絡(luò)上有無數(shù)的網(wǎng)站系統(tǒng),我當(dāng)然推崇PHP MySQL的系統(tǒng)了,目前尤其看好WordPress 系統(tǒng)。
? 注意有些國外空間是幾乎可以當(dāng)做自己的電腦使用的,包括編譯安裝程序(如Python ),SSH
登錄,MySQL 可以在命令行中執(zhí)行,等等,國內(nèi)似乎沒見過能給空間這么大自由的
域名和空間沒有必然聯(lián)系,域名的作用就是作為一個字符串映射到一個IP 地址上,因?yàn)椋?)IP 地址太難記了(2)IP 地址數(shù)目有限(同一個IP 上可以放N 個域名)所以才需要域名這么個東西。這就意味著,你有換空間的自由。哪天對空間服務(wù)商不高興了,可以直接把他踹了,把域名解析到別家去,用另一家空間。哎哎,等會兒,啥叫域名解析?
二、關(guān)于網(wǎng)站的配置
1、域名的設(shè)置
注冊域名交完銀子之后,域名就是你的了,如果你在國內(nèi)注冊的,你花錢買的域名不一定真的是你的。一定要看你是否有以下權(quán)利:
? ? 修改注冊聯(lián)系人、管理聯(lián)系人、技術(shù)聯(lián)系人和付費(fèi)聯(lián)系人信息,如果你在后臺找不到修改的地方,那么恭喜你,這域名好像不是你的,而是某奸商的,用WHOIS 查一下域名信息吧; 拿到授權(quán)碼(Auth Code),國內(nèi)也有叫域名轉(zhuǎn)移密碼的,這個碼很重要,如果你不知道或奸
商不告訴你,那再次恭喜你,這個域名仍然不是你的,想搬家到別家注冊商都搬不了,萬一不行遇到這種情況,那么就去ICANN 投訴奸商,每天投訴三遍,如果某注冊商總是遭到投訴,ICANN 會修理它的,總之你一定要知道自己作為消費(fèi)者有什么權(quán)利
如果域名真的屬于你,那么你哪天對注冊商不高興了,也可以把它踹掉,轉(zhuǎn)移到別的注冊商下。 域名的設(shè)置主要是一些解析工作,包括:
? 域名服務(wù)器(name server):通常是ns*.***.***之類的網(wǎng)址,這個服務(wù)器負(fù)責(zé)解析下面的各種
設(shè)置,也就是說,它是域名各項設(shè)置的Boss 。國內(nèi)一些域名注冊商通常以這一點(diǎn)為手段,卡住用戶,比如限制你只能使用它的域名服務(wù)器,然后再限制你最多只能設(shè)置10項A 記錄或MX 記錄等,多了要另外收費(fèi),這種規(guī)矩實(shí)在是很扯淡;尤其是對于那些需要多個子域名的用戶,這一點(diǎn)很不方便,國外情況好一些,至少我還沒見過有哪家限制你使用特定域名服務(wù)器的; o 要特別提及的一點(diǎn)是,有些空間服務(wù)商只需要你把域名服務(wù)器設(shè)置為他們的域名服務(wù)器,剩下
的所有解析問題你基本上都不用管了,你可以自由創(chuàng)建子域名,而不必添加A 記錄
? A 記錄:就是將域名指向主機(jī)IP ,可以將頂級域名或子域名指向特定的IP ,所以你的子域名和
頂級域名可以不在同一臺服務(wù)器上,比如我可以將www.yihui.name 指向66.147.240.177,將test.yihui.name 指向127.0.0.1,等等。
? MX 記錄:就是郵件服務(wù)器,大家知道郵箱是***@***.***的形式,當(dāng)你發(fā)郵件點(diǎn)“發(fā)送”之后,首
先你的郵件服務(wù)商要根據(jù)你的收件人郵箱的域名去找它的MX 記錄,然后再把郵件發(fā)給相應(yīng)的(另一家)郵件服務(wù)商,比如我的域名yihui.name 的MX 記錄是ASPMX.L.GOOGLE.COM ,也就是Google Apps的郵件服務(wù)地址,當(dāng)你給xie@yihui.name發(fā)郵件的時候,系統(tǒng)先去找一下
,yihui.name 的MX 記錄,一看,哦,是Google 啊,那就投遞到Google 家去,Google 收到郵件,一看,哦,要發(fā)給xie 用戶啊,那就發(fā)給xie 的收件箱中吧;我記得以前搜狗似乎也提供過免費(fèi)的郵件服務(wù),不知現(xiàn)在還在不在,我已經(jīng)用Google Apps很久了。
? CNAME :即別名,這玩意兒就是個域名“面具”,比如我把google.yihui.name 的CNAME 設(shè)置
為google.com ,那么你們訪問前者的時候?qū)嶋H上就在訪問Google ,域名中包含的任何路徑都會原封不動傳遞給google.com ,比如google.yihui.name/services/就是在訪問google.com/services/,但你的瀏覽器地址欄中的地址不會顯示后者,而是顯示那個“偽裝”的地址。所以只要我高興,我可以隨意制造消息,比如“Google換網(wǎng)址了,新網(wǎng)址是
google.xiexie.name ”。
? 其它設(shè)置:不說了,理論上一個A 記錄就夠用了,別的都不用管。
2、主機(jī)的設(shè)置
域名設(shè)置好了之后,主機(jī)上也需要一些呼應(yīng)工作。要是域名設(shè)置了A 記錄,但主機(jī)上不“接收”,那網(wǎng)站也沒法使用。主機(jī)如何接收取決于它安裝的網(wǎng)站服務(wù)程序,現(xiàn)在流行的是Apache ,當(dāng)然也有少數(shù)網(wǎng)站依舊抱著Windows IIS 大腿(用ASP 語言 Access數(shù)據(jù)庫),據(jù)說近段時間又出現(xiàn)了一款新軟件,有取代Apache 的可能,名字忘記了。以Apache 為例吧,主機(jī)上會創(chuàng)建一個虛擬主機(jī)(Virtual Host )配置文件,告訴服務(wù)器,“嘿,有個網(wǎng)站指向了你,你要為這個網(wǎng)站服務(wù),這個網(wǎng)站放在某某目錄下,如果用戶訪問某個網(wǎng)址,你要負(fù)責(zé)把該目錄下的文件拿出來給用戶看?!贝笾略砭褪沁@樣,細(xì)節(jié)不多說了。
對用戶來說,不用管那么多細(xì)節(jié),以上原理的實(shí)現(xiàn)對你來說就是在后臺把域名綁定到主機(jī)的目錄下(以及子域名綁定到子目錄下)。一般來說,網(wǎng)站還需要兩個輔助工具才能讓主人隨心所欲地配置自己的網(wǎng)站,即FTP 和數(shù)據(jù)庫。
(1)用FTP 傳輸網(wǎng)頁文件
FTP 就是用來傳文件到某一臺服務(wù)器的,只要你購買了虛擬主機(jī)服務(wù),一般就會給你一個FTP 帳號,你可以利用這個帳號登錄你的主機(jī),把網(wǎng)頁文件傳上去,然后用戶就可以訪問了。一點(diǎn)常識是,index.htm/index.php之類的網(wǎng)頁文件通常是你在訪問一個目錄時主機(jī)會自動為你查找的文件,比如你訪問yihui.name ,主機(jī)會自動查找有沒有index.php ,如果有,就執(zhí)行這個文件,生成HTML 給你的瀏覽器。這個文件的文件名也許是可以配置的,但建議不要在這上面特立獨(dú)行。
現(xiàn)在又很多成熟的建站系統(tǒng),從網(wǎng)上下載下來然后傳到服務(wù)器上,訪問你的網(wǎng)址,按照提示一步步配置即可,跟裝軟件沒兩樣。
(2)網(wǎng)站數(shù)據(jù)庫
動態(tài)網(wǎng)站大多數(shù)需要數(shù)據(jù)庫(即使是文本文件“數(shù)據(jù)庫”),如果你的網(wǎng)站用PHP 語言,那么MySQL 就是絕配了。若是PHP MySQL空間(一般Linux 主機(jī)都是這樣),主機(jī)服務(wù)商會給你分配MySQL 數(shù)據(jù)庫帳號,包括:數(shù)據(jù)庫主機(jī)(多為localhost )、數(shù)據(jù)庫名、用戶名、密碼。這四項將會在你安裝網(wǎng)頁程序的過程中要求你填寫。
,三、網(wǎng)站的運(yùn)行
對于那些程序員來說,第一個例子通常都是hello world ,如果你愿意看hello world 的話,就把“hello world”用任何文本編輯工具寫在一個文本文件中,命名為index.htm (注意Windows 會默認(rèn)隱藏文件擴(kuò)展名!你自己保證文件名不是index.htm.txt 吧,我不管了),傳到網(wǎng)站根目錄下,然后訪問你的網(wǎng)站,你就能欣喜地看到這個老得不能再老的hello world了。 一個像樣的網(wǎng)站當(dāng)然不是hello world 這么簡單,它的運(yùn)行就像一個復(fù)雜的程序,可能存在文件之間的函數(shù)調(diào)用以及數(shù)據(jù)庫的存取等等。世上真正開發(fā)網(wǎng)站程序的人肯定是少數(shù),所以不用擔(dān)心,你就用別人的程序吧,典型的網(wǎng)站系統(tǒng)有:
?
? 博客系統(tǒng)(Blog ):推薦WordPress ,理由是程序?qū)懙煤啙?,擴(kuò)展性強(qiáng),我以前用國產(chǎn)的Bo-blog 系統(tǒng),后來沒經(jīng)得住誘惑投奔WP 了 內(nèi)容管理系統(tǒng)(CMS ):新聞八卦站、教程站等等,顧名思義就是填充內(nèi)容的,這種網(wǎng)站八成是互相抄,沒幾個正兒八經(jīng)寫的,所以為了緩解大家的閱讀壓力,請各位客官珍愛生命,遠(yuǎn)離這種網(wǎng)站,也不要再重復(fù)建設(shè)
? 論壇系統(tǒng)(BBS ):網(wǎng)民對此應(yīng)該非常熟悉了,國內(nèi)常見的系統(tǒng)有PHPWind 、Discuz 等,國外盛極一時的有phpBB ,我個人推薦的是一款相對新出道的bbPress ,理由同WordPress ,在大家拼命增加功能的今天(搞得用戶面對一大堆選項焦頭爛額),難得見到一款拼命減功能的論壇系統(tǒng)
? 維基系統(tǒng)(Wiki ):Wikipedia 采用的是MediaWiki 系統(tǒng),如果你不想讓維基和數(shù)據(jù)庫交互的話,DokuWiki 將是不錯的選擇,它不需要數(shù)據(jù)庫支持,全部都是文本文件操作
網(wǎng)站的安裝都沒啥說的,一般都是把網(wǎng)頁文件整鍋端上服務(wù)器,然后訪問你的網(wǎng)址,按提示走。該設(shè)定網(wǎng)站名稱設(shè)名稱,該輸密碼輸密碼。然后你會意識到,原來一個小小的個人也可以創(chuàng)造一個看似嚇人的大網(wǎng)站。
但網(wǎng)站的維護(hù)并非一件簡單的事情,當(dāng)你有權(quán)利面對所有的選項時,你也會覺得痛苦。像我這種業(yè)余玩了幾年網(wǎng)站的人都快有職業(yè)病了,什么地方?jīng)]對齊就會覺得不舒服,什么地方少了個空格一眼就看出來了,段首空格縮進(jìn)2字符還是1.9字符感覺就是不一樣。所有的東西你都可以改,你愿意怎么布置就怎么布置。只需一個文本編輯器和FTP ,你就可以改了傳,傳了看,看了改。儼然永劫不復(fù)了。所以建網(wǎng)站也要有好心態(tài),千萬別完美心態(tài),不然這輩子都要不斷改?,F(xiàn)在網(wǎng)站系統(tǒng)更新也快,隔三差五就有新功能,看得你心癢癢:我是不是該裝個A 插件/換個B 主題?。繌埲矣袀€功能特別酷,我要不要琢磨一下是怎么弄的???……
所以,我是建議各位看官學(xué)習(xí)HTML 和CSS 以及PHP MySQL呢,還是不建議呢?我也不知道。 還有搜索引擎優(yōu)化(SEO ),采取一些策略讓搜索引擎喜歡你的網(wǎng)站,使得你的搜索排名靠前,你又得學(xué)習(xí)什么是網(wǎng)頁Meta 信息(關(guān)鍵詞、描述),什么是301重定向,什么是404錯誤,什么是Apache 的Rewrite 模塊什么是偽靜態(tài)網(wǎng)址;……
,四、摘要
頭一次見到把摘要寫到最后的吧?
1. 買域名,避開奸商,建議通過你熟悉的朋友介紹,不行就Google ;若在國外買,可用支持美元的信用卡或PayPal 付款;域名每年都要交錢的。
2. 買虛擬主機(jī)空間,避開奸商,建議通過你熟悉的朋友介紹,不行也不要隨意Google ,因?yàn)榭臻g性能很重要,不試不知道;根據(jù)你的建站需求買相應(yīng)的空間(靜態(tài)?動態(tài)?需要多大?),國內(nèi)分不同種類的空間,可能按大小收費(fèi),國外據(jù)我了解的HostMonster 是沒有大小限制的,一口價,敞開讓你隨便用,當(dāng)然,總會受硬盤大小限制
3. 設(shè)置域名服務(wù)器或者A 記錄,指向主機(jī)
4. 通過FTP 把網(wǎng)頁文件傳上去,然后訪問你的新網(wǎng)站
5. 配置你的網(wǎng)站,通??梢缘卿浘W(wǎng)站后臺作設(shè)置,平時做一些日常更新,看到眼紅的功能也可以自己DIY 出來
6. 如果你不得不在我英明神武的天朝購買虛擬主機(jī),那么恭喜你還有最重要的一步,就是去英明神武的公釁部那里去備個鳥案,備案網(wǎng)址自己搜吧,能否備得上你自己燒香,我不管,一日不備案,一日網(wǎng)站不得運(yùn)行,主機(jī)服務(wù)商會把你卡得死死的
有什么不清楚的請在下面窮追猛問,我會隨時修改更新本文內(nèi)容。本文敘述有諸多不嚴(yán)格的地方,但對新手來說不需了解那么多,因此沒加說明。本文謝絕IT 類網(wǎng)站轉(zhuǎn)載。
爺還想看:
?
?
? ?
? 2007/11/17 -- Ubuntu Server:兩眼一抹黑 (2) 2010/11/07 -- (8) 2009/05/22 -- (6) 2011/02/13 -- (10) 2010/10/31 -- 360與騰訊的掐架 (13)