Apache上部署Django步骤详细介绍
Apache上部署Django
目前,Apache和mod_python是在生产服务器上部署Django的最健壮搭配。mod_python是一个在Apache中嵌入Python的Apache插件,它在服务器启动时将Python代码加载到内存中。
Django需要Apaceh2.x和mod_python3.x支持。
Apache的配置参见:http://www.djangoproject.com/r/apache/docs/
使用mod_python部署
1.为了配置基于mod_python的Django,首先要安装有可用的mod_python模块的Apache。
2.然后应该有一个LoadModule指令在Apache配置文件中。它看起来就像是这样:
LoadModulepython_module/usr/lib/apache2/modules/mod_python.so
3.配置Apache,用来定位请求URL到Django应用:
<VirtualHost*:80> ServerNamewww.example.com <Location"/mysite1"> SetHandlerpython‐program PythonHandlerdjango.core.handlers.modpython SetEnvDJANGO_SETTINGS_MODULEmysite1.settings PythonAutoReloadOff PythonDebugOff PythonPath"['/var/www/html/mysite1']+sys.path" PythonInterpretermysite1 </Location> <Location"/mysite2"> SetHandlerpython‐program PythonHandlerdjango.core.handlers.modpython SetEnvDJANGO_SETTINGS_MODULEmysite2.settings PythonAutoReloadOff PythonDebugOff PythonPath"['/var/www/html/mysite2']+sys.path" PythonInterpretermysite2 </Location> [......] </VirtualHost>
它告诉Apache,任何在/mysite这个路径之后的URL都使用Django的mod_python来处理。它将DJANGO_SETTINGS_MODULE的值传递过去,使得mod_python知道这时应该使用哪个配置。
查看mod_python文档获得详细的指令列表。
4.重启Apache,查看Http://www.example.com/mysite:
/etc/init.d/apache2restart
使用mod_wsgi部署
1.下载安装mod_wsgi模块,生成mod_wsgi.so和wsgi.conf
2.在配置中加载模块:
LoadModulepython_module/usr/lib/apache2/modules/mod_wsgi.so
3.修改Apache配置文件httpd.conf
<VirtualHost*:80> ServerNamewww.example DocumentRoot/var/www/html/mysite WSGIScriptAlias//var/www/html/mysite/apache/django.wsgi <Directory/> Orderdeny,allow Allowfromall </Directory> <Directory/apache> Allowfromall </Directory> </VirtualHost>
4.创建并配置wsgi的配置文件:
#filename:mysite.apache.django.wsgi importos,sys #CalculatethepathbasedonthelocationoftheWSGIscript. apache_configuration=os.path.dirname(__file__) project=os.path.dirname(apache_configuration) workspace=os.path.dirname(project) sys.path.append(workspace) os.environ['DJANGO_SETTINGS_MODULE']='mysite.settings' os.environ['PYTHON_EGG_CACHE']='/tmp' importdjango.core.handlers.wsgi application=django.core.handlers.wsgi.WSGIHandler() print>>sys.stderr,sys.path shell>chmoda+xdjango.wsgi
5.修改Django项目配置文件settings.py:
DATABASES={ 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'mysite', 'USER':'admin', 'PASSWORD':'admin123', 'HOST':'127.0.0.1', 'PORT':'3306',} } TEMPLATE_DIRS=( '/var/www/html/mysite/templates', )
6.重启Apache,访问http://www.example.com/mysite
/etc/init.d/apache2restart
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!