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 配置文件中。 它看起来就像是这样:

LoadModule python_module /usr/lib/apache2/modules/mod_python.so

3.配置Apache,用来定位请求URL到Django应用:

<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:

/etc/init.d/apache2 restart

使用mod_wsgi部署

1.下载安装 mod_wsgi 模块,生成mod_wsgi.so和wsgi.conf

2.在配置中加载模块:

LoadModule python_module /usr/lib/apache2/modules/mod_wsgi.so

3.修改Apache配置文件httpd.conf

<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的配置文件:

# 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:

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/apache2 restart

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

标签:
Apache上部署Django,Apache上部署Django详解,Apache上部署Django如何实现

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“Apache上部署Django步骤详细介绍”
暂无“Apache上部署Django步骤详细介绍”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。