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来测试)
浏览器输出:
参考资料:
http://man.chinaunix.net/develop/python/mod_python/mod_python.html
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=1259
python的各个web框架都可以做server的 不一定要靠apache这样的webserver
当然静态文件可能须要 另外 nginx更好 推荐给你
[回复]
christian_zeng 回复:
五月 15th, 2010 at 8:28 上午
各个框架里的Server只是开发时用的快捷服务器,不能用于产品环境,很多服务器对多线程都无法很好的支持!!
[回复]
Dante 回复:
五月 15th, 2010 at 10:27 上午
确实,在公司甚至并没有使用apache作为CGI的外网服务器,而是用了公司内部写的webserver,不过只支持C/C++的CGI,而写C/C++的CGI实在太痛苦……不是外网服务还是尽量避免……
[回复]
MadPer 回复:
五月 15th, 2010 at 8:53 上午
nginx很好,但不一定就更好,各有优点吧…
[回复]
无限 回复:
五月 15th, 2010 at 12:17 下午
就这个案例来说 要 webserver+python
我觉得nginx更好
因为我们公司的生产服务器就是这么搭配的 我的工作有一部分就是干这个
我是 nginx + python(web.py + fastcgi)
[回复]
Dante 回复:
五月 15th, 2010 at 10:24 上午
呵呵,之前一直没有nginx呢,有空尝试一下~~~
[回复]
像博主这么平易近人的高手都在用VIM,让我们这些用emacs的小白们怎么办呀…强烈抗议!强烈要求博主今后让自己的儿子(女儿)长大后用emacs,开博教我们怎么用emacs!
[回复]
Dante 回复:
五月 15th, 2010 at 9:24 下午
过奖过奖,其实我只是用vim比较早而已啦~~~
哈哈,其实你可以好好研究emacs嘛,这样就可以向大家普及emacs啦~~
ps:其实我的电脑也一直装着emacs呢,不过不太会用,呵呵~
[回复]
MadPer 回复:
五月 15th, 2010 at 9:37 下午
博主,我又几个有关职业方向方面的问题想请教,不知博主是不是愿意,以及什么时间方便?
[回复]
Dante 回复:
五月 15th, 2010 at 9:44 下午
呃,其实我入职场也才几年,不敢妄加指导呢……
MadPer也已经工作了吧?
[回复]
MadPer 回复:
五月 15th, 2010 at 9:46 下午
小弟大一,软件工程专业,现就读于中山大学,目前还只是个麻瓜,所以想请教下前辈~
[回复]
ET 回复:
二月 11th, 2012 at 8:04 下午
话说你是09级的吗?
[回复]
MadPer 回复:
五月 15th, 2010 at 9:56 下午
好像忘了最重要的一句话,还没工作…还早着工作呢,连实习经验也还木有…
[回复]
由于linux的python终端不支持readline,所以想重编一下,却突然想起来python官网的下载链接被屏蔽掉了……
可以去这里下载:
http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
如果直接下载不来,就把这个链接放到迅雷里……
还有如果想编译加入readline的话,
需要调用如下命令:
./configure –enable-readline
[回复]
itxx 回复:
四月 26th, 2011 at 12:48 下午
use ipython
[回复]
问下楼主层叠式的回复样式是用的什么wordpress插件啊?
[回复]
Dante 回复:
五月 21st, 2010 at 10:19 上午
我启动
Wordpress Thread Comment
就自动这样了……
[回复]
grassofhust 回复:
五月 21st, 2010 at 10:30 上午
Thanks Dante!
[回复]
[...] http://www.vimer.cn/2010/05/linux下搭建pythonapache环境.html [...]
[...] 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环境 [...]