最近,我在amazon ec2上部署自己开发的python django应用,使用了apache + MOD_WSGI的方法,现记录如下。
1. 登录amazon ec2后,它默认是没有安装apache以及wsgi_mod的,不过安装也超简单,用yum即可。
yum install httpd yum install mod_wsgi
2. 配置httpd
打开 /ect/httpd/conf/http.conf,在LoadModule里加上:
LoadModule wsgi_module modules/mod_wsgi.so
接下来,需要加上以下配置来告诉WSGI你的python path:
WSGIDaemonProcess your_project_name python-path=your_path_lib_path
WSGIProcessGroup your_project_name
还要加上你的webapp入口:
WSGIScriptAlias / your_project_path/wsgi.py <Directory /path/to/project> Order deny,allow Allow form all </Directory>
注意,这里的wsgi.py,具体可以参考django的文档:https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/
还得注意,ec2上的用户名为ec2-user,得用这个用户名来使用apache
User ec2-user
最后,加上一句:
WSGISocketPrefix run/wsgi
使用静态文件,可以加上:
<VirtualHost *:80> Alias /site_media/ Your_project_path/site_media/ </VirtualHost>
你可以直接在你的模板文件里通过/site_media/...来使用静态文件,当然,你的项目文件夹里要有site_media。
不过,别忘记使用python manage.py collectstatic来收集你的静态文件到site_media目录中。如何配置静态文件,详见django文 档:https://docs.djangoproject.com/en/1.3/ref/contrib/staticfiles/
现在就可以了。