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

  一、安装mod_wsgi 3.4:

  ?


1

2

3

./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配置文件:

  ?


1

2

LoadModule wsgi_module modules/mod_wsgi.so

Include conf/extra/httpd-vhosts.conf

  编辑extra/httpd-vhosts.conf新建项目并增加gzip压缩python输出的文本:

  ?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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

  ?


1

2

3

def application(environ, start_response):

start_response('200 OK', [('Content-Type', 'text/html')])

return ['Hello, world.']

  或者使用web.py框架:

  ?


1

2

3

4

5

6

7

8

9

10

11

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文件:

  ?


1

2

3

DEBUG = True

TEMPLATE_DEBUG = False

ALLOWED_HOSTS = ['localhost']

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

  ?


1

2

3

4

#/Library/WebServer/Documents是apache中DocumentRoot位置

#votebing是我建的项目

import sys

sys.path.append('/Library/WebServer/Documents/votebing')

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

  ?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#载入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>

(0)

相关推荐

  • 什么是bash?如何手动升级你Mac OS上的bash?

    什么是bash?相信很多果粉们都不太清楚吧,其实它是应用于大多数基于Linux或Unix操作系统的命令行程序,其中包括有Mac OS,他们可以使用你的文件,获取你的私密信息,删除数据,运行程序等等。那 ...

  • 如何在Mac Os上进行pdf文件的编辑

    如何在Mac Os上进行pdf文件的编辑 方法/步骤 首先,打开我们所要编辑的pdf文件,这里是已经打开完毕的预览图 打开方式很简单,选择菜单栏的文件--打开--选择文件即可 选中我们想要修改的文字, ...

  • 在Mac OS上为SSD固态硬盘开启Trim指令的教程

    固态硬盘(SSD)突破了传统硬盘的速度瓶颈,并且工作稳定.无噪音.耗电少,随着成本的下降,大有取代传统硬盘的势头.使用SSD的人大多听说过TRIM,操作系统一定要支持TRIM才能让SSD的性能实现最优 ...

  • 在Mac OS上搭建Python的开发环境

    一. 安装python mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python.这里有两种方案安装: 1.homebrew ...

  • Mac OS 怎么设置网络连接?

    使用电脑的人不可能不使用网络,网络是连接外界的基本.使用MAC OS可定就要设置网络连接,Mac OS X对网络的管理是非常强大并容易使用的,下面就来设置一下网络连接. 操作方法 01 打开网络配置 ...

  • 苹果操作系统Mac OS上安装Office2016的步骤

    用在苹果电脑操作系统上的微软Office 2016 For Mac OS已经出来蛮久了,新版office2016在原来2011的基础上改进太多了,强烈建议升级2016吧 操作方法 01 先下载并打开M ...

  • Mac OS上通过boot2docker安装使用Docker的教程

    安装boot2docker是将docker daemon运行在虚拟机中的,所以系统中必须要有虚拟机环境:VMware.virtualbox.parallels都可以,必须要有,且使用的工具包有所不同. ...

  • mac os下创建android avd后启动报找不到avd ini文件怎么办?

    在 Mac OS 上创建了android虚拟机(avd)后,启动的时候报找不到adv对应的ini文件 PANIC: Could not open: ~/.android/avd/android4.0. ...

  • mac os x10.10wifi连接特别慢几分钟后自自行断开

    mac os x10.10wifi连接问题怎么解决呢?相信很多使用os x yosemite系统的朋友都遇到了wifi连接的问题,下文小编就为大家带来mac os x10.10wifi连接问题的修复方 ...