在Mac OS上使用mod_wsgi连接Python与Apache服务器
作者:goldensun 时间:2021-12-18 11:20:02
一、安装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>
标签:Mac,Python
0
投稿
猜你喜欢
php ajax异步读取rss文档数据
2023-10-17 19:59:02
Python hashlib模块加密过程解析
2021-09-08 13:29:25
Javascript 中截取小数位并实现四舍五入的方法
2008-08-05 18:11:00
关于Math.PI、前自增和后自增
2009-05-25 12:38:00
Python如何实现远程方法调用
2022-11-11 20:42:15
javascript 网站常用的iframe分割
2023-08-19 09:27:58
给大家整理了19个pythonic的编程习惯(小结)
2024-01-02 08:00:05
微信小程序 云开发模糊查询实现解析
2023-08-24 14:47:57
如何让对方在线查看我的程序代码?
2010-05-13 16:34:00
关于python之字典的嵌套,递归调用方法
2021-12-05 05:25:45
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2023-02-19 14:09:08
php 异常处理实现代码
2023-11-14 23:47:12
学习python (1)
2022-12-10 12:59:18
Python中if __name__ == "__main__"详细解释
2023-10-16 06:36:56
Python rindex()方法案例详解
2022-04-18 07:06:44
功能强大,代码简单的管理菜单
2008-07-11 16:52:00
python OpenCV学习笔记之绘制直方图的方法
2023-06-04 02:34:38
Python反转序列的方法实例分析
2021-10-30 11:13:07
mysql常用备份命令和shell备份脚本分享
2024-01-13 14:37:35
轻松掌握python设计模式之策略模式
2022-01-19 00:17:15