django在ubuntu的简单部署django+ubuntu+mysql+apache2+python3

第一次接触django和ubuntu部署,网上教程坑比较多,经过一系列折腾总算完成部署,这里提供最基本的部署方式,仅仅验证apache2将请求交给了django处理

安装apache2,mysql过程略。。。。

安装pip3

        sudo apt-get install python3-pip


安装django 的基础依赖包

    pip2,3共存下使用pip3: python3 -m pip ........   -m pip 表示用python3的pip模块

    requests包:

    python3 -m pip install requests

    pyquery包:

    python3 -m pip install pyquery

    pymysql包:

    python3 -m pip install pymysql


安装django

    python3 -m pip install Django
     sudo apt install python-django-common
    sudo apt-get install python3-django


安装mod_wsgi

    将django与Apache2连接的模块

sudo apt-get install libapache2-mod-wsgi-py3


创建django项目

    本例中在var/www/html/下创建

    移动到var/www/html/执行命令

    django-admin startproject 项目名(本例中采用first)

    结果生成一个first文件夹其中包含manage.py和一个名为first的文件夹


修改settiings.py文件(第二层的first文件夹下)

    

   数据库部分

        将默认数据库更改为mysql

    找到 DATABASES 部分

 
  修改为 DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "xxxx",    (数据库名,是已经创建好的数据库)
        "USER":"xxxxx",
        "PASSWORD":"xxxxxx",
        "HOST":"localhost",
        "PORT":"3306"
    }
}

  访问权限部分

      允许其他主机访问

   找到 ALLOWED_HOSTS 部分

修改为  ALLOWED_HOSTS = ['*']


修改第二层first文件夹下的__init__.py

    python3对pymysql包的引用配置

增加

import pymysql
pymysql.install_as_MySQLdb()


修改wsgi.py文件(第二层first文件夹下)

    wsgi.py文件是django与apache2建立的连接,相当于django给apache2打个招呼

    增加
    import sys
    sys.path.append("/var/www/html/first/")

修改apache2的配置文件apache2.conf

    修改配置文件让apache2认识django

    位置在/etc/apache2/

    在文件末尾添加

    WSGIScriptAlias / /var/www/html/first/first/wsgi.py
    WSGIPythonPath /var/www/html/first/
    <Directory /var/www/html/first/>
        <Files wsgi.py>
           Require all granted
        </Files>
    </Directory>

    这段配置来自django官方文档,仅仅是最基础的配置


所有工作完成后重启apache2

可以访问admin界面,不过是没有css渲染的,因为静态文件的路径还没有配置


启用apache2后可不能在启动django的runserver了,runserver相当于一个小型服务器,和apache2是冲突的,部署的目的就是要让apache2代替runserver(来自一个小白的痛的领悟)

错误排查:


    


此处错误原因一般为django端 的代码有问题,即apache将请求交给django处理,出现问题,

排查方法:关闭Apache,单独运行django,使用

python3 manage.py runserver 0.0.0.0:80   表示所有ip的80端口都可访问

 根据python的错误信息可以确定python代码的问题,若此时可以正常访问则问题出在apache和wsgi的配置上


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值