• Apache2服务配置ubuntu16.04+django1.11


    话不多说直接上步骤

    环境

    • Ubuntu 16.04
    • Python 3.5.2
    • Django 1.11
    • Apache 2.4

    1.Apache2安装

    sudo apt-get install apache
    
    查看版本
    apachectl -v
    
        Server version: Apache/2.4.18 (Ubuntu)
        Server built: 2017-09-18T15:09:02
    

    2.确保有127.0.0.1 localhost,修改本地hosts文件

    sudo vim /etc/hosts
    127.0.0.1       localhost
    127.0.0.1       www.pyweb.cn
    

    3.打开浏览器 输入 127.0.0.1或localhost

    出现 Apache2 Ubuntu Default Page
    或It works!
    则成功
    

    4,安装apache2解析python的包 wsgi程序包

    sudo apt-get install libapache2-mod-wsgi-py3
    安装完成后 进入 /usr/lib/apache2/modules 目录
    cd /usr/lib/apache2/modules
    查看是否存在mod_wsgi.so-3.5
    

    5.配置使apache2加载mod-wsgi包

    编辑配置文件
    sudo vim /etc/apache2/apache2.conf
    在文件的最后 添加
    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.5
    

    6,创建网站配置文件

    编辑网站配置文件
    sudo vim /etc/apache2/sites-available/推荐和项目同名或者使用域名.conf
    
    配置内容:
    <VirtualHost *:80>                                                # 服务端口号  web服务默认80不推荐修改
       ServerName www.pyweb.cn                             # 指定域名  刚刚修改的hosts文件添加的域名
       ServerAdmin py@163.cn                                  #  邮箱随便
       #wsgi文件目录 讲apache和django连接在一起 
       WSGIDaemonProcess python-path=/var/www/project          # python-path=/var/www/项目名字
       WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py    # /var/www/项目名/项目同名的文件夹/wsgi.py
       <Directory /var/www/myproject/myproject>                           #  /var/www/项目名/项目同名目录   
           <Files wsgi.py>
               Require all granted
           </Files>
       </Directory>
       #项目文件目录
       DocumentRoot /var/www/myproject                        # /var/www/项目名   指定项目目录
       <Directory /var/www/myproject>
           Require all granted
       </Directory>
       #静态文件目录                                                        # 指定项目静态资源路径
       Alias /static/ /var/www/myproject/static/                  #  /var/www/项目名/static/
       <Directory /var/www/myproject/static/>
           Require all granted
       </Directory>
       #错误日志 日志名可以自己定义
       ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log
       CustomLog ${APACHE_LOG_DIR}/myproject-django.log combined
    </VirtualHost>
    

    7,将当前的配置文件创建一个软连接到/etc/apache2/sites-enabled

    cd /etc/apache2/sites-enabled
    sudo ln -s ../sites-available/自定义名字推荐域名.conf ./
    
    

    8,执行命令 生效当前配

    sudo a2ensite myproject.conf
    如果需要让这个配置失效,可以执行 sudo a2dissite myproject.conf
    

    9,配置Django项目目录及修改seeting.py文件,

    首先把myproject项目目录拷贝至 /var/www/目录下
    
    在将其ALLOWED_HOSTS=[]改为
    ALLOWED_HOSTS=['www.pyweb.cn'],多个域名可以通过逗号隔开。
    

    10,修改Django的wsgi.py文件

    import os
    os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings"   #  myproject.settings 改成 项目名.settings  不改会报服务器内部错误
    
    from os.path import join,dirname,abspath
    PROJECT_DIR = dirname(dirname(abspath(__file__)))
    
    import sys 
    sys.path.insert(0,PROJECT_DIR)
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    

    11.最后:重启apache2

    sudo service apache2 restart
    和python manage.py runserver 测试环境不同  在Apache 下每次修改都要重启apache
    

    文件上传错误

    给static文件夹或项目目录文件递归追加一个www-data用户权限
    sudo setfacl -R -m u:www-data:rwx 项目文件夹名/
    
    
    
  • 相关阅读:
    PHP的五大运行模式
    PHP设计模式-工厂模式
    php+redis实现消息队列
    面试题一
    Linux常用命令
    实现session在多台服务器上共享
    Memcache和redis的区别
    PHP设计模式-建造者模式
    FASTCgi和PHP-fpm关系
    安装vm虚拟机
  • 原文地址:https://www.cnblogs.com/zhanghuanyu/p/10030796.html
Copyright © 2020-2023  润新知