一、安裝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>
新聞熱點
疑難解答