1. 程式人生 > >Apache + mod_wsgi部署webpy應用

Apache + mod_wsgi部署webpy應用

引用: http://webpy.org/cookbook/mod_wsgi-apache.zh-cn 下面的步驟在Apache-2.2.3 (Red Hat Enterprise Linux 5.2, x86_64),mod_wsgi-2.0中測試通過。(譯者注:本人在Windows2003 + Apache-2.2.15 + mod_wsgi-3.0也測試通過) 注意:
  • 您可以使用您自己的專案名稱替換’appname’。
  • 您可以使用您自己的檔名稱替換’code.py’。
  • /var/www/webpy-app 為包含您的code.py的資料夾目錄路徑。
  • /var/www/webpy-app/code.py 是您的python檔案的完整路徑。
步驟:
  • 下載和安裝mod_wsgi從它的網站:
http://code.google.com/p/modwsgi/. 它將安裝一個’.so’的模組到您的apache 模組資料夾,例如: /usr/lib64/httpd/modules/ (如果谷歌訪問不了,可以安裝mod_wsgi(yum install mod_wsgi))  
  • 在httpd.conf中配置Apache 載入 mod_wsgi模組和您的專案:
LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /appname /var/www/webpy-app/code.py/
Alias /appname/static /var/www/webpy-app/static/ AddType text/html .py <Directory /var/www/webpy-app/> Order deny,allow Allow from all </Directory>
  • 演示檔案 ‘code.py’:
import web urls = ( '/.*', 'hello', ) class hello: def GET(self): return "Hello, world."
  application = web.application(urls, globals()).wsgifunc()

在您的瀏覽器位址列中輸入’ http://your_server_name/appname’ 來驗證它是否可用。

#注意: mod_wsgi + sessions 如果您需要在mod_wsgi中使用sessions,您可以改變您的程式碼如下: app = web.application(urls, globals())   curdir = os.path.dirname(__file__) session = web.session.Session(app, web.session.DiskStore(curdir + '/' + 'sessions'),) application = app.wsgifunc() #mod_wsgi 效能: 有關mod_wsgi的效能,請參考mod_wsgi的維基頁: http://code.google.com/p/modwsgi/wiki/PerformanceEstimates