zoukankan      html  css  js  c++  java
  • linux下django部署到apache

    用django写了个demo,目前要部署到apache上


    需求:

    django部署到apache


    【其中变量$USER为你的账号】

    1.安装apache 和 django

    A.下载apache:

    http://httpd.apache.org/download.cgi#apache22

    版本2.2.22

    B.解压

    tar -xzvf httpd-2.2.22.tar.gz

    C.进入解压后文件夹make & install

    ./configure --prefix=/home/$USER/apache

    make

    make install

    D.改变目录所有者和权限

    cd /home/$USER/apache

    chown -R nobody:root htdocs 

    chmod -R 755 *

    测试是否安装成功:
    cd /home/$USER/apache
    ./bin/apachectl start
    http://127.0.0.1/
    看到It works!即安装成功

    E.安装django

    下载:http://www.djangoproject.com/download/

    tar xzvf Django-*.tar.gz

    cd Django-*

    sudo python setup.py install

    >>> import django
    >>> django.VERSION
    (1, 1, 0, final', 1)

    参考:http://djangobook.py3k.cn/2.0/chapter02/


    2.安装mod_python

    yum install mod_python

    rpm -ql mod_python | grep so

    然后把安装后的mod_python.so拷贝到 apache安装目录下的modules


    或者按照啄木鸟社区的文档,使用编译的方式安装:

    http://wiki.woodpecker.org.cn/moin/modpythoncn


    3.httpd.conf配置:

    A.基本配置:

    Listen 80 //apache默认端口,可以修改   

    DocumentRoot "/home/$USER/apache/htdocs" //用户默认访问的apache目录   
      
    //日志输出的2种格式    
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined   
    LogFormat "%h %l %u %t \"%r\" %>s %b" common   
      
    CustomLog logs/access_log common //访问日志:access_log的输出采用common格式


    B.配置django:

    我的项目文件夹在:/home/$USER/lingbo

    配置:

    LoadModule python_module modules/mod_python.so
    <Location "/lingbo/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE lingbo.settings
        PythonOption django.root /lingbo
        PythonDebug On
        PythonPath "['/home/lingyue.wkl'] + sys.path"
    </Location>


    说明:

    LoadModule python_module modules/mod_python.so  #加载module部分
    <Location "/lingbo/">   #项目名  http://localhost:80/lingbo/
        SetHandler python-program
        PythonHandler django.core.handlers.modpython  
        SetEnv DJANGO_SETTINGS_MODULE lingbo.settings 
        PythonOption django.root /lingbo
        PythonDebug On
        PythonPath "['/home/username'] + sys.path"    #实际项目放的位置的上一级目录
    </Location>




    D.配置css,img等资源文件的访问权限

    若是没有对这类静态文件的路径进行配置,apache是没有权限获取的,导致页面展现异常

    配置方式:

    在httpd.conf中配置

    Alias /css /home/username/lingbo/templates/css
    <Location "/css">
      SetHandler None
    </Location>



    4.其他:

    可能还需要修改urls.py中的路径匹配设置

    将mysite加在各个匹配项前。 如  (r'^address/', include('mysite.address.urls')),
    改为
        (r'^lingbo/address/', include('mysite.address.urls')),


    5.最后

    ./bin/apachectl start

    http://localhost:80/lingbo/



    问题1:

    Syntax error on line 44 of /home/lingyue.wkl/apache/conf/httpd.conf:
    Invalid command 'PythonHandler', perhaps misspelled or defined by a module not included in the server configuration

    原因:未配置mod_python

    解决:

    配置文件中加入  LoadModule python_module modules/mod_python.so


    问题2:

    client denied by server configuration

    原因:无权限访问某些资源

    解决:

    # 对需要访问的区域,可以增加正确的Directory块

    <Directory “/home/usrname/lingbo/dd”>
    Order Deny,Allow
    Allow from all
    </Directory>

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    tensorboard使用命令
    FFmpeg安装以及视频转成图片_图片转成视频_以及分辨率转换
    yolo3各部分代码详解(超详细)
    OpenCV+python 彩色图像通道拆分与组合并判断size,shape函数的用法与区别
    基于Keras 的VGG16神经网络模型的Mnist数据集识别并使用GPU加速
    以Mnist为例从头开始自己建立数据集,搭建resnet34,识别Mnist
    2017年Brats 脑肿瘤挑战赛Automatic Brain Tumor Segmentation using Cascaded Anisotropic Convolutional Neural Networks
    2018年BRATS 肿瘤分割挑战赛第三名分割方案One-pass Multi-task Networks with Cross-task Guided Attention for Brain Tumor Segmentation
    脑胶质瘤论文笔记
    .npy文件的保存与加载
  • 原文地址:https://www.cnblogs.com/iplus/p/4464654.html
Copyright © 2011-2022 走看看