洛阳铲的日志

2008年01月17日

再次质疑Django+M od_python时对环境 变量的处理

Filed under: Apache,django,Python — HackGou @ 12:12

今天在升级一个django开发的系统到V2的时候,
发现~/无法正确的展开成 /home/hackgou.(apache是以hackgou帐号执行的,)
也不会展开成/root(apache是以root启动的) 觉得非常奇怪,
就算是用os.path.expanduser(‘~/’)也无济于事。 于是怀疑是os.envrion[‘HOME’]不对,
因为expanduser是需要这个变量来展开~/的。 于是使用setenv HOME /home/hackgou/ 可是也不工作,
后来在django/core/handlers/modpython.py的ModPythonHandler中 发现Django开发组已经注意到,
mod_python不理会apache的setENV指令:
# mod_python fakes the environ, and thus doesn’t process SetEnv. This fixes that
os.environ.update(req.subprocess_env)

但是这个和SetEnv DJANGO_SETTINGS_MODULE app.settings 自相矛盾矛盾,真晕,
自己不设置正确的,也不搭理管理员指定的,怎么办?
后来在http://code.google.com/p/modwsgi/wiki/ApplicationIssues找到一些类似的情况,
提到sudo的时候有bug,会导致HOME和root启动的HOME不一样,太好了,我就要这样的bug。
设置hackgou账号的sudo权限,然后用sudo来启动apache,果然所有的expanduser(‘~/’)都顺利。
除此之外, 文中提到
import os, pwd os.environ[“HOME”] = pwd.getpwuid(os.getuid()).pw_dir
这样的代码,似乎可以解决这个问题,神啊,我很反感这种做法:
1.django中似乎没有地方可以放置这样的需要这个APP都需要的代码,我的DRY啊
2.Django修改环境变量似乎成了习惯,之前碰到个TIME_ZONE的问题,就是因为修改了APACHE的环境变量,
导致 别的应用环境受到污染,要知道一个apache进程是很多应用共享的, 除了Djano还有别的应用,
比如别的Django应用或者PHP,都有可能在一个相同的APACHE进程空间中处理,
说有可能是因为apache本身的一些设置会出现这些差别,跟py没有关系, 这样会导致他们的工作环境受到污染。
这似乎没有好的方法可以解决这个问题, 对Django或者说对mod_python 的这种拖泥带水的做法感觉非常的不爽。
也不知道有没有更好的更彻底的解决方法?
如果谁知道,能够告诉我那是最好不过的了

2008年01月14日

元旦出游和我要上学

Filed under: 生活小札 — HackGou @ 18:00

早上到了蓝村路地铁,在等地铁的功夫,在平日里满是广告的地铁墙上发现了一则”为留守儿童建设”春蕾寄宿制学校”” 的公益广告[]。

11646ec05e6.jpg

商业广告满天飞的今天,这实属难得,遂发了短信捐赠10元,AD一下 “中国移动用户手机编写短信”12345″发送至10699958,即捐款10元,不含通信费。 请一起持续发挥爱心,共同关怀留守儿童!” 而且还有一个专门的blog: http://woyaoshangxue.blog.sohu.com/ 公益也赶上web2.0的顺风车,公益2.0。 目前应该有很多人都希望可以做些捐赠,但是不一定找得到地方,以前报国无门,如今也有捐赠无门。 google上面”如何 公益捐赠”也找不到合适的答案,而且每每看见电视上、广播上说某某集团、某某公司 捐款XXX元给中华慈善总会所以对于每次利用移动平台做的公益捐款,我都会参加, 虽然不多,但是泱泱大国,人数一多,款项也是巨大的,也是人口基数大为数不多的好处了。

卢安克,请记住这个名字

Filed under: 生活小札 — HackGou @ 18:00

“卢安克”这个看起来有些怪怪的名字,当我看到他第一个报道的时候, 为他的事迹所深深感动,无论是google还是baidu,还是各大门户。 都有他的一大堆专题,这着实让人费解。 摘录几段关于他的报道:
德国青年穷乡义教6载,入籍被拒黯然离华 一名德国青年因来华旅游与中国结下不解之缘,过去6年来以一人之力深入中国最穷的西部山村从事义务教育,拒绝名利,将自己的积蓄和德国家人的资助全部投入所从事的工作,屡遭磨难误解,依然无怨无悔,赢得当地民众信赖并感动舆论。为长留中国,他申请加入中国籍却因法规所限而未成功,只好暂时返国。他的离去引起舆论关注,民间响起呼吁他”回来”的声浪。 ·1997年,他在南宁的一所残疾人学校义务教德文,因没办下就业证,被公安局罚了3000块钱。 ·1999年他又从德国回到广西,在河池地区一所县中学当初中老师,因不能提高学生的考试分数,家长们有意见,学校把他开除了。 ·为了能在贫困学校免费当老师,卢安克在广西外经贸委注册成立了就他一个人的办事处,自己派自己当老师。 ·他先后到了广西阳朔县兴坪镇大坪子八一初中和东兰县隘洞镇的初中教书。 ·2001年离开隘洞中学,到了更偏僻的东兰县坡拉乡广拉村进行素质教育
http://baike.baidu.com/view/648808.htm

Powered by WordPress