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

一、安装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>
(0)

相关推荐

  • 详解配置 Apache 服务器支持 PHP 文件的解析

    详解配置 Apache 服务器支持 PHP 文件的解析 [说明] 1. 本例中 Apache 版本为 httpd-2.4.20-x64-vc14 ,安装路径为 E:\Apache24 2. PHP 版本为 php-5.5.34-Win32-VC11-x64 ,安装路径为 E:\php-5.5.34 [下载] 登录 http://php.NET/downloads.php 下载 PHP,由于我要把它跟 Apache 集成,所以我这里下载的是 Thread Safe 版本: [安装] 1. 解压下载

  • 跨域请求 Apache 服务器配置的方法

    1.修改服务器配置文件 <Directory /www/web/yuming.com/public_html/> Options FollowSymLinks AllowOverride All Require all granted Header set Access-Control-Allow-Origin * </Directory> 2.编辑httpd.conf 找下面这行,把#去掉,目的是开启apache头信息自定义模块 #LoadModule headers_modul

  • CentOS服务器apache绑定多个域名的方法

    Apache是最流行的HTTP服务器软件之一,其以快速.可靠(稳定)而著称,并且可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,并且源代码全部开放.如果有自己的服务器或者VPS,并且不想为了方便而购买昂贵的控制面板的话,那自己动手配置Apache就成了一门必修课了.下面简单的介绍了如何通过设置Apache的http.conf文件,进行多个域名以及其相关的二级域名的绑定(假设我们要绑定的域名是minidx.com和ntt.cc,二级域名是blog.minidx.c

  • 在Mac OS上自行编译安装Apache服务器和PHP解释器

    Apache 2.2.27和PHP 5.5.12在Mac OS X 10.8.5编译安装过程: 在开始之前首先升级Xcode的组件: preferences => Downloads => 下载Command Line Tools包 然后进入Apache的源码包,对于大部分的源码包都可以使用下面这个指令来查看编译选项: ./configure --help 配置编译选项: ./configure --prefix=/Users/levin/dev/apache2.2.27 --enable-m

  • 如何配置Apache服务器中的虚拟机

    Apache 的虚拟主机就是在一台服务器上运行多个网站,每个虚拟主机都可以绑定独立的域名,为这些域名可以指定单独的目录,访问这些域名的时候,Apache 会打开对应目录里面的东西.配置 Apache 的虚拟主机,只需要去修改 Apache 的配置文件.虚拟主机的英文是 virtual host,所以,你的 Apache 配置虚拟主机的文件可能是 httpd.conf ,也可能是跟 virtual host 这个名字相关的文件,比如 vhost.conf ,具体要使用哪一个配置文件,你需要自己去判

  • CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.jb51.net/os/239738.html 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT :wq! #保存

  • 使用Apache打造完美限制的HTTP下载服务器

    一开始本来准备选择使用FTP作为下载服务器的,不过过了几天就发现很多都是通过盗链的方式来FTP下载.这下服务器在持续性全速提供上传,但是网站的页面浏览量却少得可怜.因为FTP天生不能放盗链的特性所以只能考虑放弃使用,最后决定用HTTP下载来替代. 直接用HTTP服务器下载也不是很容易的事.最开始在IIS里面配置,IIS只能设定最大下载速度和最大连接数,这对于一些使用下载工具一来就开50+线程霸道下载的朋友明显是防不住的.网上搜了N久就发现一个用Delphi写的看不懂的ISAPI Filter以及

  • Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解

    选择在PhpStorm集成apache服务器,下面是我自己的亲测的步骤. 1.如何修改apache默认端口 xampp apache默认的http访问端口是80 修改完成后在xampp中重启apache. 2.配置流程 打开Settings / Preferences 找到 Build, Execution, Deployment 选项,点击 Deployment 添加如下: 因为我们修改了默认端口80,所以这里一定要指明端口号.目录是/Applications/XAMPP/xamppfiles

  • Linux下将Python的Django项目部署到Apache服务器

    这几天花了点时间,将把django开发好的web项目部署到Apache上,参考了官方的一些文档和互联网上的文档,还是花了比较多的时间,这里把配置的过程说一下. 方便有需要的朋友,可以参考,少走弯路! 1. django项目部署环境说明 操作系统 : Red Hat Enterprise Linux Server release 5.3 (Tikanga) x86_64 apache版本 : httpd-2.2.3-22.el5 mod_wsgi版本 : mod_wsgi-3.2-1.el5 fe

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

    一.安装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-vhos

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

    一. 安装python mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python.这里有两种方案安装: 1.homebrew brew install python 这个方案比较简单,如果出错的话可以给前面加sudo试试,这个安装的python可能不是最新版. 2.从官网下载安装 大家可以从https://www.python.org/download下载安装最新版的python,安装比较无脑,一路按下去就OK,缺点是以

  • 在Mac OS上安装Vagrant和Docker的教程

    当听到很多人在说Docker是多么多么的棒,很多新潮的孩子都在使用它时,我决定在我的开发环境上也来尝试下.在下面的这篇文章中,我将讲解在Mac OS X怎样建立Postgres,Elasticsearch和Redis. 什么是Docker Docker用轻量容器把一个APP从它运行的OS中隔离开.它把APP放入到一个孤立的盒子中,对外只呈现需要使用的文件夹和端口. 这样,基于建立和使用APP的容器是可重用,共享的.目前,在Docker集中已经存在了15,000种以上的容器.Docker就像一个商

  • Mac os 解决无法使用localhost连接mysql问题

    今天在mac上搭建好了php的环境,把先前在window.linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工具也能正常访问.当把localhost换成127.0.0.1或者本机的IP时,居然正常了.以前一直认为localhost与127.0.0.1是一回事,现在事实证明它们其中还是有区别的. 在网上搜索了一下它们的区别,有人已经说的很明白了,具体

  • Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程

    一.启动Apache 有两种方法 1.打开网络共享 打开"系统偏好设置"->"共享",在"互联网共享"那一项前面打√. 2.打开终端,输入 sudo apachectl start 这时需要输入密码,输入电脑密码即可,然后输入 sudo apachectl -v 可以查看到Apache的版本信息 Server version: Apache/2.2.24 (Unix) Server built: Jul 7 2013 18:05:17 此时

  • 在Mac OS上安装Go语言编译器的方法

    我用的是mac mini然后在上边装好了sublime text2 插件依然是go sublime和go build这两个就不介绍了,因为之前已经介绍了安装了,go的mac os安装包可以直接下的,下载地址是http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer,根据你自己的电脑来说话,下载对应的就可以了.然后直接安装,安装好之后还是配置环境变量,一般的linux上边都是这样的 cd ls -a #显示的用户环境

  • 在Mac OS上安装Tomcat服务器的教程

    对于Apache Tomcat 估计很多童鞋都会,那么今天就简单说下在mac上进行tomcat的安装: 第一步:下载Tomcat 这里Himi下载的tomcat version:7.0.27 直接上下载地址:http://tomcat.apache.org/download-70.cgi 直接下载如下选中即可: 第二步:   下载完成后 ,然后随意放目录吧,这里Himi放入    /usr/local/ 右键你的mac的Finder->前往文件夹->/usr/local  将刚才解压后的tom

  • linux系统使用python监控apache服务器进程脚本分享

    crtrl.py监控Apache服务器进程的Python 脚本 复制代码 代码如下: !/usr/bin/env Python import os, sys, time while True: time.sleep(4) try: ret = os.popen('ps -C apache -o pid,cmd').readlines() if len(ret) < 2: print "apache 进程异常退出, 4 秒后重新启动" time.sleep(3) os.system

  • 在Mac OS上安装Oracle数据库的基本方法

    基本环境:Snow Leopard10.6.2,Oracle10.2.0.4 打开Mac的终端,执行: sudo -i 创建oinstall组和oracle用户,注意需要保证组合用户的ID与现有系统信息不冲突,这里采用700 创建组: dscl . -create /groups/oinstall dscl . -append /groups/oinstall gid 700 dscl . -append /groups/oinstall passwd "*" 创建用户: dscl .

随机推荐