搭建一个个人博客
http://blog.csdn.net/ygrx/article/details/9101171
?
今天終于把博客系統搭建起來了,折騰了大半天,寫來下,給想自己搭建博客系統的朋友們看看。
其實,目前想要搭建自己的網站都非常簡單,買個vps,注冊個域名,在vps上裝上wordpress,齊活。
來,從頭說起。
另外,給自己打個廣告,以后文章都會在 http://wusay.org?更新。
VPS購買
vps是什么,大家可以百度百科,我這里就不解釋了,簡單的說,就是一臺服務器。
vps有很多提供商,國外的一大把,價格也參差不齊,當然,服務也參差不齊,大一點的,亞馬遜啦,linode啦,還有一些其他的,大家網上找一找,找個價格和速度合適的,國內嘛,現在做得還不錯的有阿里云,就速度上來說,國內的阿里云怎么都比國外的要快,只是備案比較麻煩,你懂的。國外的雖然速度上差點,但是穩定性還是有保證的,不會無緣無故被拔線,而且用國外的,還可以順便建個隧道,至于建隧道干什么,呵呵,你懂的。
好啦,我用的linode的,付款非常簡單,有個信用卡就行了,登陸他們主頁,注冊一下,啪啪啪就搞完了。我選的20刀每月的那一檔,最低配的,以后要是訪問量上來了,擴容也挺容易的。
選好付款了以后,就可以選擇操作系統了,我選的ubuntu,哦,對了,linode不能選擇win操作系統,都是linux的。
一切準備好了以后,linode會給你一個ip地址,然后用ssh登陸上去,windows下用putty,OK,一切的一切都和你直接操作Linux沒有區別了吧。
好了,開始安裝建站需要的各種工具吧。 建立一個基于wordpress標準的博客站點,需要安裝以下這幾大組件,web服務器,php語言解釋器,mysql數據庫。這三個主要的裝好也就可以OK了。下面我們一個一個的來。
- 前期準備
首先,登入到你的linux后先檢查一下更新情況,裝一些必要的軟件和程序
sudo apt-get update sudo apt-get upgrade
然后,裝一些必要的程序包
sudo apt-get install libcurl4-openssl-dev libssl-dev zlib1g-dev git-core gcc build-essential imagemagick vim
OK,前期準備就緒.
- web服務器
web服務器很多種,我選的是Nginx,為什么?因為他是毛子寫的,據說很牛逼。
安裝服務器也很簡單,其實,ubuntu上裝什么都很簡單,基本上都是atp-get install XXX
sudo apt-get install nginx
哦,得建一個目錄來存放網站,其中的wusay可以改成你想改的任何名字.
sudo mkdir /srv/www/ sudo mkdir -p /srv/www/wusay/public_html sudo mkdir /srv/www/wusay/logs chown -R www-data:www-data /srv/www/wusay
然后,配置一下nginx的配置文件,/etc/nginx/sites-enabled/wusay,同樣,你也可以改成你需要的名字,這個文件默認是不存在的,需要你建立,可以用vim編輯一下,然后記得把目錄下的default刪掉啊。
wusay配置文件的內容如下:
server {
server_name localhost www.copsy.org copsy.org;
access_log /srv/www/wusay/logs/access.log;
error_log /srv/www/wusay/logs/error.log;
root /srv/www/wusay/public_html;
location / {
index index.html index.htm index.php;
if (-f $request_filename/index.html){
rewrite (.) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/wusay/ public_html$fastcgi_script_name;
}
}
然后,試一試nginx好使不好使
sudo /etc/init.d/nginx start
沒報錯就OK了,要是你按照步驟一步一步來的還報錯,那人品太差了。
- 安裝PHP解釋器
還是老辦法,atp-get install
sudo apt-get install php5-cli php5-cgi spawn-fcgi psmisc
第二步完成,簡單吧。
- 安裝mysql數據庫
sudo apt-get install mysql-server php5-mysql mysql-client
安裝的時候要輸入密碼,要牢記哦,然后使用start命令啟動mysql
sudo start mysql
你要會數據庫操作,你可以自己進去建立個數據庫,進入mysql,然后執行
create database XXX
建立一個數據庫。你要是對mysql還想有其他操作,就裝個phpmyadmin吧。
好了,一切就緒了,準備安裝wordpress吧
下載wordpress并解壓
sudo wget http://wordpress.org/latest.tar.gz tar -zxvf latest.tar.gz
然后把目錄下的wordpress文件夾拷貝到/srv/www/wusay/public_html/下,配置public_html權限,chmod 777 /srv/www/wusay/public_html/,重啟nginx服務
sudo /etc/init.d/nginx restart
ok,打開本機的瀏覽器,輸入http://你的IP地址/index.php,開始安裝吧,后面的安裝都是web操作了。
裝完以后,記得把public_html的權限改過來,改成755。
OK,一切完畢,輸入http://你的IP地址,開始你的博客之旅吧。后面就是博客的美化了。這就是看你的想象力啦。
?
================
http://yihui.name/cn/2009/06/how-to-build-a-website-as-a-dummy/
新手教程:建立網站的全套流程與詳細解釋
home about publication guestbook vitae categories tags links subscribe
你要是Google這個話題,得到的結果八成都是廣告——他們都會告訴你,“嘿,我(或某公司)這里可以建網站,傻瓜式的喲,快來投奔我吧!”新手一般都覺得建網站是一件超級復雜的事情,于是很天真很無邪地進了圈套,到最后還樂呵呵幫人數錢。傻瓜式的東西就如它的名字一樣,只是為傻瓜準備的,要格外小心。
我正式接觸計算機在2002年,接觸網站建設在2003年,想想時日也不短了,雖然不是什么高手,但還是有一定發言權滴。數月前,鼓動江堂兄從Live Space逃脫、建立了自己的窩,而近日又把自己的網站和“統計之都”網站都搬了家,然后也幫“貝吉塔行星”逃離了那抽風的Live Space,后來有朋友問起關于如何建立個人網站的事情,所以干脆寫篇教程,把這建網站的來龍去脈講清楚。
一、建網站的準備材料:域名和空間
一個網站通常由域名和一堆網頁文件構成:
- 域名:就是“三達不溜什么什么點坑”這樣的東西(如www.yihui.name,不嚴格,見后話),它由一家非營利組織ICANN管理,但它授權給了若干注冊商(registrar)去賣域名,你可以在這些域名經銷商那里注冊頂級域名,所謂頂級域名就是“字母或數字組合+頂級域名后綴”,這些后綴包括常見的com/org/net,也包括不常見的name/info/biz等,各家允許注冊的域名后綴可能有所不同,這就看個人喜好了;關于域名后綴,本來它是有含義的,比如com是company,org是organization,name是個人域名,等等,但我個人覺得這些東西已經沒太大意義了,域名只要好記、看著像模像樣就可以了,管它是公司還是組織呢(有例外:如gov等特殊后綴一般人不能注冊),那著名的del.icio.us網站就是個很好的例子,它不一定非得是美國網站,但這個域名就是注冊得很巧妙。頂級域名下面可以設置子域名,如二級三級域名,嚴格來說,www.yihui.name只是yihui.name的二級子域名,只是www太盛行,以至于人們干脆把www.***.***當作頂級域名了。animation.yihui.name就是本站的一個子域名/子站。說了半天,域名怎么注冊啊?你Google一下“域名注冊”或“domain name registration”,頂上的Sponsored link中都是有實力的注冊商,但我作為過來人要嚴重提醒的是,盡量不要在國內注冊(尤其不要相信那個萬網的鬼話)。據說GoDaddy還可以,我沒試過,只知道它似乎不能注冊.name域名,我自己是在name.com注冊的域名(需要付美元,我用的PayPal,雙幣種的信用卡也可以)。
- 網站空間:想得簡單一些,空間和你的硬盤沒啥區別,只不過是空間服務商賣給你的一塊服務器硬盤位置而已,性能可能比你的PC機好一點,網站空間就是放網頁文件的地方,網頁文件你可以簡單想象為你硬盤里的文件,它們也是按路徑訪問的,網址的路徑就對應著硬盤里的文件夾。網頁文件通常分為:
- 靜態網頁:其內容是固定不變的,里面放著HTML代碼(網頁的一種語言),不管誰、不管什么時間訪問,內容都一樣,通常以.html/.htm為文件名
- 動態網頁:我估計現在大多數網站都是動態的了,所謂動態就是網頁文件會根據不同的條件解析生成不同的HTML代碼,例如:某動態頁面根據時間和用戶ID向訪問者問好,早上訪問就說早上好,晚上訪問就說晚上好,路人甲來了就說路人甲你好……動態頁面通常和數據庫掛鉤,用戶在訪問網頁的時候,網頁程序就存取數據庫,所以頁面內容會不斷更新。動態頁面可能采取不同的語言編寫,如古老的微軟的ASP、盛行的開源的PHP。現在網絡上有無數的網站系統,我當然推崇PHP+MySQL的系統了,目前尤其看好WordPress系統。
- 注意有些國外空間是幾乎可以當做自己的電腦使用的,包括編譯安裝程序(如Python),SSH登錄,MySQL可以在命令行中執行,等等,國內似乎沒見過能給空間這么大自由的
域名和空間沒有必然聯系,域名的作用就是作為一個字符串映射到一個IP地址上,因為(1)IP地址太難記了(2)IP地址數目有限(同一個IP上可以放N個域名)所以才需要域名這么個東西。這就意味著,你有換空間的自由。哪天對空間服務商不高興了,可以直接把他踹了,把域名解析到別家去,用另一家空間。哎哎,等會兒,啥叫域名解析?
二、關于網站的配置
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模塊什么是偽靜態網址;……
四、摘要
頭一次見到把摘要寫到最后的吧?
有什么不清楚的請在下面窮追猛問,我會隨時修改更新本文內容。本文敘述有諸多不嚴格的地方,但對新手來說不需了解那么多,因此沒加說明。本文謝絕IT類網站轉載。
總結
- 上一篇: Spring MVC中的视图解析View
- 下一篇: context:component-sc