今天尝试了一下搭建python+apache的环境,记录在这里,希望对大家有用.

一.安装apache(apache2.2.15)
http://httpd.apache.org 下载最新的apache源码,解压后进入目录:
我想把apache安装到/home/dantezhu/apache下,所以执行如下命令
执行:

执行:

这样apache就装好了,apache的配置我就不说啦,不过在这里不我这里启动的时候会报错,所以就把httpd.conf中的

注释掉就好了。

二.安装python(python2.6)

我的python安装目录是 /usr/local/lib/python2.6/

三.安装mod_python(mod_python3.3.1)
(请用root权限执行)
www.modpython.org下载源码包,解压后进入目录:
执行:
(这个命令分别指定了apache和python的目录)

执行:

在这里编译会有报错,到
https://bugzilla.redhat.com/show_bug.cgi?id=465246
下载patch,并执行

执行:

会在/usr/local/lib/python2.6/site-packages/下生成一个mod_python目录
同时在./src/.libs/下生成了一个mod_python.so,将这个so拷贝到apache的modules目录,并在httpd.conf中加入

四.测试
1)在httpd.conf中加入

同时在

加入

2)在apache目录下建立一个py目录,在里面新建一个文件index.py,内容如下:

(注意:PythonHandler index ,这里的名字index决定必须用index.py来测试)

浏览器输出:

1

参考资料:
http://man.chinaunix.net/develop/python/mod_python/mod_python.html

有限状态机的C++实现(2)-bayonet开源网络服务器框架

接着上一篇文章: 有限状态机的C++实现(1)-epoll状态机,我们今天来介绍更复杂和深入的部分。 为什么会在标题中提到bayonet这个开源项目呢?笔者本人一直想要...

阅读全文

时间相关的一些前后台知识

最近有很多时间相关的一些技术积累,主要分为三块, 1.gettimeofday时间差不准的bug 2.时间的字符串形式和时间戳形式的转化(C语言) 3.提供时间日期选择的...

阅读全文

vim(gvim)一键执行python脚本的bug

前一段时间在博客中和fuadam讨论过python中调用print的时候,是否可以直接打印decode之后的字符的问题。(原文:python-django的中文编码总结) 一开始我...

阅读全文

23则回应给“linux下搭建python+apache环境”

  1. 无限说道:

    python的各个web框架都可以做server的 不一定要靠apache这样的webserver
    当然静态文件可能须要 另外 nginx更好 推荐给你

    [回复]

    christian_zeng 回复:

    各个框架里的Server只是开发时用的快捷服务器,不能用于产品环境,很多服务器对多线程都无法很好的支持!!

    [回复]

    Dante 回复:

    确实,在公司甚至并没有使用apache作为CGI的外网服务器,而是用了公司内部写的webserver,不过只支持C/C++的CGI,而写C/C++的CGI实在太痛苦……不是外网服务还是尽量避免……

    [回复]

    MadPer 回复:

    nginx很好,但不一定就更好,各有优点吧…

    [回复]

    无限 回复:

    就这个案例来说 要 webserver+python
    我觉得nginx更好
    因为我们公司的生产服务器就是这么搭配的 我的工作有一部分就是干这个
    我是 nginx + python(web.py + fastcgi)

    [回复]

    Dante 回复:

    呵呵,之前一直没有nginx呢,有空尝试一下~~~

    [回复]

  2. MadPer说道:

    像博主这么平易近人的高手都在用VIM,让我们这些用emacs的小白们怎么办呀…强烈抗议!强烈要求博主今后让自己的儿子(女儿)长大后用emacs,开博教我们怎么用emacs!

    [回复]

    Dante 回复:

    过奖过奖,其实我只是用vim比较早而已啦~~~

    哈哈,其实你可以好好研究emacs嘛,这样就可以向大家普及emacs啦~~
    ps:其实我的电脑也一直装着emacs呢,不过不太会用,呵呵~

    [回复]

    MadPer 回复:

    博主,我又几个有关职业方向方面的问题想请教,不知博主是不是愿意,以及什么时间方便?

    [回复]

    Dante 回复:

    呃,其实我入职场也才几年,不敢妄加指导呢……
    MadPer也已经工作了吧?

    [回复]

    MadPer 回复:

    小弟大一,软件工程专业,现就读于中山大学,目前还只是个麻瓜,所以想请教下前辈~

    [回复]

    ET 回复:

    话说你是09级的吗?

    [回复]

    MadPer 回复:

    好像忘了最重要的一句话,还没工作…还早着工作呢,连实习经验也还木有…

    [回复]

  3. Dante说道:

    由于linux的python终端不支持readline,所以想重编一下,却突然想起来python官网的下载链接被屏蔽掉了……

    可以去这里下载:
    http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
    如果直接下载不来,就把这个链接放到迅雷里……

    还有如果想编译加入readline的话,
    需要调用如下命令:
    ./configure –enable-readline

    [回复]

    itxx 回复:

    use ipython

    [回复]

  4. grassofhust说道:

    问下楼主层叠式的回复样式是用的什么wordpress插件啊?

    [回复]

    Dante 回复:

    我启动
    Wordpress Thread Comment
    就自动这样了……

    [回复]

    grassofhust 回复:

    Thanks Dante!

    [回复]

  5. [...] 6、测试简单脚本:建一个python文件,index.py from mod_python import apache def handler(req):     req.write(“Hello World!”)     return apache.OK 以apt-get方式安装的Apache的网页目录一般情况下载/usr/www目录下,放index.py放入,浏览器打开http://localhost,如果输出Hello World!则测试成功。 参考内容: ubuntu下搭建django的开发环境 Linux+Apache+Php+Python和Youflog博客程序 linux下搭建python+apache环境 [...]

  6. Glools Guan说道:

    你好, 最近研究python,看到你的文章很好,多谢,顺便有个问题想问一下,你如何推广自己的blog,我也有blog,地址 glools.just-life.me, 但是访问量很低,求赐教,多谢。

    [回复]

    www.cclove.me 回复:

    你有博主那么牛么

    [回复]

  7. 党明说道:

    显示不了helloworld啊。。。

    [回复]

发表评论