zoukankan      html  css  js  c++  java
  • centos7 apache httpd安装和配置django项目

    一、安装httpd服务

    apache在centos7中是Apache HTTP server。如下对httpd的解释就是Apache HTTP Server。所以想安装apache其实是要安装httpd。

    httpd.x86_64 : Apache HTTP Server

    安装:

    # yum install httpd

    设置httpd服务开机启动

    [root@yl-web httpd]# /sbin/chkconfig httpd on
    Note: Forwarding request to 'systemctl enable httpd.service'.
    ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

    启动httpd服务

    [root@yl-web httpd]# /sbin/service httpd start
    Redirecting to /bin/systemctl start  httpd.service

    访问ip验证一下,成功!

    二、配置

    httpd默认的配置文件目录为

    [root@yl-web httpd]# cd /etc/httpd/
    [root@yl-web httpd]# ls
    conf  conf.d  conf.modules.d  logs  modules  run

    主配置文件是/etc/httpd/conf/httpd.conf。

    配置存储在的/etc/httpd/conf.d/目录。

    1、主配置文件

    看一下主配置文件httpd.conf里有用的配置项

    #服务器根目录
    ServerRoot "/etc/httpd" #端口
    #Listen 12.34.56.78:80 Listen 80 #域名+端口来标识服务器,没有域名用ip也可以
    #ServerName www.example.com:80 #不许访问根目录
    <Directory /> AllowOverride none Require all denied </Directory> # 文档目录
    DocumentRoot "/var/www/html" # 对 /var/www目录访问限制
    <Directory "/var/www"> AllowOverride None # Allow open access: Require all granted </Directory> # 对/var/www/html目录访问限制 <Directory "/var/www/html">    Options Indexes FollowSymLinks    AllowOverride None   Require all granted </Directory> # 默认编码
    AddDefaultCharset UTF-8 #EnableMMAP off EnableSendfile on
    # include进来其它配置文件

    IncludeOptional conf.d/*.conf

    2、下载配置mod_wsgi

    安装mod_wsgi前先进行apache的apxs扩展

    http-devel 是为了apxs,yum后你可以whereis apxs去寻找他,然后后边编译使用。

    # yum install -y httpd-devel

    下载

    [root@yl-web collectedstatic]# yum install mod_wsgi

    在httpd.conf中增加下面配置:

    LoadModule  wsgi_module modules/mod_wsgi.so

    该配置用来连接django.wsgi,使工程被apache加载。

    配置django wsgi

    在项目目录下新建wsgi,里面新建django.wsgi,内容如下

    import os
    import sys
    import django.core.handlers.wsgi
    from django.conf import settings
    
    # Add this file path to sys.path in order to import settings
    sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'lxyproject.settings'
    
    sys.stdout = sys.stderr
    
    DEBUG = True
    
    application = django.core.handlers.wsgi.WSGIHandler()

    配置wsgi时,

    • 必须配置项目路径到系统路径中,因为要通过项目路径找到settings.py配置文件。也就是sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
    • DJANGO_SETTINGS_MODULE必须指向项目的settings.py文件。

    修改了wsgi的配置后必须重启httpd服务。

    3、配置django项目虚拟主机

    在/etc/httpd/conf.d中添加配置文件lxyproject.conf,内容如下

    <VirtualHost *:80>
    
    WSGIScriptAlias / /srv/lxyproject/wsgi/django.wsgi
    Alias /static/ /srv/lxyproject/collectedstatic/
    
    ServerName 10.1.101.31
    #ServerName example.com
    #ServerAlias www.example.com
    
    <Directory /srv/lxyproject/collectedstatic>
        Options Indexes  FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    
    <Directory /srv/lxyproject/wsgi/>
        Require all granted
    </Directory>
    ErrorLog   /etc/httpd/logs/lxyproject.error.log
    LogLevel warn
    </VirtualHost>

     其中

    • WSGIScriptAlias 直接告诉apache,这个虚拟主机中,请求/就交给WSGI处理,也就是项目中配置的django.wsgi会指明。
    • Alias 说明访问/static/直接从DocumentRoot中获取,而无需经过WSGI处理。

    现在就可以通过apache服务器配置的IP访问django项目了。

    三、资源链接

    How to use django with mod_wsgi

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4685132.html有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    关于这个 blog
    P6499 [COCI2016-2017#2] Burza 题解
    CF1172F Nauuo and Bug 题解
    CF1479D Odd Mineral Resource 题解
    CF1442E Black, White and Grey Tree 题解
    CF1442D Sum 题解
    CF1025D Recovering BST 题解
    CF1056E Check Transcription 题解
    CF1025F Disjoint Triangles 题解
    红包算法的PHP实现
  • 原文地址:https://www.cnblogs.com/starof/p/4685132.html
Copyright © 2011-2022 走看看