SimpleCD山寨版的 VeryCD
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站的配置文件