网络编程
位置:首页>> 网络编程>> Python编程>> 在Mac OS上使用mod_wsgi连接Python与Apache服务器

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

作者:goldensun  发布时间:2021-12-18 11:20:02 

标签:Mac,Python

一、安装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
投稿

猜你喜欢

  • 在使用Python做socket编程时,由于需要使用阻塞(默认)的方式来读取数据流,此时对于数据的结束每次都需要自己处理,太麻烦。并且网上也
  •  为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将 ;extension=
  • 今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL外键约束详解。一、MySQL外键约束作用外键约束(Foreign Key)即数
  • 使用Python解析各种格式的数据都很方便,比如json、txt、xml、csv等。用于处理简单的数据完全足够用了,而且代码简单易懂。前段时
  • 一)安装scrapy:1、打开cmd命令窗口,输入:pip install Scrapy。2、安装成功之后会显示下面字符,表示未将scrap
  • 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写,刚开始不会体会出SQL语句各种写法的性能优劣,但是如果将应
  • 利用pymongo包进行数据库的连接,使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据
  • 步骤查看历史记录# 查看历史记录git log -3实例Simba@SIMBA MINGW64 /t/IDE/IDEA/Workspace-
  • 概述自己在用labelImg打好标签后,想只用其中几类训练,不想训练全部类别,又不想重新打标生成.xml文件,因此想到这个办法:直接在.xm
  • 在odoo中,通过iframe嵌入 html,页面数据则通过controllers获取,使用jinja2模板传值渲染html页面分页内容,这
  • 一个例子让你彻底明白原型对象和原型链开篇之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自
  • 在flask中可以像go和angular那样使用页面模版(template),可以将HTML页面显示进行模版化,通过参数传递与页面进行数据交
  • 例如:性别 gender 男 女 保密基本语法:enum(数据值 1,数据值 2...);数据值列表在 255 个以内,使用 1 个字节来存
  • 本文实例讲述了python访问系统环境变量的方法。分享给大家供大家参考。具体如下:#----------------------------
  • 大家好,由于公司忙着赶项目,导致有段时间没有发布新文章了。今天我想跟大家谈谈Cookie的使用。同样,这个Cookie的使用方法是我从公司的
  • 概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用expl
  • Python3进制之间的转换在Python里面实现进制之间的转换是非常方便的,有专门的函数来进行这个操作:下面直接上代码:# 进制之间的转换
  • 这篇文章主要介绍了Python类如何定义私有变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
  • 1.初始化(使用session前都要使用,一个页面用一个就可以了)session_start();2.保存$_SESSION[$sessio
  • Git合并多次提交有时候需要合并几个提交历史记录为一个提交,该怎么办呢?可以使用 git rebase !也可以使用 g
手机版 网络编程 asp之家 www.aspxhome.com