用Apache+mod_wsgi部署python程序
来源:互联网 发布:淘宝科尔沃面具 编辑:程序博客网 时间:2024/06/05 05:26
用Apache+mod_wsgi部署python程序
使用Apache+mod_wsgi部署webpy等python程序
webpy是一个python上的非常轻量级的web框架,它和其他许多python web框架一样,都能支持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
python python-dev
如果提示未安装,安装即可
下面开始编译mod_wsgi
1
./configure --with-apxs=/usr/
local
/apache/bin/apxs --with-python=/usr/bin/python
2
make
3
make
install
如果没有错误,那么恭喜,mod_wsgi已经被成功编译并安装了.
然后我们编辑/usr/local/apache/conf/httpd.conf文件
加上
1
LoadModule wsgi_module modules/mod_wsgi.so
2
AddType text/html .py
如果要在某个虚拟主机上启用python+wsgi支持,只需要在vhost的配置文件中加入
1
WSGIScriptAlias / /var/www/main.py/
其中/var/www/main.py就是提供wsgi的主程序
当然,一般程序都有静态文件支持,所以,您可能需要对某个目录下的文件跳过处理,如下
1
Alias /static /var/www/static/
如此即可.最后加上目录设置即可,对于上面的例子,完整的虚拟主机配置如下
01
ServerAdmin admin@xxx.com
02
DocumentRoot /var/www
03
ServerName xxx.com
04
ServerAlias www.xxx.com
05
WSGIScriptAlias / /var/www/main.py/
06
Alias /static /var/www/static/
07
AddType text/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
Options Indexes FollowSymLinks
13
AllowOverride All
14
Order allow,deny
15
Allow from all
这样就配置好了此站点的mod_wsgi支持.那么对于python程序,应该如何使用这样的配置工作呢?下面我们以webpy为例,考虑实际部署一个测试程序
对于webpy,官方给出了wsgi的配置例子,具体参考:http://webpy.org/cookbook/mod_wsgi-apache/zh-cn
在本文中,我们参考之后,实际的main.py内容如下:
01
#!/usr/bin/env python
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, I am Leven."
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()
稍微解释下,由于我们考虑是虚拟主机部署,因此服务器并未安装webpy,我们将webpy放入web目录下,因此,在使用的时候,必须将当前目录加入path才可以正常载入webpy模块,所有文件开头先将当前目录加入path.
然后,由于web程序中会经常用到session,因此我们将session也加入到了程序中,具体存储路径在sessions目录下.
- 用Apache+mod_wsgi部署python程序
- 用Apache+mod_wsgi部署python程序
- Apache+mod_wsgi部署python程序
- 使用Apache+mod_wsgi部署webpy等python程序
- flask部署:Apache+mod_wsgi+python+virtualenv
- python&Django&mariadb&Apache&mod_wsgi 环境部署
- win+Apache+mod_wsgi部署python程序-apache2.2+python2.7
- win+Apache+mod_wsgi部署python程序-apache2.2+python2.7
- 用mod_wsgi在Apache上部署Django
- Apache + Flask + mod_wsgi部署
- apache+django+mod_wsgi 部署实践
- Apache 2.4 + mod_wsgi部署webpy
- 部署django : Apache + mod_wsgi + windows
- django static + apache mod_wsgi部署
- django用apache+mod_wsgi部署后中文乱码的解决方法
- 用Apache和mod_wsgi配置Python应用的教程
- 使用Apache + mod_wsgi部署webpy应用
- 使用Apache + mod_wsgi部署webpy应用
- hadoop开启调试信息
- IIS6.0下指定目录下创建虚拟目录
- 离散数学蕴含等值式前件为假命题为真的理解
- Oracle的redo和undo的区别
- 敏捷开发、重构与设计模式
- 用Apache+mod_wsgi部署python程序
- Apache使用mod_wsgi安装Trac
- VC调试方法大全!
- HBase 压缩算法设置及修改
- ubuntu11.04下安装gtk+
- ubuntu apache apxs 安装问题
- 用纯粹的C++编写COM组件
- 关于--在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常
- Html 进行DOM 操作(放缩,颜色...),HTML抓图(放缩,滚动,拼接)