• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            loop_in_codes

            低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

            使用Lisp搭建獨(dú)立博客

            Author: Kevin Lynx
            Date: 9.29.2011
            Contact: kevinlynx at gmail dot com

            本文描述如何使用Lisp工具集搭建一個(gè)完整的個(gè)人博客站點(diǎn)。一個(gè)搭建好的例子站點(diǎn)可以參看我的個(gè)人博客:http://codemacro.com

            要搭建一個(gè)獨(dú)立博客,需要兩方面的支持。一是博客軟件,二是根據(jù)選擇的博客軟件取得必須的“硬件“。例如我這里使用的是Lisp工具集,就需要一個(gè)可以完全控制的服務(wù)器,所以這里我需要一個(gè)VPS。當(dāng)然,購(gòu)買(mǎi)一個(gè)合適的域名也是必須的。以下將針對(duì)這些內(nèi)容做描述。

            獲取VPS及域名

            VPS提供商國(guó)內(nèi)國(guó)外都有很多。我選擇的是 rapidxen ,128M內(nèi)存,1年70來(lái)美元,算是國(guó)外比較便宜的,速度上還過(guò)得去。

            購(gòu)買(mǎi)了VPS后,可以進(jìn)入后臺(tái)管理頁(yè)面安裝VPS操作系統(tǒng)。同樣,因?yàn)槲沂褂玫氖荓isp,我選擇安裝了Debian 6.0 squeeze (minimal)64位。實(shí)際上我更傾向于32位,因?yàn)槲业腜C系統(tǒng)就是32位,方便測(cè)試。安裝系統(tǒng)非常簡(jiǎn)單,基本隨意設(shè)置下即可。值得注意的是,除了修改root密碼外,最好修改下ssh端口,具體設(shè)置方法可以另行搜索。此外,因?yàn)楹竺嫖視?huì)使用nginx作為HTTP前端服務(wù)器,為了方便安裝nginx,最好更新下軟件源列表,編輯etc/apt/source.list:

            deb http://ftp.us.debian.org/debian squeeze main
            deb http://packages.dotdeb.org stable all
            deb-src http://packages.dotdeb.org stable all
            deb http://php53.dotdeb.org stable all
            deb-src http://php53.dotdeb.org stable all

            購(gòu)買(mǎi)VPS最主要的,就是獲取到一個(gè)獨(dú)立IP,如圖:

            imgs/vps.png

            然后可以去購(gòu)買(mǎi)域名。同樣,也有很多域名服務(wù)商。這里我選擇的是 godaddy ,我選擇的域名codemacro.com一年11美元。購(gòu)買(mǎi)了域名后,就需要將域名和VPS IP關(guān)聯(lián)起來(lái)。詳細(xì)設(shè)置也可以另行搜索。這里簡(jiǎn)要提下:在成功登入godaddy后,選擇My Account,進(jìn)入自己的域名,選擇DNS Manager,然后添加域名映射即可,如圖:

            imgs/domain.png

            通過(guò)以上設(shè)置后,你購(gòu)買(mǎi)的域名就成功指向你購(gòu)買(mǎi)的VPS地址了。可以通過(guò)ping來(lái)觀察是否指向成功。

            使用Lisp構(gòu)建博客系統(tǒng)

            要在VPS上安裝軟件,首先需要SSH上你的VPS,例如:ssh -p 1234 root@codemacro.com。

            這里使用的軟件集包括:

            • nginx,Web服務(wù)器
            • SBCL ,Lisp編譯器實(shí)現(xiàn)
            • quicklisp ,可以方便自動(dòng)下載、安裝Lisp庫(kù)的工具
            • hunchentoot ,Lisp實(shí)現(xiàn)的Web服務(wù)器(不用特意安裝)
            • ext-blog ,Lisp實(shí)現(xiàn)的博客系統(tǒng)

            實(shí)際上,可以完全使用Lisp作為Web服務(wù)器,但我擔(dān)心效率問(wèn)題(對(duì)個(gè)人博客而言完全沒(méi)這回事),所以使用了nginx作為Web服務(wù)器前端,將hunchentoot放在后面。

            安裝nginx

            在設(shè)置好debian軟件源后,安裝非常簡(jiǎn)單:

            apt-get install nginx

            安裝完后,因?yàn)橐獙TTP請(qǐng)求轉(zhuǎn)發(fā)給Lisp服務(wù)器,所以需要修改下配置:

            vi /etc/nginx/sites-avaiable/default

            將/請(qǐng)求派發(fā)給Lisp服務(wù)器(假設(shè)監(jiān)聽(tīng)于8000端口):

            location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            }

            然后可以啟動(dòng)nginx了:

            nginx

            這個(gè)時(shí)候通過(guò)瀏覽器訪問(wèn),會(huì)得到503 bad gateway的錯(cuò)誤提示,因?yàn)閔unchentoot還沒(méi)開(kāi)啟。

            安裝Lisp相關(guān)軟件

            SBCL 同樣可以通過(guò)apt直接安裝:

            apt-get instal sbcl

            裝好SBCL后,就可以進(jìn)一步安裝 quicklisp 。可以完全遵守quicklisp官方給的安裝方法進(jìn)行安裝。大概就是先獲取quicklisp.lisp文件,然后在SBCL中載入,根據(jù)提示即可。這里不再贅述。

            安裝好quicklisp后,就可以使用它安裝很多Lisp軟件/庫(kù)了。quicklisp在安裝一個(gè)Lisp庫(kù)時(shí),會(huì)自動(dòng)下載并安裝依賴(lài)庫(kù),就像apt-get一樣。因?yàn)閑xt-blog并未收入到quicklisp的軟件列表里,所以ext-blog需要手動(dòng)安裝。首先,在本地(非VPS上)獲取ext-blog源碼:

            git clone git://github.com/kevinlynx/klprj.git

            上面的git是我個(gè)人存東西用的,暫時(shí)沒(méi)將ext-blog單獨(dú)放置。進(jìn)入到ext-blog目錄。該目錄下有幾個(gè)方便的腳本可以用于博客管理。首先將ext-blog打包并上傳到VPS上,例如:

            ./upload-dist.sh root@codemacro.com 1234 /home/test

            該腳本會(huì)調(diào)用make-dist.sh將ext-blog全部源碼打包,然后使用scp拷貝該文件及update-blog.sh到VPS指定的目錄里(這里是/home/test),然后ssh上VPS。期間會(huì)兩次輸入VPS系統(tǒng)的密碼。然后以下操作將在VPS上完成。

            首先進(jìn)入到剛才拷貝文件的目錄:

            cd /home/test

            解壓ext-blog.tar.gz:

            tar xvf ext-blog.tar.gz

            然后ext-blog被解壓到/home/test/dist目錄。進(jìn)入此目錄運(yùn)行SBCL:

            cd dist
            sbcl

            ext-blog目錄下dep.lisp會(huì)使用quicklisp安裝依賴(lài)庫(kù),進(jìn)入SBCL后,載入該文件即可安裝所有依賴(lài)庫(kù),這可能需要一點(diǎn)時(shí)間:

            (load "dep.lisp")

            在沒(méi)有其他問(wèn)題下,可以暫時(shí)退出SBCL完成一些其他準(zhǔn)備工作。

            ext-blog在最近的版本中加入了驗(yàn)證碼生成功能,這需要一個(gè)pcf字體文件。因?yàn)樽煮w文件一般較大,所以u(píng)pload-dist.sh腳本并沒(méi)有將該字體文件打包,所以這里需要手動(dòng)復(fù)制,同樣在本地的ext-blog目錄下:

            scp -P 1234 data/wenquanyi_12ptb.pcf root@codemacro.com:/home/test/dist/data/

            另外,因?yàn)樾枰獙isp解釋器放置在系統(tǒng)后臺(tái)執(zhí)行,避免關(guān)掉SSH會(huì)話(huà)后終止SBCL進(jìn)程,所以這里需要個(gè)工具gnu screen。可以使用apt-get來(lái)安裝:

            apt-get install screen

            然后,一切就OK了。在VPS上可以使用ext-blog目錄下的run-blog.sh來(lái)運(yùn)行這個(gè)博客(首先確定VPS上的nginx開(kāi)啟):

            ./run-blog.sh

            該腳本會(huì)使用screen在后臺(tái)開(kāi)啟一個(gè)SBCL進(jìn)程,并自動(dòng)載入ext-blog,然后在8000端口上開(kāi)啟HTTP服務(wù)。這個(gè)啟動(dòng)過(guò)程可能會(huì)使用幾十秒的時(shí)間,直接ctrl+z退出screen,這并不終止SBCL。一段時(shí)間后便可在瀏覽器里測(cè)試。

            設(shè)置博客

            如果一切正常,此時(shí)通過(guò)瀏覽器訪問(wèn)你的站點(diǎn)時(shí),會(huì)被重定向到一個(gè)博客初始化頁(yè)面,如下:

            imgs/initblog.png

            上圖中我是在本機(jī)測(cè)試的,所以域名是localhost,希望不至于產(chǎn)生誤解。初始化僅需輸入用戶(hù)名和密碼即可,以后可通過(guò)該用戶(hù)名和密碼進(jìn)入博客后臺(tái)管理頁(yè)面。完成這一步后,就可以進(jìn)入博客后臺(tái)管理頁(yè)面做更多的設(shè)置,例如博客標(biāo)題等。

            ext-blog的管理頁(yè)面使用了emlog博客系統(tǒng)的CSS及其他資源,因此有同學(xué)覺(jué)得管理頁(yè)面很面熟就不奇怪了。ext-blog提供在線(xiàn)編輯博客功能,同時(shí)也支持簡(jiǎn)單的metaweblog API,因此可以使用一些博客客戶(hù)端來(lái)發(fā)表文章(僅測(cè)過(guò)我自己寫(xiě)的博客客戶(hù)端cl-writer)。

            最后

            本文描述較為粗略,主要是很多細(xì)節(jié)我自己也記不清。如有問(wèn)題可以發(fā)郵件給我。

            posted on 2011-09-29 17:19 Kevin Lynx 閱讀(6445) 評(píng)論(7)  編輯 收藏 引用 所屬分類(lèi): lisp

            評(píng)論

            # re: 使用Lisp搭建獨(dú)立博客 2011-09-29 20:28 synthetic feather hair extensions

            你的vps我少錢(qián)買(mǎi)的啊,現(xiàn)在有個(gè)lnmp很方便~  回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-02 18:15 bb_cn@163.com

            你好,請(qǐng)問(wèn)下rapidxen的服務(wù)器,怎么裝系統(tǒng)的?(:-)比較小白的問(wèn)題)  回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-08 11:28 Kevin Lynx

            @bb_cn@163.com
            網(wǎng)頁(yè)上進(jìn)管理系統(tǒng),就可以看到裝什么系統(tǒng)  回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-08 17:31 bb_cn@163.com

            @Kevin Lynx
            為什么我申請(qǐng)的時(shí)候,沒(méi)有讓我選os,而且要我填一個(gè) hostname。。。
            到現(xiàn)在還在pending中
            我是7月2日申請(qǐng)的。。。  回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-09 13:27 Kevin Lynx

            @bb_cn@163.com
            實(shí)在不會(huì)提交個(gè)ticket給客服。我沒(méi)有續(xù)費(fèi),現(xiàn)在服務(wù)器停了  回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-14 13:22 bb_cn@163.com

            都提交了,還沒(méi)有開(kāi)通,哎。你最新的服務(wù)器買(mǎi)什么地方的?給我推薦一下子@Kevin Lynx
              回復(fù)  更多評(píng)論   

            # re: 使用Lisp搭建獨(dú)立博客 2013-07-15 10:02 Kevin Lynx

            @bb_cn@163.com
            貌似客服還是很速度的啊。。。窮,沒(méi)有服務(wù)器  回復(fù)  更多評(píng)論   

            国产精品美女久久久| 精品永久久福利一区二区| 国内精品久久久久影院网站| 久久国产精品一区| 色播久久人人爽人人爽人人片AV| 久久精品国产99国产精品亚洲| 久久久久人妻精品一区| 国产免费久久精品丫丫| 一本色道久久99一综合| 久久香蕉国产线看观看99| 久久精品国产乱子伦| 亚洲综合婷婷久久| 成人综合久久精品色婷婷| 伊人久久大香线蕉精品| 国产成人综合久久精品红| 99热热久久这里只有精品68| 欧洲精品久久久av无码电影| 国内精品伊人久久久久网站| 欧美黑人激情性久久| 一本久久a久久精品综合香蕉 | 久久精品国产91久久综合麻豆自制| 久久久免费观成人影院| 久久夜色精品国产亚洲| 久久精品亚洲日本波多野结衣 | 97精品伊人久久久大香线蕉| 77777亚洲午夜久久多人| 伊人久久大香线蕉综合5g| 激情综合色综合久久综合| 九九久久自然熟的香蕉图片| 久久免费看黄a级毛片| 久久99国产精品久久99小说| 日韩精品无码久久一区二区三 | 久久久久亚洲av无码专区导航| 亚洲国产成人久久一区WWW| 久久久久久无码国产精品中文字幕| 国产成人综合久久综合| 国产一久久香蕉国产线看观看| 国内精品伊人久久久久AV影院| 国产成人精品免费久久久久| 99国产精品久久久久久久成人热| 久久久久99精品成人片欧美|