您的位置:首页 > 运维架构 > Apache

WIN下,Web.py+apache2.2(mod_wsgi)保证session可用

2012-09-10 17:50 253 查看
刚接触python的轻量级框架web.py,但在使用session时总是无效(现象就是在sessions目录中每次请求都会生成一个新的文件),经过大量的google还是没有找到解决的方案,最后尝试了一下把应用集成到虚拟主机上下面,解决该问题.特分享 

1. 下载mod_wsgi.so http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2 
下载  http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py26-3.3.so 

2. copy mod_wsgi-win32-ap22py26-3.3.so 到 apache/modules目录中 

3. 修改apache配置文件httpd.conf 在文件尾部添加 
LoadModule wsgi_module modules/mod_wsgi.so 
AddType text/html .py 

#Include conf/extra/httpd-vhosts.conf -> Include conf/extra/httpd-vhosts.conf 

4. 添加虚拟主机 
NameVirtualHost *:80 
<VirtualHost *:80> 
ServerAdmin admin@xxx.com 
DocumentRoot d:/www 
ServerName webpy.net 
ServerAlias www.webpy.net 

WSGIScriptAlias /webpy d:/www/webpy-app/code.py/ 
Alias /webpy/static d:/www/webpy-app/static/ 
<Directory d:/www/webpy-app/> 
Order deny,allow 
Allow from all 
</Directory> 
</VirtualHost> 

5. code.py源码 
import web 
import os 

web.config.debug = False 

urls = ( 
'/.*', 'hello', 


app = web.application(urls, globals()) 
curdir = os.path.dirname(__file__) 
session = web.session.Session(app, web.session.DiskStore(curdir + '/'+ 'sessions'),initializer={'count': 0}) 

class hello: 
def GET(self): 
session.count += 1 
return "Hello, world. count: %d"%session.count 

application = app.wsgifunc() 

6. 重启apache 

7. 在浏览器中输入http://www.webpy.net/webpy/ 
然后查看计数器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息