apache(apache+django+python)服务搭建

一、环境搭配所需程序

 

 

介绍:

DJANGO.GZ这是djangoajax插件,有了它就可以实现页面的异步调用了

readline:这个是python依赖的第三方库,很重要

 

 

二、部署步骤

说明:先把上面所有安装包上存到服务器然后用命令解压,进入到相关的程序目录下面进行以下步骤:

2.1编译apache

编译方法网上很多,主要是用--prefix来指定安装目录,用各种--enable-XXX来支持模块。

./configure --prefix=/usr/local/apache --enable-so --enable-module=so --enable-mods-shared=all 

 

make

 

make install

 

2.2readline安装。

进入rl/readline-5.2目录

./configure

make

make install

 

23编译python

这里要注意,如果不加上--enable-shared后面的mod-python编译会失败

./configure --enable-shared LDFLAGS=-L/usr/local/bin/ Python-2.7.2

Make

make install

2.4编译mod_python

有了它请求可转发到python应用。有两个参数是必须指定的,编译中会有个错误,上网搜下即可解决。

./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/bin/python2.7

 

2.5django dajaxice安装。

简单 python setup.py install

 

 

三、Django相关配置

我的django安装目录为/usr/local/lib/python2.7/site-packages/ django

3.1 新建django项目

运行:

python /usr/local/lib/python2.7/site-packages/django/bin/django-admin.py startproject mysite

将会在当前路径下创建一个mysite目录及相关的脚本文件。

 

3.2 配置 Apache

让apache支持mod_python模块

LoadModule python_module modules/mod_python.so

 

编辑配置文件 /usr/local/apache/conf/httpd.conf,在末尾加上:

<Location "/mysite/" >

SetHandler python-program

PythonHandler django.core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE mysite.settings

PythonDebug On

PythonPath "['/xxx', '/xxx/mysite']  + sys.path"

</Location>

注意:每次修改此文件都要重新启动apache服务器

/usr/local/apache/bin/apachectl stop    (停止)

/usr/local/apache/bin/apachectl restart (重启)

/usr/local/apache/bin/apachectl start    (启动)

3.3配置django项目的URLconf

amysite目录下新建处理脚本views.py

 

简单示例:

#!/usr/local/bin/python2.7

#coding=gb2312

 

import os

import sys

import json

import datetime

from django.conf import settings

from django.http import HttpResponse

from django.shortcuts import render_to_response

 

def DJG_GetCurrentDatetime(request):

    current_time = datetime.datetime.now()

    current_timezone = settings.TIME_ZONE

return HttpResponse("DateTime[%s],TimeZone[%s]" % (current_time,current_timezone))

 

 

b、编辑URLconf

 

打开mysite目录下的urls.py编辑。

导入上述自定义模块mysite.views,然后编辑urlpatterns:

from mysite.views import *

urlpatterns = patterns('', url(r'^mysite/time/$',DJG_GetCurrentDatetime),)

 

c、重启Apache,查看效果

服务器执行 /usr/local/apache/bin/apachectl restart,再在浏览器中访问:http://172.25.34.162/mysite/time/(其中172.25.34.162是Apache所在的服务器),

 

四、出错问题与解决方案

4.1改变避免重启apache

因为mod_python缓存预载入了Python代码,所以当在mod_python上发布django站点时,每次改动都要重启apache,可以在httpd.conf中配置MaxRequestsPerChild 1(直接在最后插入这行即可),强制apache对每个请求都重新载入所有的代码。但是不要在产品服务器上使用这个指令,这会撤销 Django 的特权。

4.2 编译apache时候出现缺乏aprapr-util

一般系统都是自带的,如果没有自带的话就比较麻烦,需要先安装这些程序包

      

下载apr-1.3.8.tar.gzapr-util-1.3.8.tar.gz,(版本不一定是这个,可以下载最新的)

先装apr,

#tar xvf apr-1.3.8.tar.gz

#cd apr-1.3.8

#./configure --prefix=/usr/local/apr-httpd

#make

#make install

然后装apr-util.

#tar xvf apr-util-1.3.8.tar.gz

#cd apr-util-1.3.8

#./configure --prefix=/usr/local/apr-util-httpd --with-apr=/usr/local/apr-httpd

#make

#make install

 

进入到apache的解压包目录

./configure --prefix=/usr/local/apache --enable-so --enable-module=so --enable-mods-shared=all --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd

(编译的时候改成这句命令)

 

4.3设置开机自启动服务控制脚本

Apache安装后可通过其安装路径的bin目录下的apachectl脚本控制服务的启动和停止。本例中apache安装在/usr/local/apache-2.2.15,服务控制脚本为: 
    /usr/local/apache-2.2.15/bin/apachectl 
执行下面的命令启动Apache服务: 
    /usr/local/apache-2.2.15/bin/apachectl start 
执行下面的命令停止Apache服务: 
    /usr/local/apache-2.2.15/bin/apachectl stop 
可以简单地把Apache启动命令加到/etc/rc.local文件,让Apache随系统启动而自动启动: 
    echo "/usr/local/apache-2.2.15/bin/apachectl start" >> /etc/rc.local

 

4.4 路径问题

一定要清楚知道自己安装的路径在什么地方,特别是在安装python的时候,一定要小心,否则到了后面会很麻烦,如果是不指定路径,一搬会安装到/urs/local/bin/目录下,可以到这个目录查看是否有python2.7.2,如果指定了目录在安装mod_python的时候需要指定--with-python=/usr/local/bin/python2.7(这里是我的默认安装路径,python2.7是一个文件不是目录),如果指定了python的安装目录,python2.7.2一般在安装目录下的lib目录下

 

4.5 虚拟机问题

前两次安装都在虚拟机上面,使用的nat模式,后来在百度上发现nat模式下不能进行局域网的通信,但8000又说不能使用桥接模式,所以最后还是使用真机来搭建环境

 

4.6 无法访问

一般情况下这种问题是自己搭建的apache还没有启动,启动一下然后用127.0.0.1访问试试,有显示it works表示成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值