日期:2014-05-16  浏览次数:20862 次

在Amazon EC2上安装apache+MOD_WSGI来部署django

??? 最近,我在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/

?

现在就可以了。

?