首页 > 网站 > 帮助中心 > 正文

在Mac OS上使用mod

2024-07-09 22:42:39
字体:
来源:转载
供稿:网友

一、安装mod_wsgi 3.4:

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

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

LoadModule wsgi_module modules/mod_wsgi.soInclude 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 weburls = (  '/.*', '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> 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表