山寨版的VeryCD SimpleCD

fmms 12年前發布 | 25K 次閱讀 PHP 建站系統CMS

SimpleCD是什么?

  • 是山寨化VeryCD的全套工具,包括抓取腳本網站代碼

誰需要使用SimpleCD?

  • 想保存VeryCD鏈接資源者:別鏡像VeryCD了,用這個吧。
  • 想研究爬蟲腳本和python語法者:其實寫得挺爛的,勉強能用而已。
  • 想研究web.py+sqlite3網站架設的愛好者:說學習是抬舉我了,一周以前我也既不懂web.py 又不懂sql數據庫。
  • 想測試自己虛擬主機性能者:沒錯,畢竟是1G的數 據庫,能跑而且能跑得順暢的均非等閑主機

SimpleCD長啥 樣子?

  • simplecd架設完畢的例子:http://www.simplecd.org

為什么用web.py?

  • 抓網站用的是python,用python系的框架能更好的整合
  • 比較了一下django和web.py,更喜歡web.py那種“用python寫網站”,而不是django那 種“用django寫網站”的風格。

為什么使用 sqlite做數據庫?

  • 最開始是因為python自帶,簡單 易用
  • 現在是因為實際表現比mysql好10倍:http://obmem.com/?p=317
  • sqlite的弱點是高并發可能會鎖死數據庫,但是我已經找到解決方案,就是等什么時候有空研究一下怎么寫代碼。

其他

  • 我的個人主頁,有源碼的實現細節,歡迎來踩:http://obmem.com
  • 博客中 VeryCD相關: http://obmem.com/?tag=verycd
  • 更直觀的架設攻略請參考視頻: http://www.simplecd.org/static/tutorial.html

SimpleCD使用方法

1.需求:

所有可以架設web.py的地方,例如:

  • 一個VPS(Virtual Dedicated Server)(參考Xen和OpenVZ測試(附VPS推薦))
  • 一 個支持web.py的國外共享主機(例如dreamhost架設web.py攻略)
  • 一個支持web.py的國內共享主機(例如stdyun.com 架設web.py攻略)

推薦配置:

  • Xen VPS 需要至少768MB內存的Linux VPS
  • OpenVZ VPS 需要Burstable內存至少512MB內存的Linux VPS,基本內存可以小一點沒問題。

內 存太少的解決方法:

  • 修改nginx/spawn-fcgi.sh中"-F 2"改為"-F 1",只使用一個守護進程
  • 重 新寫一個資源占用較低的框架來存取sqlite3。sqlite3直接存取占內存不大。
  • 不要試圖 用mysql來取代sqlite,mysql效率更低

本教程基于操作系統Ubuntu 9.04 由于玩VPS的都非善類,相信其他操作系統的架設都能自己解決

2.修改軟件源

我們要用新軟件,所以直接修改/etc/apt/sources.list 把其中的jaunty改為karmic,用9.10的軟件源 :)

然后更新一下

apt-get update

接下來分別安裝nginx,spawn-fcgi,和mercurial

apt-get install nginx
apt-get install spawn-fcgi
apt-get install mercurial

再接下來是easy_install的安裝,以及安裝web.py和flup

apt-get install python-setuptools
easy_install web.py
easy_install flup

3. 簡易架設攻略

下載源碼

cd /var/www
hg clone https://simplecd.googlecode.com/hg simplecd cd simplecd
hg update deployment

接下來做一些基本的配置

#創建數據庫 ./fetchvc.py createdb #nginx的配置文件(請根據視頻進行相應修改) cp nginx/nginx.conf /etc/nginx/ cp nginx/simplecd /etc/nginx/site-available/ ln -s /etc/nginx/site-available/simplecd /etc/nginx/site-enabled/simplecd#用spawn-fcgi開fcgi nginx/spawn-fcgi.sh#開啟nginx服務 /etc/init.d/nginx start

好了,大功告成,訪問vps的地址看看,應該已經架設完畢了

4.simplecd的使用

一些數 據庫的更新方法:

上一步中的數據庫還是空的,必須下載數據庫,數據庫更新方法如下

./fetchvc.py feed #按照feed更新數據庫 ./fetchvc.py update #更新主頁的前20頁數據 ./fetchvc.py fetch q=海貓 #在verycd搜索所有關于海貓的內容并更新到數據庫 ./fetchvc.py fetch TopicID #直接更新topicid ./fetchvc.py fetchall #更新全部數據庫,建議還是不要嘗試為好 ./fetchvc.py fetch 1000-1001 #更新verycd的archives頁面第1000頁到1001頁的內容

下載全數據庫(截止2009.12.18)

eMule鏈接:

ed2k://%7Cfile%7Cverycd.sqlite3.db.lzma%7C233121378%7C0fd38cff1353e996576f9f3e9b8c65dd%7C

解壓: lzma -d verycd.sqlite3.db.lzma

然后放入 simplecd目錄即可

設置自動更新

想讓simplecd自動和VeryCD保持同步?

試試看 default branch的scdd.py:

hg update default python scdd.py start

每隔15分鐘看一下,如果成功的話應該已經有自動更新了

為什么simplecd.org的主頁和deployment不一 致?

simplecd.org上有 些特殊的設置,所以我沒有讓它與本源代碼同步,而是同步到另一個目錄,作出一些調整,然后復制到目標目錄。

要嘗試新界面和新功能你可以試試看dev branch:

hg update dev

注意:最新的dev branch使用了mysql數據庫,sqlite到mysql的轉換可見conf.py的注釋部分。

注意2*:mysql性能可能會極爛,如果有2G 以上內存那么可以考慮修改my.cnf至它默認的huge站的配置文件


項目主頁:http://www.baiduhome.net/lib/view/home/1327997016389

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!