最后更新于 .

今天尝试了一下搭建python+apache的环境,记录在这里,希望对大家有用. 一.安装apache(apache2.2.15) 到 http://httpd.apache.org 下载最新的apache源码,解压后进入目录: 我想把apache安装到/home/dantezhu/apache下,所以执行如下命令 执行:

./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

执行:

make && make install

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

LoadModule unique_id_module modules/mod_unique_id.so

注释掉就好了。 二.安装python(python2.6)

./configure --enable-shared

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

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

执行:

make

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

make install

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

LoadModule python_module modules/mod_python.so

四.测试

1)在httpd.conf中加入

<Directory "/home/dantezhu/apache/py">
    AllowOverride FileInfo
    AddHandler mod_python .py 
    PythonHandler index
    PythonDebug On
    Order allow,deny
    Allow from all
</Directory>

同时在

<IfModule alias_module>
</IfModule>

加入

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

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

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

Pingbacks

  1. windows下apache,python,django,mod_python的安装 | 包子 on #

    [...] http://www.vimer.cn/2010/05/linux下搭建pythonapache环境.html [...]

  2. 老夏的部落格子 &raquo; Blog Archive &raquo; ubuntu10.10下搭 on #

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

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. 无限

    无限 on #

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

    Reply

    1. christian_zeng

      christian_zeng on #

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

      Reply

      1. Dante

        Dante on #

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

        Reply

    2. MadPer

      MadPer on #

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

      Reply

      1. 无限

        无限 on #

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

        Reply

    3. Dante

      Dante on #

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

      Reply

  2. MadPer

    MadPer on #

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

    Reply

    1. Dante

      Dante on #

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

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

      Reply

      1. MadPer

        MadPer on #

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

        Reply

        1. Dante

          Dante on #

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

          Reply

          1. MadPer

            MadPer on #

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

            Reply

            1. ET

              ET on #

              话说你是09级的吗?

              Reply

          2. MadPer

            MadPer on #

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

            Reply

  3. Dante

    Dante on #

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

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

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

    Reply

    1. itxx

      itxx on #

      use ipython

      Reply

  4. grassofhust

    grassofhust on #

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

    Reply

    1. Dante

      Dante on #

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

      Reply

      1. grassofhust

        grassofhust on #

        Thanks Dante!

        Reply

  5. Glools Guan

    Glools Guan on #

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

    Reply

    1. www.cclove.me

      www.cclove.me on #

      你有博主那么牛么

      Reply

  6. 党明

    党明 on #

    显示不了helloworld啊。。。

    Reply

发表评论