博客園的朋友們,這次又有個機會讓你們了解Erlang這門不錯的語言,趕緊跟隨我的步伐吧,拋開你現在擁有的,買本Erlang書,或者下本電子書,開始Erlang的世界吧。這次又是新的征程,讓我們來了解mochiweb這個不錯的http服務器。
這次的標題修改為源碼閱讀,而不是源碼分析,感覺自己還沒到源碼分析的那個水平吧,所以稱做源碼閱讀更合適一些。這次我希望自己不再是單純的看代碼,還是那句話,多動手吧,看會了,自己寫未必寫的出來,所以多嘗試寫一些實例代碼。
好了,回到今天的正題吧,之所以選擇 mochiweb,個人感覺是這個項目還是Erlang入門必看的項目吧,許多大牛也推薦新手去看看,所以我還不猶豫的選擇了這個項目。我們來具體看下吧。
這里給出官方的下載地址:https://github.com/mochi/mochiweb
介紹如下:MochiWeb is an Erlang library for building lightweight HTTP servers.
MochiWeb是一個構建輕量級HTTP服務器的Erlang類庫。
The mailing list for MochiWeb is at http://groups.google.com/group/mochiweb/
上面是郵件列表地址。
首先,我們下載代碼:git clone https://github.com/mochi/mochiweb.git
這邊插一句,如果大家學Erlang,建議還是到 Linux環境下,這樣其實也是能學到不少知識,畢竟現在市面上主流的服務器都是Linux,所以如果你現在還只是會在Window下的這一套,那就來到Linux下學學吧。
好了,下載完代碼,我們可以看下官方介紹有這么一段話:
To create a new mochiweb using project:
make app PROJECT=project_name
To create a new mochiweb using project in a specific directory:
make app PROJECT=project_name PREFIX=$HOME/projects/
我們來創建個example:
make app PROJECT=mochiweb_example PREFIX=$HOME/workplace/
如下圖:

這里使用的是 rebar 來創建,管理項目,還是比較方便的,之前已經介紹過這個工具了,如果你是第一次見,可以參考下這篇文章:Erlang構建工具,這里使用的是模板支持,代碼如下:
./rebar create template=mytemplate
而我們看下Makefile的app命令,如下圖:

而 模板文件位置如下,下一次有機會再給大家詳細介紹下,關於模板的使用:

接下來,我們編譯,運行下 mochiweb_example 這個例子吧,生成的例子提供了個快速啟動的腳本文件 start-dev.sh,代碼如下:
#!/bin/sh # NOTE: mustache templates need \ because they are not awesome. exec erl -pa ebin edit deps/*/ebin -boot start_sasl \ -sname mochiweb_example_dev \ -s mochiweb_example \ -s reloader
我們可以用終端,快速的跑起例子,打開終端,進入到這個目錄,輸入:
make,然后輸入
sh start-dev.sh,就可以了,如下圖:

接下來,我們可以訪問瀏覽器:http://localhost:8080/
運行結果如下圖:

好了,這個簡單的例子成功的運行起來了。
今天就到這,這一篇我們簡單介紹了mochiweb以及如何創建例子,運行;希望大家能夠動手把代碼下下來,嘗試運行,如果你遇到什么問題,歡迎留言,我會盡可能的幫助大家解決問題。
最后,如果這篇文章帶給你樂趣,希望你能輕輕動下鼠標,推薦下這篇文章,非常感謝,我在下一篇文章等着你喲。
