一. 建站的准備材料 : 域名和空間
一個網站通常由域名和一堆網頁文件構成 :
域名 : 后綴名本來是有含義的, 例如 com是company,org是organization等等,不過現在沒人理會了。作用是作為一個字符串映射到一個IP地址上,這就意味着,你有換空間的自由,哪天對空間服務商不高興了,把域名解析到別家去,用另一家的空間
網站空間 : 想的簡單一些,空間和你的硬盤沒啥區別,
二. 具體配置
1. 域名的設置
注冊域名交完銀子之后,域名就是你的了(在國內注冊要注意,修改注冊聯系人,管理聯系人,技術聯系人和付費聯系人,如果你在后台找不到修改的地方,那么恭喜你,這個域名不是你的,而是某奸商的,用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/,但你的瀏覽器地址欄中的地址不會顯示后者,而是顯示那個“偽裝”的地址。所以只要我高興,我可以隨意制造消息,比如“Google換網址了,新網址是http://google.xiexie.name”。
- 其它設置:不說了,理論上一個A記錄就夠用了,別的都不用管。
2. 主機的設置
域名設置好了之后,主機上也需要一些呼應工作。要是域名設置了A記錄,但主機上不“接收”,那網站也沒法使用。主機如何接收取決於它安裝的網站服務程序,現在流行的是Apache,當然也有少數網站依舊抱着Windows IIS大腿(用ASP語言+Access數據庫),據說近段時間又出現了一款新軟件,有取代Apache的可能,名字忘記了。以Apache為例吧,主機上會創建一個虛擬主機(Virtual Host)配置文件,告訴服務器,“嘿,有個網站指向了你,你要為這個網站服務,這個網站放在某某目錄下,如果用戶訪問某個網址,你要負責把該目錄下的文件拿出來給用戶看。”大致原理就是這樣,細節不多說了。
對用戶來說,不用管那么多細節,以上原理的實現對你來說就是在后台把域名綁定到主機的目錄下(以及子域名綁定到子目錄下)。一般來說,網站還需要兩個輔助工具才能讓主人隨心所欲地配置自己的網站,即FTP和數據庫。
(1)用FTP傳輸網頁文件
FTP就是用來傳文件到某一台服務器的,只要你購買了虛擬主機服務,一般就會給你一個FTP帳號,你可以利用這個帳號登錄你的主機,把網頁文件傳上去,然后用戶就可以訪問了。一點常識是,index.htm/index.php之類的網頁文件通常是你在訪問一個目錄時主機會自動為你查找的文件,比如你訪問yihui.name,主機會自動查找有沒有index.php,如果有,就執行這個文件,生成HTML給你的瀏覽器。這個文件的文件名也許是可以配置的,但建議不要在這上面特立獨行。
現在又很多成熟的建站系統,從網上下載下來然后傳到服務器上,訪問你的網址,按照提示一步步配置即可,跟裝軟件沒兩樣。
(2)網站數據庫
動態網站大多數需要數據庫(即使是文本文件“數據庫”),如果你的網站用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,理由是程序寫得簡潔,擴展性強,我以前用國產的Bo-blog系統,后來沒經得住誘惑投奔WP了
- 內容管理系統(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模塊什么是偽靜態網址;……