在Mac OS上使用mod_wsgi串連Python與Apache伺服器

來源:互聯網
上載者:User
一、安裝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  WSGIScriptAlias / /Users/levin/dev/py/webapp/app.py/  Alias /assets /Users/levin/dev/py/webapp/static/  AddType text/html .py       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  

先寫個測試指令碼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    Order deny,allow Allow from all   Alias /media/ /Library/WebServer/Documents/votebing/media/ Alias /static/ /Library/WebServer/Documents/votebing/static/   Allow from all    Allow from all  
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.