2007年10月30日

随笔:Django升级,Ubuntu DVD版

作者 非鱼

昨天晚上闲着没事,跑到Django的网上看了一下,居然正好发布了一个重要升级,对于0.95和0.96稳定版,还在svn trunk版,都有一个严重的拒绝服务漏洞(在开启了国际化和localMiddleware的双重前提下),很不幸的是,理财易正好符合这个条件,于是准备升级。官方的1.0始终不发布,每天十几甚至几十个bug fixed,还有新的改进,心想这次干脆直接升级到svn版得了,因为比起0.96已经过了四个多月了,功能上和性能上都有了相当大的改进。

于是在自己的开发机上下载了trunk里的django,安装上去,本地测试一下程序,没有问题,于是登录到理财易的服务器上,下载了trunk里面的django,安装,然后做了一件傻事,直接重启了理财易的服务,而不是测试环境的服务,结果,恶梦发生了,网站进不去了。于是赶紧切换到测试环境,显示500错误,一开始是提示我使用的那个DualSessionMiddleware加载错误,进入django的session部分一看,它的middleware发生了重大变化,SessionWrapper类不存在了!天哪。

赶快修改settings文件,切换回系统的Session模块,再打开,还是500错误,而且,根本不显示任何的错误信息了,只有一个IE自己的500错误。来到服务器上看errors.log,没有任何信息。马上下载回0.96.1,安装,重启,还是500。汗都要出来了。怀疑是不是没删除原来的直接安装的问题,于是来到Python的Lib目录,删光了django相关的文件,重新安装django trunk,重启,还是500错误。再删一次,重新安装0.96.1版本,再重启,哇,恢复了。

经过这惊魂10分钟,情绪稳定下来以后,来到网上查找相关的资料,没有任何地方提到1.0版把SessionWrapper搞到哪里去了。而我根据新的session middleware重新修改了那个DualSessionMiddleware类,结果还是500错误,不知道是哪里的问题。而我在开发机上的环境却一切良好,即使是使用1.0版的django。见鬼了。(服务器使用的是lighttpd+FastCGI,开发机上没有这个,只是使用manage.py runserver的临时服务器。)

今天晚上想再装一下Ubuntu 7.10版,又在论坛上看到说DVD版的东西比较全,安装的时候不需要联网下载中文支持文件(每次下载都要半小时以上,慢的要死),于是下载了DVD版开始装。在光盘的启动菜单里看到一项用文本模式进行安装,噫,这个不错,省的启动进去那个LiveCD了。于是经过几个简单的选项,开始安装了。

好家伙,稀里哗啦这一通装,超过Redhat企业版的安全安装了。也难怪,Redhat企业版4的DVD才2.4G,Ubuntu的DVD版要4.2G,多了多少东西啊。装了好久,终于装完了。文本模式安装有一个好处,在最后可以选桌面的分辨率,而可视化的安装则没有这个选项。

进了系统,也没发现比单CD版多装了些什么,菜单还是那么几个。装上vmware tools,发现鼠标不能自动移出虚拟机,(在Hiweed1.0里面就可以),后来发现如果开着vmware toolbox就可以了。然后安装了雅黑字体,还挺好看的。但是马上就发现了一个严重的问题,就是无论点什么程序,CPU占用率都会突然到顶,然后等啊等,大概30秒,窗口才出来。这个速度如果拿来实用,那是不可接受的。到网上找了篇讲优化的文章,照着修改了几个参数,然后重启,结果,启动程序的速度没有改观,反而是上不了网了。

天哪,RPWT?