linux下搭建python+apache环境

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

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

1
./configure --prefix=/home/dantezhu/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp --enable-proxy-balancer --enable-so

执行:

1
make && make install

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

1
LoadModule unique_id_module modules/mod_unique_id.so

注释掉就好了。

二.安装python(python2.6)

1
./configure --enable-shared

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

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

1
./configure --with-apxs=/home/dantezhu/apache/bin/apxs --with-python=/usr/local/bin/python

执行:

1
make

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

执行:

1
make install

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

1
LoadModule python_module modules/mod_python.so

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

1
2
3
4
5
6
7
8
<Directory "/home/dantezhu/apache/py">
    AllowOverride FileInfo
    AddHandler mod_python .py 
    PythonHandler index
    PythonDebug On
    Order allow,deny
    Allow from all
</Directory>

同时在

1
2
<IfModule alias_module>
</IfModule>

加入

1
ScriptAlias /py/ "/home/dantezhu/apache/py/"

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

1
2
3
4
from mod_python import apache
def handler(req):
    req.write("Hello World!")
    return apache.OK

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

浏览器输出:

1

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





原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]

本文链接地址: http://www.vimer.cn/?p=1259

20 个评论 在 “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环境 [...]

我要评论

*

*