Apache上部署Django步骤详细介绍

发布时间 - 2026-01-10 23:01:09    点击率:

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如何实现  # Apache如何部署django项目  # windows 10下安装搭建django1.10.3和Apache2.4的方法  # python+Django+apache的配置方法详解  # Linux下将Python的Django项目部署到Apache服务器  # 在Linux系统上部署Apache+Python+Django+MySQL环境  # 简单的Apache+FastCGI+Django配置指南  # windows+apache+mod_python配置django运行环境  # Django windows使用Apache实现部署流程解析  # 配置文件  # 重启  # 是一个  # 加载  # 是在  # 就像  # 是这样  # 希望能  # 它在  # 谢谢大家  # 时将  # 有一个  # 器上  # 文档  # VirtualHost  # lt  # SetHandler  # program  # Location  # gt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  javascript日期怎么处理_如何格式化输出  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  5种Android数据存储方式汇总  iOS UIView常见属性方法小结  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  如何用好域名打造高点击率的自主建站?  如何快速生成高效建站系统源代码?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  JavaScript如何实现路由_前端路由原理是什么  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  如何在万网开始建站?分步指南解析  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  ,在苏州找工作,上哪个网站比较好?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  🚀拖拽式CMS建站能否实现高效与个性化并存?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel如何使用Vite进行前端资源打包?(配置示例)  音乐网站服务器如何优化API响应速度?  如何快速上传自定义模板至建站之星?  Python结构化数据采集_字段抽取解析【教程】  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何在阿里云部署织梦网站?  Python高阶函数应用_函数作为参数说明【指导】  Linux系统运维自动化项目教程_Ansible批量管理实战  如何正确下载安装西数主机建站助手?  如何在阿里云服务器自主搭建网站?  焦点电影公司作品,电影焦点结局是什么?  Python3.6正式版新特性预览  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  javascript如何操作浏览器历史记录_怎样实现无刷新导航  *服务器网站为何频现安全漏洞?  非常酷的网站设计制作软件,酷培ai教育官方网站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel API资源类怎么用_Laravel API Resource数据转换  如何快速查询网站的真实建站时间?