django ubuntu16.04 python3 apache搭建django后端环境

先讲一下事情的来龙去脉,因为很想把自己的垃圾网站迁移到django上面去,一直在服务器端配置环境,但是奈何网上的教程都很旧,自己费尽千辛万苦才找到了一个教程,但是还是有一些不足的地方,现在写一篇博客与大家分享。


1.ubuntu16.04自带python3.5,所以不用安装python3

2.安装pip3

sudo apt install python3-pip

3.安装python3虚拟环境

sudo pip3 install virtualenv

4.创建虚拟环境

virtualenv mynewenv

5.激活新虚拟环境

source mynewenv/bin/activate

6.安装django

pip3 install django

7.我是在本地建好一个django初始项目的时候上传到服务器的,具体方法就是用pycharm新建一个django项目,然后绑定服务器并上传,具体步骤如下:

新建django项目
新建django项目

 

指定文件夹
绑定服务器
指定文件夹
指定文件夹
​​​​​​

最后在tools-->developments-->upload至服务器即可

8.上传成功后进入项目根目录

cd myproject
sudo vim myproject/settings.py

9.为了简单我这里使用默认的SQLite数据库;配置静态文件目录,在文件尾添加:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

10.初始化SQLlite数据库

python3 manage.py makemigrations
python3 manage.py migrate

11.为项目创建管理员用户:

python3 manage.py createsuperuser

12.把静态文件放到static目录:

python3 manage.py collectstatic

上面命令在项目目录中创建了static目录.

13.如果开启了防火墙,打开8000端口:

sudo ufw allow 8000

14.测试Django项目,启动server:

python3 manage.py runserver 0.0.0.0:8000

使用浏览器访问:http://127.0.0.1:8000,应该能看到成功的页面了

浏览器访问:http://137.0.0.1:8000/admin,你就能通过前面创建的管理员账号进入后端页面了

15.配置apache:

 sudo apt-get install python-pip apache2 libapache2-mod-wsgi

编辑默认Virtual Host配置文件:

sudo vim /etc/apache2/sites-available/000-default.conf

所有static的请求映射到Django项目的/static目录,在VirtualHost块中添加:

    # 项目路径
    Alias /static /home/snail/myproject/static
    <Directory /home/snail/myproject/static>
        Require all granted
    </Directory>

配置apache有访问项目目录中wsgi.py的权限:

<Directory /home/snail/myproject/myproject>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

Django建议使用daemon模式运行WSGI进程,配置WSGIDaemonProcess:

    WSGIDaemonProcess myproject python-home=/home/snail/mynewenv python-path=/home/snail/myproject
    WSGIProcessGroup myproject
    WSGIScriptAlias / /home/snail/myproject/myproject/wsgi.py

注意替换上面的项目路径(snail是我的用户名,myproject是我的项目名),最后的应该是这个样子:

é¨ç½²Django-Apacheï¼Ubuntu 16.04

修正一些目录和文件权限:


chmod 664 ~/myproject/db.sqlite3
sudo chown :www-data ~/myproject/db.sqlite3
sudo chown :www-data ~/myproject

如果你配置了防火墙,开启80、443端口:

sudo ufw delete allow 8000
sudo ufw allow 'Apache Full'

检查是否有语法错误:

sudo apache2ctl configtest

如果没有语法错误,重启Apache:

sudo systemctl restart apache2

大功告成!!这个时候输入你的服务器IP 地址或者域名你就可以访问你的网页啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值