• 百度云的ubuntu16.04.1部署Apache服务器+Django项目


    使用Apachemod_wsgi部署Django 是一种久经考验的将Django投入生产的方法。

    mod_wsgi是一个Apache模块,可以托管任何Python WSGI应用程序,包括Django。

    Django将使用任何支持mod_wsgi的Apache版本。

    配置环境及使用模块:

      Ubuntu 16.04.1 + Django  1.11.15 + Apache 2.4.18 + python 3.5 

    我的Django项目文件结构如下:(仅供参考)

    tip
    ├── db.sqlite3
    ├── manage.py
    ├── mytip
    │   ├── admin.py
    │   ├── apps.py
    │   ├── __init__.py
    │   ├── migrations
    │   │   ├── 0001_initial.py
    │   │   ├── __init__.py
    │   │   └── __pycache__
    │   │       ├── 0001_initial.cpython-36.pyc
    │   │       └── __init__.cpython-36.pyc
    │   ├── models.py
    │   ├── __pycache__
    │   │   ├── admin.cpython-35.pyc
    │   │   ├── admin.cpython-36.pyc
    │   │   ├── __init__.cpython-35.pyc
    │   │   ├── __init__.cpython-36.pyc
    │   │   ├── models.cpython-35.pyc
    │   │   ├── models.cpython-36.pyc
    │   │   ├── urls.cpython-36.pyc
    │   │   └── views.cpython-36.pyc
    │   ├── templatetags
    │   │   ├── __init__.py
    │   │   ├── pagetag.py
    │   │   └── __pycache__
    │   │       ├── __init__.cpython-36.pyc
    │   │       └── pagetag.cpython-36.pyc
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── static
    │   └── tip
    │       ├── css
    │       │   ├── bootstrap.css
    │       │   ├── bootstrap.css.map
    │       │   ├── bootstrap.min.css
    │       │   ├── bootstrap.min.css.map
    │       │   ├── bootstrap-theme.css
    │       │   ├── bootstrap-theme.css.map
    │       │   ├── bootstrap-theme.min.css
    │       │   ├── bootstrap-theme.min.css.map
    │       │   └── test.css
    │       ├── fonts
    │       │   ├── glyphicons-halflings-regular.eot
    │       │   ├── glyphicons-halflings-regular.svg
    │       │   ├── glyphicons-halflings-regular.ttf
    │       │   ├── glyphicons-halflings-regular.woff
    │       │   └── glyphicons-halflings-regular.woff2
    │       ├── image
    │       │   ├── blog.jpg
    │       │   ├── books.jpg
    │       │   ├── challenge.jpg
    │       │   ├── logo.png
    │       │   ├── lun.png
    │       │   ├── online_coding.jpg
    │       │   ├── qa.jpg
    │       │   ├── share.jpg
    │       │   └── u=1917532917,3371716064&fm=27&gp=0.jpg
    │       ├── js
    │       │   ├── bootstrap.js
    │       │   ├── bootstrap.min.js
    │       │   ├── jquery.js
    │       │   └── npm.js
    │       └── web
    │           └── jquery-1.8.3.min.js
    ├── templates
    │   └── index
    │       ├── index.html
    │       ├── shuati.html
    │       └── shuati_info.html
    └── tip
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-35.pyc
        │   ├── __init__.cpython-36.pyc
        │   ├── settings.cpython-35.pyc
        │   ├── settings.cpython-36.pyc
        │   ├── urls.cpython-36.pyc
        │   └── wsgi.cpython-36.pyc
        ├── settings.py
        ├── urls.py
        └── wsgi.py

    一.安装

      1.apache2的安装

    sudo apt-get install apache2

        验证apache是否安装成功

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

        打开浏览器 输入 127.0.0.1或localhost

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

      2.安装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

    二.配置apache

      1.编辑配置文件

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

      2.创建网站配置文件

    编辑网站配置文件 没有则自动新建,这里相当于新建
    sudo vim /etc/apache2/sites-available/tip.conf
    
    配置内容:
    <VirtualHost *:80>
      #这里就是配置域名的地方,有域名就写上,没有就注释掉 #ServerName www.pyweb.cn
      # 服务器管理地址,可以不写 ServerAdmin py@
    163.cn
    #wsgi文件目录 WSGIDaemonProcess python-path=/var/www/tip WSGIScriptAlias / /var/www/tip/tip/wsgi.py <Directory /var/www/tip/tip> <Files wsgi.py> Require all granted </Files> </Directory>
    #项目文件目录 DocumentRoot /var/www/tip <Directory /var/www/tip> Require all granted </Directory>
    #静态文件目录 Alias /static/ /var/www/tip/static/ <Directory /var/www/tip/static/> Require all granted </Directory>
    #错误日志 这两份文件在报错的时候会自动生成 在/var/log/apache2/文件夹下
       ErrorLog ${APACHE_LOG_DIR}/django-tip-error.log
       CustomLog ${APACHE_LOG_DIR}/myproject-tip.log combined
    </VirtualHost>

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

    cd /etc/apache2/sites-enabled
    
    sudo ln -s ../sites-available/tip.conf ./

      4.执行命令 生效当前配置

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

    三.配置django配置文件

      1.修改seeting.py文件

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

      2.修改wsgi.py文件

    import os
    # 项目名.settings os.environ[
    "DJANGO_SETTINGS_MODULE"] = "tip.settings" #os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pyjfive.settings") from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(__file__))) import sys # 4 sys.path.insert(0,PROJECT_DIR) from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

    四.最重要的一步

      重启apache

    sudo service apache2 restart

      启动 : service apache2 start

      停止 : service apache2 stop

    五.打开浏览器。输入云主机的地址,有域名就输入域名,不过上面需要配置域名

      我这里就输入IP地址

    106.12.40.48

    按道理来说,到这里就可以显示出项目的首页了

    不过,按照正常的剧情,重启服务器或者输入地址查看的时候会报错

    关于apache报错信息,请参考:apache报错信息及解决方案

  • 相关阅读:
    du熊学斐波那契I
    《博客园精华集》分类索引
    C++中指针和引用的区别
    堆和栈的区别
    getch和getchar的区别
    class和struct
    ARM开发步骤
    ARM寻址方式
    存储器映射
    思维中的错误
  • 原文地址:https://www.cnblogs.com/mswei/p/9442097.html
Copyright © 2020-2023  润新知