Apache上部署Django
目前,Apache和mod_python是在生产服务器上部署Django的最健壮搭配。mod_python 是一个在Apache中嵌入Python的Apache插件,它在服务器启动时将Python代码加载到内存中。
Django 需要Apaceh 2.x 和mod_python 3.x支持。
Apache的配置参见:http://www.djangoproject.com/r/apache/docs/
使用mod_python部署
1.为了配置基于 mod_python 的 Django,首先要安装有可用的 mod_python 模块的 Apache。
2.然后应该有一个 LoadModule 指令在 Apache 配置文件中。 它看起来就像是这样:
?
1
LoadModule python_module /usr/lib/
apache2/modules/mod_python.so
3.配置Apache,用来定位请求URL到Django应用:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<VirtualHost *:80>
ServerName www.example.com
<Location “/mysite1”>
SetHandler python‐program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite1.settings
PythonAutoReload Off
PythonDebug Off
PythonPath “[/var/www/html/mysite1] + sys.path”
PythonInterpreter mysite1
</Location>
<Location “/mysite2”>
SetHandler python‐program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite2.settings
PythonAutoReload Off
PythonDebug Off
PythonPath “[/var/www/html/mysite2] + sys.path”
PythonInterpreter mysite2
</Location>
[……]
</VirtualHost>
它告诉 Apache,任何在 / mysite这个路径之后的 URL 都使用 Django 的 mod_python 来处理。 它 将DJANGO_SETTINGS_MODULE 的值传递过去,使得 mod_python 知道这时应该使用哪个配置。
查看 mod_python 文档获得详细的指令列表。
4.重启Apache,查看Http://www.example.com/mysite:
?
1
/etc/init.d/apache2 restart
使用mod_wsgi部署
1.下载安装 mod_wsgi 模块,生成mod_wsgi.so和wsgi.conf
2.在配置中加载模块:
?
1
LoadModule python_module /usr/lib/apache2/modules/mod_wsgi.so
3.修改Apache配置文件httpd.conf
?
1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *:80>
ServerName www.example
DocumentRoot /var/www/html/mysite
WSGIScriptAlias / /var/www/html/mysite/apache/django.wsgi
<Directory />
Order deny,allow
Allow from all
</Directory>
<Directory /apache>
Allow from all
</Directory>
</VirtualHost>
4.创建并配置wsgi的配置文件:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# filename:mysite.apache.django.wsgi
import os, sys
#Calculate the path based on the location of the WSGI script.
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
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
print >> sys.stderr, sys.path
shell>chmod a+x django.wsgi
5.修改Django项目配置文件settings.py:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
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
?
1
/etc/init.d/apache2 restart
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://www.cnblogs.com/oubo/archive/2012/04/06/2434961.html
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。