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