Apache + mod_wsgi部署webpy應用
下面的步驟在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’ 來驗證它是否可用。html
#注意: 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