在Mac OS上使用mod_wsgi连接Python与Apache服务器


Posted in Python onDecember 24, 2015

一、安装mod_wsgi 3.4:

./configure --with-apxs=/Users/levin/dev/apache2.2.27/bin/apxs --with-python=/usr/bin/python
make
make install

编辑httpd.conf使Apache导入模块mod_wsgi.so以及引入vhost配置文件:

LoadModule wsgi_module modules/mod_wsgi.so
Include conf/extra/httpd-vhosts.conf
编辑extra/httpd-vhosts.conf新建项目并增加gzip压缩python输出的文本:
Listen 8001

<VirtualHost *:8001>
  WSGIScriptAlias / /Users/levin/dev/py/webapp/app.py/
  Alias /assets /Users/levin/dev/py/webapp/static/
  AddType text/html .py 
  <Directory /Users/levin/dev/py/webapp/>
    Order deny,allow
    Allow from all 
    SetOutputFilter DEFLATE       #开启gzip
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary      #图片不开启gzip
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|rar)$ no-gzip dont-vary   #压缩包不开启gzip
    SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/*
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript application/xml
    AddOutputFilterByType DEFLATE application/x-httpd-php
  </Directory>
</VirtualHost>

先写个测试脚本app.py

def application(environ, start_response):
  start_response('200 OK', [('Content-Type', 'text/html')])
  return ['Hello, world.']

或者使用web.py框架:

import web

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

class hello:
  def GET(self):
    return "Hello, world."

application = web.application(urls, globals()).wsgifunc()

在浏览器中访问: http://localhost:8001/,看到Hello, world.就算安装成功了。

二、Django使用中可能遇到的麻烦解决:
1.修改setting.py文件:

DEBUG = True 
TEMPLATE_DEBUG = False 
ALLOWED_HOSTS = ['localhost']

2.修改项目中的wsgi.py,这个是建项目的时候就自带创建的,跟setting.py在同一目录,我傻傻的自己创建好多次,后来才发现文件位置不对,悲剧了。

#/Library/WebServer/Documents是apache中DocumentRoot位置 
#votebing是我建的项目 
import sys 
sys.path.append('/Library/WebServer/Documents/votebing')

3.修改apache安装目录中的httpd.conf,我的是在/etc/apache2/httpd.conf

#载入mod_wsgi 
LoadModule wsgi_module /usr/libexec/apache2/mod_wsgi.so 

WSGIScriptAlias /votebing /Library/WebServer/Documents/votebing/votebing/wsgi.py 
WSGIPythonPath /Library/WebServer/Documents 
 
<Directory /Library/WebServer/Documents/votebing/> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 
Alias /media/ /Library/WebServer/Documents/votebing/media/ 
Alias /static/ /Library/WebServer/Documents/votebing/static/ 
 
<Directory /Library/WebServer/Documents/votebing/static> 
Allow from all 
</Directory> 
 
<Directory /Library/WebServer/Documents/votebing/media> 
Allow from all 
</Directory>
Python 相关文章推荐
Python的Django框架使用入门指引
Apr 15 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
python删除某个字符
Mar 19 Python
Python中的Numpy矩阵操作
Aug 12 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python 字典的打印实现
Sep 26 Python
python爬虫添加请求头代码实例
Dec 28 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
python 写一个水果忍者游戏
Jan 13 Python
Python 图片添加美颜效果
Apr 28 Python
在Mac OS上搭建Python的开发环境
Dec 24 #Python
详解Python字符串对象的实现
Dec 24 #Python
浅谈Python单向链表的实现
Dec 24 #Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 #Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 #Python
Python生成随机验证码的两种方法
Dec 22 #Python
基于python实现微信模板消息
Dec 21 #Python
You might like
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
Ext面向对象开发实践(续)
2008/11/18 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
详解VUE 数组更新
2017/12/16 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
python正则表达式面试题解答
2020/04/28 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
.net面试题
2016/09/17 面试题
介绍一下Python下range()函数的用法
2013/11/07 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
酒店副总岗位职责
2013/12/24 职场文书
大学应届生的自我评价
2014/03/06 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
中学感恩教育活动总结
2015/05/05 职场文书