在apache上部署django 程序

本文介绍如何在Apache服务器上部署Django应用,包括安装配置Apache、mod_python,设置虚拟主机及多项目共存的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在apache上部署django 程序  

2011-09-21 15:56:38|  分类: python & django |  标签:apache   |字号 订阅

1.Apache和mod_python
(1)安装apache
下载地址: http://httpd.apache.org/
1).解压缩
  sudo tar zxvf httpd-2.2.17.tar.gz  ~/http-2.2.17
2).进入~/apache目录,执行
  sudo ./configure --prefix=/usr/server/apache2 --enable-module=so
  sudo make
(2)安装mod_python
下载地址:http://www.modpython.org/
1).解压缩文件
2).安装python的开源文件
      sudo apt-get install python-dev
3)、修改下载包中connobject.c中的BUG
需修改mod_python-3.3.1/src/connobject.c中   
!(b == APR_BRIGADE_SENTINEL(b)   为   !(b == APR_BRIGADE_SENTINEL(bb) 
4)、编译mod_Python
cd mod_python-3.3.1
./configure --with-apxs=/usr/server/apache2/bin/apxs --with-python=/usr/bin/python
5).执行
sudo make 
&sudo make install
成功后/usr/server/apache2/modules目录下应该会出现mod_python.so  sudo make install

(3)在apache中加载mod_python模块
1)、修改Apache配置文件/server/apache2/conf/httpd.conf
        首先赋权限sudo chmod 7 httpd.conf
2).增加装载mod_python.so的配置行:
    LoadModule python_module /usr/server/apache2/modules/mod_python.so
      设置MaxRequestsPerChild 1,这样可以在开发阶段不用重启Apache进行测试
3.配置根目录

<Location "/" >                     #设置http://localhost:8010/  
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE myblog.settings      #配置项目的setttings
    PythonDebug On
    PythonPath "['/home/zhulp/workspaces'] + sys.path"   #配置项目的工作路径
</Location>
<Location "/media/" >
     SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png)$" >
    SetHandler None
</LocationMatch>
(5)修改文件根目录之后,你就可以将你的网页存放在新设的目录下了
在httpd.conf中
DocumentRoot "/home/zhulp/workspaces"
<Directory "/home/zhulp/workspaces">

(6)在同一个 Apache 的实例中运行多个 Django 程序

<VirtualHost 127.0.0.1:8010 >
    ServerName 127.0.0.1:8010
     
     <Location "/myblog" >
     SetHandler python-program
     PythonHandler django.core.handlers.modpython
     SetEnv DJANGO_SETTINGS_MODULE myblog.settings
     PythonDebug On
     PythonPath "['/home/zhulp/workspaces'] + sys.path"
        PythonInterpreter myblog
     </Location>
     <Location "/ad" >
     SetHandler python-program
     PythonHandler django.core.handlers.modpython
     SetEnv DJANGO_SETTINGS_MODULE myproject2.settings
     PythonDebug On
     PythonPath "['/home/zhulp/workspaces'] + sys.path"
        PythonInterpreter myproject2
     </Location>

     <Location "/media/" >     #将站点的特定部分关闭mod_python
SetHandler None
     </Location>

     <LocationMatch "\.(jpg|gif|png)$" >  # 以.jpg .gif .png 结尾的URL屏蔽掉
        SetHandler None
     </LocationMatch>

</VirtualHost>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值