用Apache+mod_wsgi部署python程序 作者:leven | 日期2010-11-29 00:09:37
2012-02-24 18:29
856 查看
用Apache+mod_wsgi部署python程序
作者:leven|日期2010-11-2900:09:37使用Apache+mod_wsgi部署webpy等python程序webpy是一个python上的非常轻量级的web框架,它和其他许多pythonweb框架一样,都能支持wsgi部署,而目前来看比较优秀的wsgi部署方案自然是Apache+mod_wsgi,它提供非常简单优秀的部署方式,使得python程序的部署不再困难,本文将详细讲述在Apache上部署mod_wsgi的方法,并尝试使用mod_wsgi支持webpy程序.
首先,我们假定我们的服务器已经安装配置好Apache了,安装路径为/usr/local/apache,虚拟主机配置文件在/usr/local/apache/conf/vhost下,那么我们可以开始安装mod_wsgi.
从mod_wsgi的官方网站http://code.google.com/p/modwsgi/下载最新的源代码,截止到本文,其最新版为3.3.下载解压,我们需要编译安装
在编译之前,我们需要确认当前环境是否能支持mod_wsgi,编译它需要完整的gcc编译环境,同时必须保证安装了python和python-dev包,如果您不确定是否有python支持,在debian上可以直接apt-get安装
1 | apt-get install pythonpython-dev |
下面开始编译mod_wsgi
1 | ./configure--with-apxs=/usr/ local /apache/bin/apxs--with-python=/usr/bin/python |
2 | make |
3 | make install |
然后我们编辑/usr/local/apache/conf/httpd.conf文件
加上
1 | LoadModulewsgi_modulemodules/mod_wsgi.so |
2 | AddTypetext/html.py |
1 | WSGIScriptAlias//var/www/main.py/ |
当然,一般程序都有静态文件支持,所以,您可能需要对某个目录下的文件跳过处理,如下
1 | Alias/static/var/www/static/ |
01 | ServerAdminadmin@xxx.com |
02 | DocumentRoot/var/www |
03 | ServerNamexxx.com |
04 | ServerAliaswww.xxx.com |
05 | WSGIScriptAlias//var/www/main.py/ |
06 | Alias/static/var/www/static/ |
07 | AddTypetext/html.py |
08 | ErrorLog/var/log/httpd/xxx_error.log |
09 | CustomLog"|/usr/bin/cronolog/var/log/httpd/xxx_access_%Y%m%d.log"custom1 |
10 |
11 |
12 | OptionsIndexesFollowSymLinks |
13 | AllowOverrideAll |
14 | Orderallow,deny |
15 | Allowfromall |
对于webpy,官方给出了wsgi的配置例子,具体参考:http://webpy.org/cookbook/mod_wsgi-apache/zh-cn
在本文中,我们参考之后,实际的main.py内容如下:
01 | #!/usr/bin/envpython |
02 | import os |
03 | import sys |
04 | path = os.path.dirname(os.path.realpath(__file__)) |
05 | sys.path.append(path) |
06 |
07 | import web |
08 |
09 | urls = ( |
10 | '/' , 'index' |
11 | ) |
12 |
13 | class index: |
14 | def GET( self ): |
15 | return "Hello,IamLeven." |
16 |
17 | app = web.application(urls, globals ()) |
18 | curdir = os.path.dirname(__file__) |
19 | session = web.session.Session(app,web.session.DiskStore(curdir + '/' + 'sessions' ),) |
20 |
21 | def session_hook(): |
22 | web.ctx.session = session |
23 |
24 | app.add_processor(web.loadhook(session_hook)) |
25 | application = app.wsgifunc() |
然后,由于web程序中会经常用到session,因此我们将session也加入到了程序中,具体存储路径在sessions目录下.
将webpy目录和main.py上传到web根目录,然后访问,如果访问结果如下图,恭喜,您的配置已经成功.
相关文章推荐
- 用Apache+mod_wsgi部署python程序
- 用Apache+mod_wsgi部署python程序
- 用Apache+mod_wsgi部署python程序
- 使用Apache+mod_wsgi部署webpy等python程序
- flask部署:Apache+mod_wsgi+python+virtualenv
- Apache+mod_wsgi部署python程序
- win+Apache+mod_wsgi部署python程序-apache2.2+python2.7
- win+Apache+mod_wsgi部署python程序-apache2.2+python2.7
- Python2.7 Django1.8 CentOS7 Apache2.4 mod_wsgi4.4.21 环境下部署
- 部署apache+mod_python+Django 应用常见的配置问题
- Win下python+Pydev+Django+apache+mod_wsgi开发部署配置记录
- fedora20 下 django1.6+python3.3 部署到 wsgi 和apache2.4
- 在window上部署python Django项目 采用apache+mod_wsgi方案
- 【脚本语言系列】关于PythonWeb服务器apache+mod_wsgi,你需要知道的事
- centos7 + Apache2.4 + python3.5 +mod_wsgi4.5.15 + Django1.10安装指导
- ubuntu server 下部署apache+django+mod_wsgi环境
- Apache2.4配置mod_wsgi,部署python应用
- apache+mod_wsgi部署quixote的方法
- Linux+Django+Python+Wsgi配置过程 Linux下配置Apache+Mod_Wsgi+Django环境 部署django项目
- LINUX平台部署apache+mod_python+django