前段日子用apache2.2+mod_python 来运行django ,搭完就放在那自己去开发东西了。当我第一个django项目写得差不多的时候,我把代码放到这个搭完的环境下运行,开始还可以,后来不知道怎么的,总莫名奇妙的报500错误,查看apache日志N个 child pid xxx exit signal Segmentation fault 。恐怖之余,GOOGLE了一翻 ,有的说和apache用的expact和python的pyexpact的系统expact统库版本不同引起的,想办法让其一至就OK
,有的说mod_python和mod_php都用到mysql做为数据库,各自用的mysqllib有冲突。。。。
后来在官网上也看到了这两个提示,按其方法一路下去,还是没有根本解决问题。所以有的人就说了,运行mod_python的服务器就只它只运行mod_python吧,不要和mod_php放一起。不知道这样分开是不是能解决问题,没时间再去尝试。
好在python做web开发和主流的服务器结合不是止有一条路可走。我把目光转到了mod_wsgi。
也有人做了很多测试,说mod_wsgi的性成更好,而且更稳定,如有个测试数据说mod_python 是400pages/sec ,而mod_wsgi则是900pages/sec,也不知道对不对,反正我做的测试下,mod_wsgi性成要更好一些。而且再也没出现过那个500错误的问题
好,费话不多说,看看这个mod_wsgi是怎么安装配置的。这里我之前已装过了apache + mysqldb + python + django
1.下载
地址 http://code.google.com/p/modwsgi/
在里面找到合适的下载下来。(我下的是最新版)
2.解压。( 太懒了,不想写这个命令了)
3.编绎,
./configure (如果APACHE是你自己编译的,就用"--with-apxs=你的apache apxs位置"来指定)
make && make install
更多信息请参考 http://code.google.com/p/modwsgi/wiki/InstallationInstructions
4.配置。
(1)站点下加一个yoursite.wsgi内容如下
看出来了吧,这个文件是将你的站点所需的配置啊环境变量啊什么的加到运行时里。
(2)找到你的apache的配置文件,先将mod_swgi load进来
再加入下面的设置
更多说明,参看 http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango
5.重启APACHE 一切OK,访问下你的站点吧